maven: Как пропустить тест в некоторых проектах через параметры командной строки?

В моем проекте maven у меня есть несколько модhive. Можно ли отключить запуск модульного теста для некоторых модhive с помощью параметров командной строки?

Мой проект занимает около 15 минут для прохождения всех модульных тестов. Я хотел бы ускорить общую сборку, выполнив только модульные тесты в модуле, над которым я работаю. Я не хочу входить и редактировать каждый отдельный pom.xml для достижения этого.

Я пробовал решение, изложенное здесь: Могу ли я запустить определенную тестовую группу testng через maven? Однако результатом является множество ошибок тестирования в модулях, которые я хочу пропустить. Я полагаю, что «группа» – это не одно и то же понятие модуля?

Для включения и выключения модульных тестов для всего проекта используйте возможности Maven Surefire Plugin для пропусков тестов . Существует недостаток использования skipTests из командной строки. В сценарии построения нескольких модhive это отключит все тесты во всех модулях.

Если вам требуется более тонкое управление зерном для запуска подмножества тестов для модуля, ознакомьтесь с использованием возможностей включения и исключения для модуля Maven Surefire Plugin .

Чтобы разрешить переопределения командной строки, используйте свойства POM при настройке плагина Surefire. Возьмем, например, следующий сегмент POM:

   org.apache.maven.plugins maven-surefire-plugin 2.9   ${someModule.test.excludes}   ${someModule.test.includes}       false ${someModule.skip.tests} **/*Test.java **/*Test.java.bogus  

С помощью POM, как указано выше, вы можете выполнять тесты различными способами.

  1. Запустите все тесты (указанная выше конфигурация включает все исходные файлы теста ** / * Test.java)
 mvn test 
  1. Пропустить все тесты по всем модулям
 mvn -DskipTests=true test 
  1. Пропустить все тесты для определенного модуля
 mvn -DsomeModule.skip.tests=true test 
  1. Выполняйте только определенные тесты для определенного модуля (этот пример включает все исходные файлы ** / * IncludeTest.java)
 mvn -DsomeModule.test.includes="**/*IncludeTest.java" test 
  1. Исключить определенные тесты для определенного модуля (в этом примере исключаются все исходные файлы ** / * ExcludeTest.java)
 mvn -DsomeModule.test.excludes="**/*ExcludeTest.java" test 

… и если вы хотите передать параметр плагину maven release в Hudson / Jenkins, вам нужно использовать -Darguments=-DskipTests чтобы заставить его работать.

Если вы хотите использовать профили Maven:

вы можете заставить его работать, делая что-то вроде этого:

  • Пропуск тестов в некоторых модулях в Maven

Я не знаю, есть ли поддерживаемая опция командной строки, которая делает то же самое.

Вы также можете попробовать напрямую использовать свойства среды, что-то в соответствии с этой страницей документа:

т.е. что-то вроде:

   org.apache.maven.plugins maven-surefire-plugin 2.12  ${moduleA.skipTests}   

затем используя mvn -DmoduleA.skipTests=false test для тестирования этого модуля.

Найден способ исключения из командной строки:

 # Exclude one test class, by using the explanation mark (!) mvn test -Dtest=!LegacyTest # Exclude one test method mvn verify -Dtest=!LegacyTest#testFoo # Exclude two test methods mvn verify -Dtest=!LegacyTest#testFoo+testBar # Exclude a package with a wildcard (*) mvn test -Dtest=!com.mycompany.app.Legacy* 

Это от: https://blog.jdriven.com/2017/10/run-one-or-exclude-one-test-with-maven/

  • Как получить тесты Maven Integration для запуска
  • Добавить зависимость в Maven
  • Есть ли способ сказать surefire пропустить тесты в определенном пакете?
  • Я хочу выполнить команды оболочки из maven's pom.xml
  • Модули Maven + Создание единого конкретного модуля
  • Tomcat 7 - Плагин Maven?
  • Включая зависимости в банке с Maven
  • Как выполнить запуск плагина maven непосредственно из командной строки?
  • Maven: лучший способ связать пользовательский внешний JAR с моим проектом?
  • Как создать график зависимости между всеми модулями проекта Maven?
  • Ресурс из src / main / ресурсов не найден после сборки с maven
  • Давайте будем гением компьютера.