我在TestNG中有一堆测试用例。目前我已经使用@groups来执行基于环境的测试用例。我想要实现的是,我将把所有测试用例名称和组放在CSV文件中。例如 -
TestCaseName组Test_Case1 Smoke,Sanity Test_Case2回归
因此,在执行测试之前,用户将提供输入参数作为Smoke,并且仅执行Smoke测试。
我试过'annotation transformer'但它只能在方法级别限制。当我上课时,它正在抛出空指针异常。
另一个问题是我的测试类包含测试方法以及一些调用可重用方法的非测试方法。结果我不能在课堂上提供@Test。
我想要一种方法从CSV和组中读取我的类名(简单类名),并根据该类启用/禁用测试类。
您应该使用TestNG的TestNG配置文件和grouping功能。通过测试,您应该添加适当的组。例如:
@Test(groups={"Smoke","Sanity"}
public void Test_Case1(){
}
@Test(groups={"Regression"}
public void Test_Case2(){
}
要通过配置文件执行特定组:
<test name="Test1">
<groups>
<run>
<include name="Smoke"/>
</run>
</groups>
...
</test>
要通过命令行执行特定组,您可以使用
-groups <comma-separated list of groups>
使用maven或ANT可以在执行时传递groups
参数
-Dgroups=<comma-separated list of groups>
如果你使用QAF - TestNG extension,它提供了定义meta-data的方法,除了组之外,还可以在meta-data filter中使用它。