TestNG 执行顺序 - 它混合了来自不同 类 的测试
TestNG execution order - it's mixing tests from different classes
TestNG 在执行时会混合来自不同 classes 的测试。
每个 class 都有一些测试。而不是像这样执行:
- FirstTestClass firstTest
- FirstTestClass secondTest
FirstTestClass thirdTest
SecondTestClass firstTest
- SecondTestClass secondTest
- SecondTestClass thirdTest
它像这样执行,混合来自每个 class:
的测试
- FirstTestClass firstTest
- SecondTestClass firstTest
- FirstTestClass secondTest
- SecondTestClass secondTest
- FirstTestClass thirdTest
- 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>
我所有的测试都设置了优先级参数。但它应该只影响 class 内的测试,而不是现在正在发生的项目的每个测试。
有什么提示吗?
当您的代码 运行 来自 testng 文件时,优先级为 0 运行 的所有测试用例首先 运行 优先级为 1 的测试,依此类推。因此,如果您希望测试用例以特定顺序 运行,您需要从所有 classes.
的测试中删除优先级
在 testng 文件中,您还可以添加 preserve-order="true" 以及 <suite name="Mobile App Automation" verbose="1">
行,然后第一个 class 中提到的所有测试将首先 运行 然后第二个 class 中的测试,但如果在 class 中设置了优先级,测试的顺序将 运行 根据优先级。
所以你需要先去掉优先级,然后你可以使用preserve-order="true"
来维持classes的执行顺序。
TestNG 在执行时会混合来自不同 classes 的测试。 每个 class 都有一些测试。而不是像这样执行:
- FirstTestClass firstTest
- FirstTestClass secondTest
FirstTestClass thirdTest
SecondTestClass firstTest
- SecondTestClass secondTest
- SecondTestClass thirdTest
它像这样执行,混合来自每个 class:
的测试- FirstTestClass firstTest
- SecondTestClass firstTest
- FirstTestClass secondTest
- SecondTestClass secondTest
- FirstTestClass thirdTest
- 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>
我所有的测试都设置了优先级参数。但它应该只影响 class 内的测试,而不是现在正在发生的项目的每个测试。
有什么提示吗?
当您的代码 运行 来自 testng 文件时,优先级为 0 运行 的所有测试用例首先 运行 优先级为 1 的测试,依此类推。因此,如果您希望测试用例以特定顺序 运行,您需要从所有 classes.
的测试中删除优先级
在 testng 文件中,您还可以添加 preserve-order="true" 以及 <suite name="Mobile App Automation" verbose="1">
行,然后第一个 class 中提到的所有测试将首先 运行 然后第二个 class 中的测试,但如果在 class 中设置了优先级,测试的顺序将 运行 根据优先级。
所以你需要先去掉优先级,然后你可以使用preserve-order="true"
来维持classes的执行顺序。