在使用TestNG + Selenium时,我无法确保类的执行顺序。下面指定的顺序(在testng.xml中)不起作用 - > ClassTwo首先执行,然后执行ClassOne。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="ABC" parallel="">
<test verbose="2" name="xyz" annotations="JDK" preserve-order="true">
<classes>
<class name="script.ClassOne"/>
<class name="script.ClassTwo"/>
</classes>
</test>
</suite>
如何确保保留TestNG.xml中指定的顺序?
答案 0 :(得分:5)
默认情况下,TestNG将按照找到的顺序运行测试 XML文件。如果您需要此文件中列出的类和方法 要以不可预测的顺序运行,请设置preserve-order属性 为假
我建议保留preserve-order
属性,因为它是默认设置的。
但是,您还有两个其他选项可以强制执行测试方法/类的特定顺序:
答案 1 :(得分:4)
您只需将并行值设置为无
<suite name="ABC" parallel="none">
它对我有用!
答案 2 :(得分:0)
你在课堂上试过@Test( dependsOnGroups= { "dummyGroupToMakeTestNGTreatThisAsDependentClass" } )
吗?
看到这个帖子: TestNG & Selenium: Separate tests into "groups", run ordered inside each group
希望这有帮助!
答案 3 :(得分:0)
....活动结束后,我有同样的问题,发现自己在这里。
最后,因为个别测试已在@Test
注释中标记为优先级,因此在我的情况下,您的示例script.ClassTwo
的优先级高于script.ClassOne
< / p>
答案 4 :(得分:0)
在TestNG中,执行顺序基于字母顺序,因此我们可以使用TestNG属性Priority,并在其中提及您要首先执行哪种class->方法。这是可以在@中给出的Priority注释属性测试注释。
示例:@Test(Priority = -1)
将数字值先执行一次。