【发布时间】:2014-06-18 15:02:40
【问题描述】:
好的,参考TestNG doc,我可以使用<suite parallel="tests">顺序(默认在测试套件中)或并行运行测试。
现在这是我的 TestNG 配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Complete test suite">
<listeners>
<listener class-name="com.uas.test.portlet.integration.util.WebDriverListener" />
<listener class-name="org.uncommons.reportng.HTMLReporter" />
</listeners>
<test name="Parallel tests" parallel="methods" thread-count="4">
<groups>
<run>
<exclude name="sequential-test"></exclude>
</run>
</groups>
<packages>
<package name="com.uas.test.portlet.integration.main" />
<package name="com.uas.test.portlet.integration.main.categorymanager" />
<package name="com.uas.test.portlet.integration.main.admin" />
</packages>
</test>
<test name="Sequential tests" parallel="false" >
<groups>
<run>
<include name="sequential-test"></include>
</run>
</groups>
<packages>
<package name="com.uas.test.portlet.integration.main" />
<package name="com.uas.test.portlet.integration.main.categorymanager" />
<package name="com.uas.test.portlet.integration.main.admin" />
</packages>
</test>
</suite>
如您所见,我有两种类型的测试:可以并行运行的测试和其他应该按顺序运行的测试。我的套件中没有parallel=tests 属性,所以<test> 标签顺序运行,这样我的第一个并行测试组首先运行,然后是顺序运行。
这是完美的,但我想比这更进一步,我的顺序测试有 2 个子组,每个子组可以彼此并行运行,但两者都在主要并行测试之后...不幸的是我没能做到... 所以总结一下我想要的:
1. RUN Parallel tests main group
THEN
2. RUN Sequential tests main group
--> Sequential subgroup A RUNS IN PARALLEL with Sequential subgroup B (test 1 from subgroup A could run in parallel with test 3 from subgroup B, they are independant)
--> Each test within subgroup A should run sequentially
--> Each test within subgroup B should run sequentially
关于如何使用 TestNG 配置文件来做到这一点的任何想法? (我想避免使用 Ant 等)。
【问题讨论】:
标签: testng