问题描述
我有一个testng xml文件,该文件被设置为运行特定类,该类具有包含以下组标记或被分组为以下其中之一的方法:
- 并行测试
- 顺序测试
- 烟雾测试
尽管我的某些测试被指定为并行或顺序进行,但某些测试可能包含附加的标签“烟雾测试”。在这种情况下,我希望能够只运行那些被分组为“烟雾测试”的程序。当我运行测试时,它要么找不到任何测试,要么运行所有分组为“顺序测试”的测试。我似乎无法将从此xml文件运行的测试限制为仅归类为“烟雾测试”的那些测试。在同一个类中,我有多个testNG方法都具有“并行测试”组或“顺序测试”组。看起来TestNG xml文件正在做什么,只是忽略了“并行测试”组。太好了,但是如果Testng方法包含“并行测试”和“烟雾测试”组怎么办?我想运行每个测试,而不管它是用于并行测试还是顺序测试,但是仅那些具有附加组标记“ smoke-test”的测试。我的环境如下:
- IntelliJ
- 行家
- TestNG
- Java
请帮助。请参阅WebTest.Test类中的示例测试方法:
@Test(groups = {"sequential-test","smoke-test"},description = "Test will validate something")
public void Runtest()
{
//do something
}
这是下面的示例xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYstem "http://testng.org/testng-1.0.dtd">
<!--This is a template to be modified for QA environment tests-->
<suite name="Smoke Test">
<listeners>
<listener class-name="Listeners.Listeners"/>
<listener class-name="Listeners.ExtentListeners"/>
</listeners>
<parameter name="environment" value="QA"></parameter>
<test verbose="2" name="Sequential tests" parallel="methods" thread-count="1">
<!--<groups>
<run>
<exclude name="parallel-test"/>
</run>
</groups>-->
<classes>
<class name="WebTests.Test">
<methods>
<include name="smoke-test"/>
</methods>
</class>
</classes>
</test>
</suite>
解决方法
下面的XML Suite应该运行所有具有“烟雾测试”组的测试方法
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--This is a template to be modified for QA environment tests-->
<suite name="Smoke Test">
<listeners>
<listener class-name="Listeners.Listeners"/>
<listener class-name="Listeners.ExtentListeners"/>
</listeners>
<parameter name="environment" value="QA"></parameter>
<test verbose="2" name="Sequential tests" parallel="methods" thread-count="1">
<groups>
<run>
<include name="smoke-test"/>
</run>
</groups>
<classes>
<class name="WebTests.Test"/>
</classes>
</test>
</suite>