我在根据优先级运行测试方法时遇到问题。下面是我的代码截图
Class TestHarness{
@BeforeSuite
setUP(){ }
@AfterSuite
tearDown(){}
}
XYZ extends TestHarness{
@Test(Priority=1)
verifyXYZ{}
}
ABC extends TestHarness{
@Test(Priority=2)
verifyABC{}
}
测试.xml
<suite name="SmokeTestSuite">
<listener class-name="TestResultListener" />
<test name="SmokeTests" >
<classes>
<class name="XYZ" />
<class name="ABC"/>
</classes>
</test>
</suite>
ABC.verifyABC()
方法在XYZ.verifyXYZ()
之前执行。即使preserve-order
没有在testng.xml
中设置假.
主要目的是根据testng.xml
中定义的测试类顺序运行所有测试。尝试了以下解决方案,但不起作用:
通过扩展
IMethodInterceptor
重新确定所有类(testng.xml
(的优先级测试方法。结果:在本例中,执行顺序为
i. BeforeSuite Method ii. ABC.verifyABC method iii. override intercept method
指定了所有测试类的所有测试方法的优先级,但不知何故,这也对我不起作用。
我正在使用testng 6.11版本。在这种情况下,任何人都可以帮助我。
提前感谢!
preserve-order
不如priority
重要:
顺序特征的层次结构(从不太重要到更重要(:groupByInstance、preserveOrder、priority、dependsOnGroups、dependsOnMethods
https://github.com/cbeust/testng/blob/master/CHANGES.txt#L75
因此,在发生冲突时,TestNG将在preserve-order
之前尊重priority
。
如果您删除优先级,则 TestNG 应该尊重preserve-order
并根据套件文件运行测试。