Как выполнить тесты JUnit параллельно для одного тестового класса в Gradle
У нас есть много интеграционных тестов, которые используют весной. Мы не хотели бы создавать отдельные процессы JVM для тестов (опция maxParallelForks) или запускать только параллельные сборки в многомодульном проекте (--parallel).
мы хотели бы, чтобы один тестовый класс выполнял тесты параллельно, как в Maven с http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html и параллельный вариант
важная вещь, котор нужно вспомнить с параллельным вариантом является следующим: параллелизм происходит в одном и том же процессе JVM.
можно ли достичь в Gradle?
2 ответов
Весна 5: новый ребенок на блоке
С весны 5 Вы можете запускать тесты Junit (используя Весна TestContext Рамках) параллельно, что, я думаю, и есть то, что вы ищете: одновременное выполнение в одной и той же JVM.
посмотреть блог Baeldung для получения дополнительной информации.
оригинальный ответ:
здесь Gradle doc объяснение задач плагина Java в Gradle и вот API док!--9--> объясняя параметры для указанного плагина.
пожалуйста, посмотрите ближе на forkEvery и maxParallelForks параметры.
установка их должна дать вам достаточно контроля для достижения параллельного выполнения теста.
здесь так ответа указывая на то, что значение maxParallelForks
должно быть установлено, чтобы максимизировать ускорение.
@MariuszS ответ был лучшим
Gradle-это ant без xml, возможно, это может вам помочь ant.apache.org/manual/Tasks/parallel.html :)
самый близкий способ достичь этого описан здесь -https://discuss.gradle.org/t/how-to-use-ants-parallel-target/6720/5
task runAllTestsByGroups << {
ant.parallel(threadsPerProcessor: 1) {
ant.junit (...) {
// run test group 1
...
}
ant.junit(...) {
// run test group 2
...
}
// run group 3, 4, 5 ...
}
}