Столкнувшись с задачей параллельного запуска тестов при помощи surefire плагина, я полез читать офицаильную документацию (и зря). Написана она немного сумбурно, наверное из-за немного сумбурного развития этой фичи. Давай попробуем разобраться вместе.
Первый параметр, с которым тебе предстоит определиться - parallel. Тут surefire предлагает гору вариантов, половина из которых бесполезна:
methods- тут всё понятноclasses- тоже окboth- 1+2, но уже deprecatedsuites- кто-то пользуется сьютами в junit/testng?- дальше начинается ад с перестановкой предыдущих вариантов:
suitesAndClasses,suitesAndMethods,classesAndMethods(повезло им что всего три сущности) all- заверните всё, пожалуйста
В реальной жизни нужны лишь два с половиной сценария. Если тесты независимы и ресурсы неограниченны - выбираем вариант all. Или тесты независимы, но ограничены каким-либо общим ресурсом. Тогда, в зависимости от того, как написаны тесты, выбираем methods или classes. Любые другие вариант не гарантируют тебе одинакового количества одновременно выполняемых тестов от запуска к запуску, но гарантируют головняк при их конфигурации. Лично я не очень люблю, когда я не контролирую выполнение моих тестов :).
Дальше выставляй параметр useUnlimitedThreads=true. Использовать неограниченно число тредов - звучит довольно страшно, но это всё враки, реальное число тредов регулируется другими параметрами. В зависимости от того, какой способ параллелизации ты выбрал - all/classes/methods, выставляй один из трёх - threadCount/threadCountClasses/threadCountMethods.