无法在Maven中并行运行JUnit测试

时间:2019-06-14 08:18:31

标签: java maven junit maven-surefire-plugin

我一直在到处寻找它,尽管到处都有文档和答案,但我似乎无法完成这项工作

我目前正在处理一个包含数千个测试的多模块项目,因为这些测试需要几个小时才能运行,所以我认为最好并行运行它们(只是测试而不是模块)

为此,我发现可以使用带有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秒内完成,但我不确定是否已并行运行

有什么我想念的吗?

0 个答案:

没有答案