TestNG 如何按顺序执行测试
TestNG类可以包含不同的测试,例如test1、test2、test3等。一旦用户运行包含各种测试的TestNG类,它将根据提供的名称按字母顺序运行测试用例。然而,用户可以为这些测试分配优先级,以便根据用户的优先级运行这些测试。优先级从0开始,按递增顺序排列。优先级0具有最高优先级,当优先级增加时,优先级值递减,如1、2、3等。
在本教程中,让我们分析不同方式的执行顺序。
情景1
如果test2(优先级=0)、test1(优先级=1)、test3(优先级=2),那么test2将首先运行,然后是test1,依此类推,根据优先级进行顺序。
步骤
- 步骤1:导入org.testng.annotations.Test以使用TestNG。
-
步骤2:将注释写成@test。
-
步骤3:为@test注释创建一个方法,例如test1,并指定priority=1。
-
步骤4:按照优先级0和2的顺序重复上述步骤,创建test2和test3。
-
步骤5:现在创建testNG.xml文件。
-
步骤6:现在,在IDE中运行testNG.xml文件或直接运行testNG类,或使用命令行编译并运行。
示例
以下代码创建一个TestNG类,并显示执行的优先级顺序:
import org.testng.annotations.Test;
public class OrderofTestExecutionInTestNG {
@Test(priority=1)
public void test1() {
System.out.println("Starting execution of TEST1");
}
@Test(priority=0)
public void test2() {
System.out.println("Starting execution of TEST2");
}
@Test(priority=2)
public void test3() {
System.out.println("Starting execution of TEST3");
}
输出
Starting execution of TEST2
Starting execution of TEST1
Starting execution of TEST3
情景2
如果test2(优先级=0),test1(优先级=1)和test3没有优先级,则test2将首先运行,然后是test3,最后是test1。由于test3没有用户定义的优先级,TestNG将其分配为优先级=0,并且按字母顺序test2先于test3。
步骤
- 步骤1:导入org.testng.annotations.Test用于TestNG。
-
步骤2:写一个注解@test
-
步骤3:为@test注解创建一个方法作为test1,并提供优先级=1。
-
步骤4:为优先级0的test2和test3重复步骤,并分别不提供任何优先级。
-
步骤5:现在创建testNG.xml。
-
步骤6:现在,在IDE中运行testNG.xml或直接运行testNG类,或使用命令行进行编译和运行。
示例
以下代码创建一个TestNG类并显示执行优先级顺序:
import org.testng.annotations.Test;
public class OrderofTestExecutionInTestNG {
@Test(priority=1)
public void test1() {
System.out.println("Starting execution of TEST1");
}
@Test(priority=0)
public void test2() {
System.out.println("Starting execution of TEST2");
}
@Test()
public void test3() {
System.out.println("Starting execution of TEST3");
}
输出
Starting execution of TEST2
Starting execution of TEST3
Starting execution of TEST1