如何在 TestNG 中顺序执行测试?


一个 TestNG 类可以包含不同的测试,例如 test1、test2、test3 等。当用户运行包含各种测试的 TestNG 类时,它会根据提供的名称按字母顺序运行测试用例。但是,用户可以为这些测试分配优先级,以便这些测试可以根据用户的优先级运行。优先级从 0 开始,并按递增顺序排列。优先级 0 具有最高优先级,当优先级增加到 1、2、3 等时,优先级会降低。

在本教程中,让我们分析一下执行顺序以不同方式发生的情况。

场景 1

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

解决此问题的方法/算法

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

  • 步骤 2:编写一个 @test 注解。

  • 步骤 3:为 @test 注解创建一个方法,例如 test1,并提供 priority=1。

  • 步骤 4:分别为 test2 和 test3 重复步骤 3,优先级分别为 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 (priority=0)、test1(priority=1) 并且 test3 没有优先级,则 test2 将首先运行,然后是 test3,最后是 test1。由于 test3 没有用户定义的优先级,TestNG 将其优先级设置为 0,并且在按字母顺序排列时,test2 首先出现,然后是 test3。

解决此问题的方法/算法

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

  • 步骤 2:编写一个 @test 注解。

  • 步骤 3:为 @test 注解创建一个方法,例如 test1,并提供 priority=1。

  • 步骤 4:分别为 test2 和 test 3 重复步骤 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

更新于:2023年8月18日

2K+ 次浏览

启动您的 职业生涯

完成课程后获得认证

开始学习
广告