2

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

  1. FirstTestClass firstTest
  2. FirstTestClass secondTest
  3. FirstTestClass 第三次测试

  4. SecondTestClass firstTest

  5. SecondTestClass secondTest
  6. SecondTestClass 第三次测试

它像这样执行,混合来自每个类的测试:

  1. FirstTestClass firstTest
  2. SecondTestClass firstTest
  3. FirstTestClass secondTest
  4. SecondTestClass secondTest
  5. FirstTestClass 第三次测试
  6. SecondTestClass 第三次测试

这是我的 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>

我所有的测试都有优先级参数集。但它应该只影响类内的测试,而不是现在正在发生的项目的每个测试。

有什么提示吗?

4

1 回答 1

1

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

于 2019-02-01T19:26:36.433 回答