与surefire maven插件并行运行junit测试

时间:2014-04-02 06:33:00

标签: java junit maven-surefire-plugin

将surefire插件配置成只能并行运行某些测试而其他测试按顺序运行是可行的吗?

还可以使用surefire forkCount 来运行声明为jUnit Suite的并行测试吗?

3 个答案:

答案 0 :(得分:1)

您可以使用单独的maven配置文件和两种不同的surefire插件配置。

答案 1 :(得分:1)

一种非常简单的方法如下:

  • 在junit
  • 中将每个顺序测试移动到自己的测试套件中
  • 将并行测试全部移至同一套件中。
  • 将“平行”设置为"类"



configuration>
					<includes>
						<include>**/A01TestSuite.java</include>
						<include>**/A02ServiceTestSuite.java</include>
						<include>**/A03FlowTestSuite.java</include>
					</includes>
					<additionalClasspathElements>
						<additionalClasspathElement>${webinf.dir}</additionalClasspathElement>
					</additionalClasspathElements>
					<systemPropertyVariables>
						<log4j.configuration>file:${l4j.test}/log4j.test.properties</log4j.configuration>
					</systemPropertyVariables>
					<forkMode>always</forkMode>
					<argLine>-Xms512m -Xmx512m</argLine>
					<parallel>classes</parallel>
					<threadCount>10</threadCount>

				</configuration>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以将其添加到pom.xml文件中的maven-surefire-plugin的配置中。

<configuration>
    <parallel>all</parallel>
    <threadCount>10</threadCount>
    <threadCountSuites>2</threadCountSuites>
    <threadCountClasses>2</threadCountClasses>
    <threadCountMethods>6</threadCountMethods>
    <parallelTestTimeoutInSeconds>3.5</parallelTestTimeoutInSeconds>
    <parallelTestTimeoutForcedInSeconds>5</parallelTestTimeoutForcedInSeconds>
    <perCoreThreadCount>true</perCoreThreadCount>
    <includes>
        <include>**/FunctionTestSuite.java</include>
    </includes>
</configuration>

可以在此link上找到详细的说明。它给出了逐步完整的描述,以与surefire-maven-plugin并行运行JUnit测试。

注意:此代码段显示了所有可用选项。您可以根据需要更改或删除一些选项!