我正在运行TestNG而我正在尝试仅运行所有套件附加中的特定组,但只有第一个测试按组进行过滤。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Managemenet" parallel="methods" thread-count="100" preserve-order="false" >
<test verbose="2" name="Chen Tests" parallel="tests" thread-count="100" >
<groups>
<define name="Sanity">
<include name="mgmt_sanity"></include>
</define>
<define name="Regression">
<include name="mgmt_regression"></include>
<include name="mgmt_sanity"></include>
</define>
<define name="Smoke">
<include name="mgmt_smoke"></include>
</define>
</groups>
<classes>
<class name="com.chen.auto.mgmt.chenTests">
</class>
</classes>
</test>
<test verbose="2" name="Dudu Tests" parallel="tests" thread-count="100" >
<groups>
<define name="Sanity">
<include name="mgmt_sanity"></include>
</define>
<define name="Regression">
<include name="mgmt_regression"></include>
<include name="mgmt_sanity"></include>
</define>
<define name="Smoke">
<include name="mgmt_smoke"></include>
</define>
</groups>
<classes>
<class name="com.chen.auto.mgmt.dudu">
</class>
</classes>
</test>
</suite>
有类似的open question,但没有答案 它看起来像一个bug。因此,即使使用所有并行选项,我也无法使用ReportNG。
有人如何让它发挥作用?
答案 0 :(得分:0)
根据TestNG documentation,你可以定义groups of groups,这就是你要做的事情。但是,这只是创建组,您仍然需要通过指定<run>
元素来定义要运行的组:
<test name="MyTest">
<groups>
<define name="GroupOfGroups1">
<include name="group1"/>
<include name="group2"/>
</define>
<define name="all">
<include name="GroupOfGroups"/>
<include name="group3"/>
</define>
<run>
<include name="all"/>
</run>
</groups>
<classes>
<class name="org.test.MyTest"/>
</classes>
</test>
这定义了TestNG调用者应该执行的所有测试。并行设置不会影响运行中包含哪些测试,而是如何执行这些选定的测试。您可以在同一parallel running中阅读有关TestNG中documentation page个测试的更多信息。
答案 1 :(得分:0)
升级到testNg 6.7 - 它肯定会解决您的问题。