Я искал это повсюду, и хотя повсюду есть документация и ответы, мне кажется, что я не могу сделать эту работу
В настоящее время я работаю над многомодульным проектом с тысячами тестов, и, поскольку для их запуска требуются часы, я подумал, что будет хорошей идеей запустить их параллельно (только тесты, а не модули)
Для этого я обнаружил, что jUnit 4.7 или более поздней версии с maven-surefire-plugin может использоваться для параллельного запуска тестов
Вот моя конфигурация
<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 секунд, но я не уверен, что оно работает параллельно
Есть что-то, что я пропускаю?