测试中的方法优先级



我在根据优先级运行测试方法时遇到问题。下面是我的代码截图

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中定义的测试类顺序运行所有测试。尝试了以下解决方案,但不起作用:

  1. 通过扩展IMethodInterceptor重新确定所有类(testng.xml(的优先级测试方法。

    结果:在本例中,执行顺序为

    i. BeforeSuite Method 
    ii. ABC.verifyABC method
    iii. override intercept method
    
  2. 指定了所有测试类的所有测试方法的优先级,但不知何故,这也对我不起作用。

我正在使用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并根据套件文件运行测试。

最新更新