TestNG提供了启用和禁用测试用例的功能。我们可以禁止执行一组测试用例。例如, 考虑一种场景, 其中某些功能由于某些测试而导致严重错误, 因此我们需要禁止执行测试用例。
在TestNG中, 可以通过两种方式禁用测试用例:
- 你可以在@Test批注中禁用测试用例。
- 你可以在XML文件中禁用测试用例。
TestNG @Test启用参数
你可以通过在@Test批注中使用enable属性来禁用或排除测试用例, 并为enable属性分配False值。
让我们通过一个例子来理解:
package day1;
import org.testng.annotations.Test;
public class module1
{
@Test(enabled=false)
public void test1() // First test case
{
System.out.println("Hello srcmini!!");
}
@Test
public void test2() // Second test case
{
System.out.println("JTP Travels");
}}
在上面的代码中, 我们创建了两个测试用例, 即test1()和test2(), 并且通过将False值分配给enable属性来禁用第一个测试用例。在禁用第一个测试用例时, 将运行唯一的第二个测试用例。
输出
在上面的输出中, 我们观察到只有第二个测试用例可以正常运行。
禁用XML文件中的enable属性。
第一步:到目前为止, 我们已经创建了个人贷款部门的测试用例。
module1.java
package day1;
import org.testng.annotations.Test;
public class module1
{
@Test
public void test1()
{
System.out.println("Hello srcmini!!");
}
@Test
public void test2()
{
System.out.println("JTP Travels");
}}
module2.java
package day1;
import org.testng.annotations.Test;
public class module2
{
@Test
public void WebLoginCarLoan()
{
System.out.println("WebLoginCarLoan");
}
@Test
public void MobileLoginCarLoan()
{
System.out.println("MobileLoginCarLoan");
}
@Test
public void APILoginCarLoan()
{
System.out.println("APILoginCarLoan");
}
}
module1.java包含个人贷款的测试用例, 而module2.java包含汽车贷款的测试用例。
步骤2:如果要在汽车贷款模块中禁用MobileLoginCarLoan测试用例, 则需要在xml文件中添加<method>标记, 该标记可以访问类的所有方法。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="loan_department">
<test name="Personal_loan">
<classes>
<class name="day1.module1"/>
</classes>
</test> <!-- Test -->
<test name="Car_loan">
<classes>
<class name="day1.module2">
<methods>
<exclude name = "MobileLoginCarLoan"/>
</methods>
</class>
</classes>
</test>
</suite> <!-- Suite -->
步骤3:运行testng.xml文件。右键单击testng.xml文件, 然后将光标向下移动, 你将看到”运行方式”, 然后单击1 TestNG Suite。
输出
在上面的输出中, 我们观察到除已排除的测试用例” MobileLoginCarLoan”外, 所有测试用例均成功运行。
注意:假设我们有多个测试用例, 并且你只想包含一个或两个测试用例, 在这种情况下, 我们使用<include>标记。如果我们使用<exclude>标记, 那么排除所有测试用例将变得非常繁琐。
让我们通过<include>标签的示例来了解。
test.java文件
package day1;
import org.testng.annotations.Test;
public class test
{
@Test
public void test1()
{
System.out.println("test1");
}
@Test
public void test2()
{
System.out.println("test2");
}
@Test
public void test3()
{
System.out.println("test3");
}
@Test
public void test4()
{
System.out.println("test3");
}
}
testng.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="test_suite">
<test name="test">
<classes>
<class name="day1.test">
<methods>
<include name="test3"/>
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
输出
在上面的输出中, 我们观察到只有一个测试用例正在运行, 即test3, 因为我们在XML文件的<include>标记中仅包含了test3。
评论前必须登录!
注册