Maven:: запуск только одного теста в многомодульном проекте
Есть ли способ предоставить некоторый аргумент командной строки, чтобы пропустить все тесты, кроме одного на каком-то модуле? Так что мне не нужно менять pom.xml каждый раз, когда мне нужно будет запустить еще один тест?
Например, я хочу создать конфигурацию сборки в TeamCity и предоставить аргументы командной строки для запуска только одного теста в каком-либо модуле. В следующий раз мне нужно будет изменить его и запустить еще один тест и т.д.
Возможно, это не так, как предполагается, что CI используется, но все же.
Ответы
Ответ 1
Я предполагаю, что вы прочитали документы о запуске одного теста при уверенности? То, что они не говорят вам, как это сделать в подмодуле:
mvn test -Dtest=testname -pl subproject
Где subproject
- проект, содержащий этот тест. На странице mvn man:
-pl, - projects arg Список разделенных запятыми заданных проектов реакторов для сборки вместо всех проектов. Проект может быть задан [groupId]: artifactId или его относительным путем.
Ответ 2
Другие ответы, которые я вижу, не полностью завершены, для проектов, которые зависят от других подмодулей, которые будут построены. Один из вариантов - запустить mvn install
чтобы mvn install
необходимые ~/.m2/...
в ~/.m2/...
, но этот вариант не очень "чистый".
Следующая команда создаст подмодули и запустит только указанный тестовый класс. Это должно быть запущено на уровне родительского модуля. Кроме того, нет необходимости указывать имя подмодуля.
mvn test -DfailIfNoTests=false -Dtest={test_class_name} -am
Кроме того, это также может быть mvn clean test -Dfa.....
У меня есть привычка всегда работать в clean
при проведении тестов.
Рекомендации..
-am
сделает все остальные -am
.
-DfailIfNoTests=false
не -DfailIfNoTests=false
весь процесс, так как мы не собираемся запускать тесты в других модулях.
-pl
не нужна, поскольку -am
уже строит все
Ответ 3
Если проверяемый модуль зависит от других проектов, решение работает, изменяя команды следующим образом:
mvn test -DfailIfNoTests=false -Dtest=testname -pl subproject
Ссылка: http://www.automatethebox.com/2015/12/some-helpful-commands-to-build-multi.html