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
===============================================
极客笔记