我一直在到处寻找它,尽管到处都有文档和答案,但我似乎无法完成这项工作
我目前正在处理一个包含数千个测试的多模块项目,因为这些测试需要几个小时才能运行,所以我认为最好并行运行它们(只是测试而不是模块)
为此,我发现可以使用带有maven-surefire-plugin的jUnit 4.7或更高版本来并行运行测试
这是我的配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<argLine>-Xverify:none
-enableassertions -Djava.util.Arrays.useLegacyMergeSort=true @{argLine}</argLine>
<useSystemClassLoader>false</useSystemClassLoader>
<includes>
<include>**/*Test.java</include>
<include>**/Test*.java</include>
</includes>
<excludes>
...
...
</plugin>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<includes>
<include>**/*Test.java</include>
<include>**/Test*.java</include>
</includes>
<!-- Required until JDK >=1.7.0u72, see https://code.google.com/p/powermock/issues/detail?id=504 -->
<runOrder>alphabetical</runOrder>
<argLine>@{argLine}</argLine>
</configuration>
</plugin>
在 Apache Maven 3.3.9 上运行 有各种各样的测试(RunWith,PowerMock,BeforeClass,Before等)
这就是我要测试我的配置是否正常工作
首先,我构建所有模块
mvn clean install -Pbuild-all -DskipTests
接下来,我使用以下命令行运行特定的模块测试
mvn test -DfailIfNoTests=false -pl module1
由于我在某些测试中陷入困境,因此上述内容似乎无法并行运行
此外,我尝试运行多个 jUnit 测试类,而不是模块中的所有内容,但是我不确定它们是否并行运行,因此我使用了以下命令
mvn test -DfailIfNoTests=false -Dtest=testClass1,testClass2,testClass3 -pl module1
以上内容在20秒内完成,但我不确定是否已并行运行
有什么我想念的吗?