TestNG 如何保持TestNG.xml中所述的执行顺序
在最新版本中,TestNG根据TestNG.xml或任何可执行的XML文件中的顺序执行类。但是,在旧版本中运行tesng.xml时,有时不会保持顺序。TestNG可能会以随机顺序运行类。在最新版本中,TestNG根据TestNG.xml或任何可执行的XML文件中的顺序执行类。但是,在旧版本中运行tesng.xml时,有时不会保持顺序。TestNG可能会以随机顺序运行类。
在本文中,我们将讨论如何确保按照tesng.xml保持的执行顺序。
TestNG支持两个属性-并行和保留顺序。这些属性在testing.xml中使用。
- 并行属性用于并行运行测试。因此,第一步是确保不会并行执行以保持执行顺序。并行属性在套件级别上添加,所以需要将parallel = “none”添加到parallel = “”。
-
保留顺序属性在测试级别上使用。TestNG在旧版本的默认值为false。这可能导致随机执行。为了确保执行顺序接受,我们在testing.xml中将属性分配为true。
现在,我们将看到如何实现这两个属性以确保执行顺序按照testing.xml中的顺序进行。
步骤
- 步骤1:创建2个TestNG类-OrderofTestExecutionInTestNG和NewTestngClass
-
步骤2:在这两个类中编写2个不同的@Test方法-OrderofTestExecutionInTestNG和NewTestngClass。
-
步骤3:现在创建testNG.xml以运行这两个TestNG类,并如下所示指定parallel = none和preserve−order = true
-
步骤4:现在,在IDE中运行testNG.xml或直接运行testNG类,或者使用命令行编译并运行它。
示例
以下是TestNG类OrderofTestExecutionInTestNG的代码:
import org.testng.annotations.*;
public class OrderofTestExecutionInTestNG {
// test case 1
@Test
public void testCase1() {
System.out.println("in test case 1 of OrderofTestExecutionInTestNG");
}
// test case 2
@Test
public void testCase2() {
System.out.println("in test case 2 of OrderofTestExecutionInTestNG");
}
}
以下是常见的TestNG类NewTestngClass的代码:
import org.testng.annotations.*;
public class NewTestngClass {
@Test
public void testCase1() {
System.out.println("in test case 1 of NewTestngClass");
}
@Test
public void testCase2() {
System.out.println("in test case 2 of NewTestngClass");
}
}
testng.xml
这是一个用于组织和运行TestNG测试用例的配置文件。
当只需要执行有限的测试而不是整个套件时,它非常有用。
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1" parallel = "none">
<test name = "test1" preserve-order = "true">
<classes>
<class name = "OrderofTestExecutionInTestNG"/>
<class name = "NewTestngClass"/>
</classes>
</test>
</suite>
输出
in test case 1 of OrderofTestExecutionInTestNG
in test case 2 of OrderofTestExecutionInTestNG
in test case 1 of NewTestngClass
in test case 2 of NewTestngClass
===============================================
Suite1
Total tests run: 4, Passes: 4, Failures: 0, Skips: 0
===============================================