TestNG 跳过测试的最佳实践是什么

TestNG 跳过测试的最佳实践是什么

TestNG支持多种方式跳过或忽略@Test的执行。根据需求,用户可以完全跳过一个测试而不执行它,或者根据特定条件跳过一个测试。如果在执行时条件满足,它会跳过测试中的剩余代码。

有以下几种方式来跳过@Test的执行:

  • 在@Test中使用参数 enabled=false 。默认情况下,该参数为true。

  • 使用 throw new SkipException(String message) 来跳过一个测试。

  • 条件跳过-用户可以进行条件检查,如果条件满足,它会抛出SkipException并跳过代码的剩余部分。

但是,当我们谈论如何最佳实践跳过一个测试用例时,它取决于多个因素,比如功能是否可用、测试是否存在错误或者此测试对于进一步执行有依赖。

在本文中,我们将说明在存在对跳过测试的依赖关系时,最佳实践是什么。

步骤

  • 步骤1:创建一个TestNG类-NewTestngClass。

  • 步骤2:在类NewTestngClass中编写3个不同的@Test方法,如编程代码部分所示。

    第一个@Test方法:

它将像普通方法一样执行。

第二个@Test方法:

它会抛出SkipException。TestNG会打印第一行代码,并在到达SkipExecution代码后跳过它。此处有一个静态方法实际上是跳过测试的方法,并且该方法在@Test中调用,以便可以轻松地忽略它,而不需要进一步的更改。

第三个@Test方法:

它依赖于第二个@Test方法。

  • 步骤3:现在按照以下方式创建testNG.xml以运行TestNG类。

  • 步骤4:现在,在IDE中运行testNG.xml或直接运行testNG类,或使用命令行进行编译和运行。

示例

以下是常见TestNG类NewTestngClass的代码:

src/NewTestngClass.java

import org.testng.SkipException;
import org.testng.annotations.Test;

public class NewTestngClass {

    @Test()
    public void testcase1(){
        System.out.println("Testcase 1 - executed");
    }
    @Test
    public void testcase2(){
        System.out.println("Testcase 2 - skip exception example");
        skipTest("BUG-1000-Functionality is Broken");
        System.out.println("Testcase 2 - Do Not execute");

    }

    @Test(dependsOnMethods = { "testcase2" })
    public void testcase3(){
        System.out.println("Test Case3 - Conditional Skip");

    }
    public static void skipTest(String reason) {
        throw new SkipException("Test voluntarily skipped. Reason: " + reason);
    }

}

testng.xml

这是一个用于组织和运行TestNG测试用例的配置文件。

当只需要执行有限的测试用例而不是整个测试套件时,它非常方便。

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">
   <test name = "test1">
      <classes>
    <class name = "NewTestngClass"/>
      </classes>
   </test>
</suite>

输出

Testcase 2 - skip exception example

Test ignored.
Testcase 1 - executed

Test ignored.

===============================================
suite
Total tests run: 3, Passes: 1, Failures: 0, Skips: 2
===============================================

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

TestNG 精选笔记