【问题标题】:How to call and re-run specific class from testng.xml如何从 testng.xml 调用和重新运行特定的类
【发布时间】:2021-09-06 14:51:11
【问题描述】:

在我的testng.xml 文件中,我有一些类。我想在 testmethod 中从testng.xml 触发一个特定的类。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <test name="test">
        <classes>
            <class name="TempTest1"/>
            <class name="TempTest2"/>
            <class name="TempTest3"/>
        </classes>
    </test>
</suite>

TestNG 测试方法

@Test()
public void tearDown() {
    //tearDown
    TestNG testng = new TestNG();
    List<String> suites = Lists.newArrayList();
    suites.add("testng.xml");//path to xml..
    testng.setTestSuites(suites);
    testng.run();
}

【问题讨论】:

    标签: java selenium testing automated-tests testng


    【解决方案1】:

    以编程方式运行一个类:

    TestNG testng = new TestNG();
    testng.setTestClasses(new class [] {TempTest2.class});
    testng.run();
    

    在这种情况下 TempTest2 应该运行

    【讨论】:

    • 如果我有多个套件并想从特定套件运行一个课程。
    • 在这种情况下可能需要一个完全限定的类路径来代替TempTest2.class
    • 好的,你能告诉我如何限制重新运行吗?正如您在拆卸方法中看到的那样,我应该验证上述测试方法,例如 (test1, test2...testn) 如果其中任何一个失败了,我应该在拆卸测试方法中检查它们并重新运行完整的套件。如果我的环境不工作,那么测试会经常失败,所以根据我的脚本,它将形成一个连续执行的循环。我必须触发 Jenkins 的工作,现在它会变得更加混乱。请提出建议。
    • 你肯定不想在循环中连续执行。因为在这种情况下,执行时间会被破坏。 tearDown 不是为了这个目的。如果发生故障,您可以做的是利用 Listners - 也许您应该从 ITestListners 覆盖 onTestFailure() 方法
    • 如果它是一个简单的计数器,并且如果您不关心静态和实例变量.. 在您的测试基类中声明并使其成为静态
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2014-10-12
    • 2013-03-02
    相关资源
    最近更新 更多