(六)TestNG 用例分组
虫师 创建于 almost 7 years 之前
最后更新: less than a minute 之前
阅读数: 224
有时候我们的测试用例并不想以测试包、类和用例为单位去运行。测试用例可以有多个纬度去标识。
例如,可以根据用例的重要程度划分:
- 重要程度:低——>中——>高
或者,根据用例的类型划分:
- 类型:正常——>异常
TestNG 允许我们给测试用例贴标签。我们可以根据这些标签有选择地的跳过或执行这些用例。
实例
import org.testng.annotations.Test;
import static org.testng.AssertJUnit.assertEquals;
@Test(groups = {"功能测试"})
public class TagTest {
@Test(groups={"高", "正常"})
public void testCase1(){
assertEquals(2+2, 4);
}
@Test(groups = {"高", "正常"})
public void testCase2(){
assertEquals(5-3, 2);
}
@Test(groups = {"中", "正常"})
public void testCase3(){
assertEquals(2/1, 2);
}
@Test(groups = {"低", "异常"})
public void testCase4(){
assertEquals(2/0, 1);
}
}
接下来配置 testng.xml ,根据标签筛选要运行的测试用例。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="测试套件" verbose="1" >
<test name="简单测试">
<groups>
<run>
<exclude name="异常" /> <!-- 排除不执行的测试用例 -->
<include name="高" /> <!-- 指定执行的测试用例 -->
</run>
</groups>
<classes>
<class name="test.sample.TagTest"/>
</classes>
</test>
</suite>
<groups>...</groups>
测试组标签。<run>...</run>
运行测试。<exclude>
根据groups的设置,排除不执行的用例。<include>
根据groups的设置,指定执行的测试用例。
根据上面的配置,运行测试: testCase1 和 testCase2 两条用例将被执行。
不要忘了,我们给 TagTest 测类同样也划分了组(groups = {"功能测试"}
),现在修改 testng.xml 配置。
……
<groups>
<run>
<exclude name="异常" /> <!-- 排除不执行的测试用例 -->
<include name="功能测试" /> <!-- 指定执行的测试用例 -->
</run>
</groups>
……
再次运行测试:testCase1、testCase2 和 testCase3 三条用例将被执行。