TestNG执行顺序-它混合了来自不同类的测试

时间:2019-02-01 18:57:11

标签: testng testng.xml

TestNG在执行时会混合来自不同类的测试。 每个班级都有一些测试。而不是像这样执行:

  1. FirstTestClass firstTest
  2. FirstTestClass secondTest
  3. FirstTestClass thirdTest

  4. SecondTestClass firstTest

  5. SecondTestClass secondTest
  6. SecondTestClass thirdTest

它执行如下,混合每个类的测试:

  1. FirstTestClass firstTest
  2. SecondTestClass firstTest
  3. FirstTestClass secondTest
  4. SecondTestClass secondTest
  5. FirstTestClass thirdTest
  6. SecondTestClass thirdTest

这是我的XML:

<suite name="Mobile App Automation" verbose="1">
<test name="Android">
    <parameter name="OS" value="android"/>
    <parameter name="remote" value="true"/>
    <classes>
        <class name="Test.FirstTestClass"/>
        <class name="Test.SecondTestClass"/>
    </classes>
</test>

我所有的测试都设置了priority参数。但这应该只影响类中的测试,而不影响现在正在发生的项目的每个测试。

有任何提示吗?

1 个答案:

答案 0 :(得分:1)

当您的代码从testng文件运行时,所有优先级为0的测试用例首先运行,然后运行优先级为1的测试,依此类推。因此,如果希望测试用例按特定顺序运行,则需要从所有类的测试中删除优先级。
并且在testng文件中,您还可以在<suite name="Mobile App Automation" verbose="1">行中添加preserve-order =“ true”,然后将首先运行第一个类中提到的所有测试,然后再运行第二个类中的测试,但是如果在类中设置了优先级,测试的顺序将根据优先级进行。
因此,您需要先删除优先级,然后才能使用preserve-order="true"来维护类的执行顺序。