testNG-关于@BeforeClass和@AfterClass中inheritGroups属性的理解
作者:互联网
inheritGroups = true 默认是true,该方法用于限定在class类级别上,限制class类中的@BeforeClass和
@AfterClass注解的方法是否执行
@Test(groups = "级别1")
public class Testc {
@Test(groups="级别1")
public void testc_1(){
System.out.println("testccc_1级别1执行了");
}
@Test(groups="级别2")
public void testc_2(){
System.out.println("testccc_2级别2执行了");
}
@BeforeClass(inheritGroups = false)
public void testc_3(){
System.out.println("testccc_3级别3执行了");
}
@AfterClass(inheritGroups = false)
public void testc_4(){
System.out.println("testccc_4级别3执行了");
}
}
执行上文中的Testc类,结果如下:
testccc_3级别3执行了
testccc_1级别1执行了
testccc_2级别2执行了
testccc_4级别3执行了
===============================================
Default Suite
Total tests run: 2, Failures: 0, Skips: 0
由此可见,inheritGroups的设置,对于直接执行整个测试类来说没有影响。
利用xml文件,按照类级别的分组,执行测试类:
注意⚠️:此处是类级别,class类上必须有@Test(groups = “级别1”)的注解
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="套件">
<test name="运行对应的BeforeClass方法">
<groups>
<run>
<include name="级别1"/>
</run>
</groups>
<classes>
<class name="com.***.***.auto.test.common.local.demo.Testc"/>
</classes>
</test>
</suite>
执行XML后结果如下:
testccc_1级别1执行了
testccc_2级别2执行了
===============================================
套件
Total tests run: 2, Failures: 0, Skips: 0
若对Testc中的testc_3方法inheritGroups的设置删除,默认为true
@BeforeClass()
public void testc_3(){
System.out.println("testccc_3级别3执行了");
}
执行结果为:
testccc_3级别3执行了
testccc_1级别1执行了
testccc_2级别2执行了
===============================================
套件
Total tests run: 2, Failures: 0, Skips: 0
由此可见,inheritGroups的设置,在通过XML执行类级分组脚本时,决定@BeforeClass和@AfterClass注解的方法是否执行。注意:此处的分组必须为class类级,不能为方法级分组注解
标签:AfterClass,inheritGroups,testNG,testc,BeforeClass,testccc,执行,级别,public 来源: https://blog.csdn.net/UUUUUnnn/article/details/120652229