Можно ли сообщить Maven2 выполнить каждый тест jUnit в новом экземпляре JVM (fork) в последовательном режиме, то есть один за другим.
Как сообщить Maven2 выполнить jUnit тесты по одному в новом экземпляре JVM?
Ответ 1
Вы должны разветкить JVM, как описано здесь
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<forkMode>always</forkMode>
</configuration>
</plugin>
Это также должно быть возможно, просто объявив свойство Sytem
mvn -DforkMode=always test
Как описано в документации: "всегда" forks для каждого тестового класса. Я не знаю, будет ли параметр "pertest" вилкой для каждого теста.
Спасибо @Djebel за указание, что forkMode
теперь устарел. Существует подробная документация по Параметры вилки и параллельное тестирование "и как использовать новые параметры forkCount
и reuseForks
, а также следующие советы по миграции:
Old Setting New Setting
forkMode=once (default) forkCount=1 (default), reuseForks=true (default)
forkMode=always forkCount=1 (default), reuseForks=false
forkMode=never forkCount=0
forkMode=perthread, threadCount=N forkCount=N, (reuseForks=false, if you did not had that one set)
Ответ 2
Как насчет стандартной опции forkMode
? Выполняет ли это тестирование параллельно, а не по порядку, как вы хотите?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>always</forkMode>
</configuration>
</plugin>
Ответ 3
Ну, я пробовал эти ответы, но то, что я только что получил, было несколько тестовых функций одного и того же теста JUnit, работающих одновременно. Для создания JVM для каждого тестового файла JUnit (что мне нужно) вы должны использовать следующую конфигурацию (разница в параметре parallel
):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<parallel>classes</parallel>
<reuseForks>false</reuseForks>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
Замените матрицу **/*Test.java
для тех, которые соответствуют тем JUnit Tests, которые должны выполняться в разных JVM. Для получения дополнительной информации посетите: Сочетание forkCount и параллельного.