在 TestNG 中,带有优先级的测试执行顺序是什么?


一个 TestNG 类可以包含不同的测试,例如 **test1、test2、test3** 等。当用户运行包含各种测试的 TestNG 类时,它会根据提供的名称按字母顺序运行测试用例。但是,用户可以为这些测试分配优先级,以便这些测试可以按照用户的优先级运行。优先级从“**0**”开始,这是最高优先级,数字越大,优先级越低。

在本文中,让我们分析 TestNG 中带优先级的执行顺序是如何工作的。

场景 1

如果 **test2** (优先级=0)、**test1** (优先级=1)、**test3** (优先级=2),则 **test2** 将首先运行,然后是 **test1**,依此类推,基于优先级。

解决此问题的方法/算法:

  • **步骤 1** - 导入 org.testng.annotations.Test 用于 TestNG。

  • **步骤 2** - 编写注释为 **@test**

  • **步骤 3** - 为 **@test** 注释创建一个方法,名为 **test1**,优先级为 **1**。

  • **步骤 4** - 分别对 **test2** 和 **test3** 重复这些步骤,优先级为“0”和“2”。

  • **步骤 5** - 现在创建 **testNG.xml**。

  • **步骤 6** - 运行 **testNG.xml**,或直接在 IDE 中运行 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** - 对 **test2** 和 **test 3** 重复这些步骤,优先级为 0,并且不提供任何优先级。

  • **步骤 5** - 现在创建 **testNG.xml**。

  • **步骤 6** - 运行 **testNG.xml**,或直接在 IDE 中运行 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

更新于:2022年3月9日

3K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告