TestNG忽略或者禁用测试
时间:2020-02-23 14:41:56 来源:igfitidea点击:
有时我们想忽略一个TestNG测试方法,有很多方法可以实现。
TestNG @Test启用参数
我们可以通过在@Test注解中添加enabled = false来禁用或者忽略测试方法。
让我们看一个忽略此方法的简单示例。
package com.theitroad.utils; import org.testng.annotations.Test; public class TestNGExample { @Test public void foo() { System.out.println("Running foo test"); } @Test(enabled=false) public void bar() { System.out.println("Running bar test"); } @Test(groups="zoo") public void zoo() { System.out.println("Running zoo test"); } @Test(groups="test") public void base() { System.out.println("Running base test"); } }
当执行上述测试类时,我们得到以下输出,确认未执行bar()方法。
[RemoteTestNG] detected TestNG version 6.14.3 Running base test Running foo test Running zoo test PASSED: base PASSED: foo PASSED: zoo
此方法有很大的缺点,每次我们想禁用一个方法时,都需要进行代码更改并再次编译我们的类。
XML套件中的TestNG禁用测试
TestNG XML套件文件提供了很多选项。
我们可以从执行中排除测试方法以及组。
让我们创建一个简单的TestNG XML套件文件,其中将排除foo
方法。
我们还将在测试执行中排除" zoo"。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="TestNG Excludes Test Suite" guice-stage="DEVELOPMENT"> <groups> <run> <exclude name="zoo"></exclude> </run> </groups> <test thread-count="5" name="TestNG Excludes Test" verbose="2"> <groups> <run> <exclude name="zoo"></exclude> </run> </groups> <classes> <class name="com.theitroad.utils.TestNGExample"> <methods> <exclude name="foo"></exclude> </methods> </class> </classes> </test> </suite>
在XML文件上方运行TestNG Suite,它将产生以下输出。
注意,我们可以在套件级别以及测试级别将组排除在执行之外。
上面的XML代码同时显示了两种方式,但是在这种情况下,它是多余的,我们可以删除其中的任何一种配置。