Ответ 1
Для включения и выключения модульных тестов для всего проекта используйте Возможность Maven Surefire Plugin пропускать тесты. Существует недостаток использования skipTests из командной строки. В сценарии построения нескольких модулей это отключит все тесты во всех модулях.
Если вам требуется более мелкое зерновое управление запуском подмножества тестов для модуля, изучите использование включения и исключения для тестирования Maven Surefire Plugin.
Чтобы разрешить переопределения командной строки, используйте свойства POM при настройке плагина Surefire. Возьмем, например, следующий сегмент POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<excludes>
<exclude>${someModule.test.excludes}</exclude>
</excludes>
<includes>
<include>${someModule.test.includes}</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<someModule.skip.tests>false</someModule.skip.tests>
<skipTests>${someModule.skip.tests}</skipTests>
<someModule.test.includes>**/*Test.java</someModule.test.includes>
<someModule.test.excludes>**/*Test.java.bogus</someModule.test.excludes>
</properties>
С помощью POM, как указано выше, вы можете выполнять тесты различными способами.
- Запустите все тесты (указанная выше конфигурация включает все исходные файлы **/* Test.java).
mvn test
- Пропустить все тесты во всех модулях
mvn -DskipTests=true test
- Пропустить все тесты для определенного модуля
mvn -DsomeModule.skip.tests=true test
- Выполнять только определенные тесты для определенного модуля (этот пример включает все исходные файлы **/* IncludeTest.java).
mvn -DsomeModule.test.includes="**/*IncludeTest.java" test
- Исключить определенные тесты для определенного модуля (этот пример исключает все исходные файлы **/* ExcludeTest.java)
mvn -DsomeModule.test.excludes="**/*ExcludeTest.java" test