TestNG 如何忽略测试类
TestNG支持多种方式来忽略所有的@Test执行。根据需求,用户可以在不执行的情况下完全忽略一个完整的测试。
TestNG支持以下级别来忽略所有的@Test:
- 在一个类中
-
在一个特定包中
-
在一个包及其所有子包中
用户必须在所需的级别上使用@Ignore注解来禁用测试。@Ignore注解的优先级高于单个@Test注解。
要在一个类中禁用所有的@Test,只需在类名前面写上@Ignore。它将禁用类中的所有@Test。
在本文中,我们将说明如何禁用一个类中的整个测试。
步骤
- 第一步:创建一个TestNG类 – NewTestngClass。
-
第二步:在该类中编写两个不同的@Test方法 – NewTestngClass,并在编程代码部分的类名上方放置@Ignore注解。
-
第三步:现在创建如下的testNG.xml来运行TestNG类。
-
第四步:现在,在IDE中运行testNG.xml或直接运行testNG类,或使用命令行编译和运行它。
示例
以下是一个常见的TestNG类 – NewTestngClass的代码:
src/NewTestngClass.java
import org.testng.SkipException;
import org.testng.annotations.Test;
@Ignore
public class NewTestngClass {
@Test(enabled=false)
public void testcase1(){
System.out.println("Testcase 1 - Not executed");
}
@Test
public void testcase2(){
System.out.println("Testcase 2 - skip exception example");
throw new SkipException("Skipping this exception");
}
@Test
public void testcase3(){
boolean DataAvailable=false;
System.out.println("Test Case3 - Conditional Skip");
if(!DataAvailable)
throw new SkipException("Skipping this exception");
System.out.println("Executed Successfully");
}
}
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>
输出
===============================================
Suite1
Total tests run: 0, Passes: 0, Failures: 0, Skips: 0
===============================================