【发布时间】:2013-11-21 17:07:38
【问题描述】:
我正在尝试将 ant 项目迁移到 maven 3.1。目前,我们为每个要测试的环境(服务器)设置了目标,这些目标对 Chrome 和 Firefox 运行相同的测试集。由于一些限制,我们不能同时运行两个相同类型的浏览器。如果我设置 maven surefire 插件一次运行 1 个测试,则结果有效。如果我用两个线程进行测试,最终它们开始失败,因为一个浏览器被多次执行,因为 Firefox 在我们的网站上运行速度较慢。
在 ant 中,测试目标包含以下内容:
<parallel threadCount="2">
<junit fork="yes" printsummary="withOutAndErr" haltonfailure="no">
<formatter type="xml" />
<batchtest fork="true" todir="${junit.output.dir}">
<fileset dir="target/test-classes/" includes="**/TestFirefox.class">
</fileset>
</batchtest>
<classpath refid="DartSeleniumTest.classpath" />
</junit>
<junit fork="yes" printsummary="withOutAndErr" haltonfailure="no">
<formatter type="xml" />
<batchtest fork="yes" todir="${junit.output.dir}">
<fileset dir="target/test-classes/" includes="**/TestChrome.class" />
</batchtest>
<classpath refid="DartSeleniumTest.classpath" />
</junit>
</parallel>
我曾尝试使用 antrun 插件作为 Surefire 的替代品,但它随 junit 3.x 一起提供。是否有任何其他选项可以并行但分组运行测试?
【问题讨论】:
-
可能 JUnit 3.x 是个问题,因为您的测试是为 JUnit 4.x 编写的?
-
是的,我们有 400 个测试,我宁愿不切换到 junit 3。
标签: java unit-testing maven ant