Запустите Junit Suite с помощью команды Maven
У меня есть несколько наборов тестов Junit (SlowTestSuite, FastTestSuite и т.д.). Я хотел бы запустить только определенный набор, используя команду maven. например.
mvn clean install test -Dtest=FastTestSuite -DfailIfNoTests=false
но не работает. Просто не выполняйте никаких тестов. Любые предложения, пожалуйста.
Ответы
Ответ 1
Я достиг этого, добавив свойство в pom как:
<properties>
<runSuite>**/FastTestSuite.class</runSuite>
</properties>
и maven-surefire-plugin должны быть:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
поэтому он по умолчанию запускает FastTestSuite, но вы можете запустить другой тест, например. SlowTestSuite с использованием команды maven как:
mvn install -DrunSuite=**/SlowTestSuite.class -DfailIfNoTests=false
Ответ 2
Ключевое слово, которое вы пропустили, - maven-surefire-plugin: http://maven.apache.org/plugins/maven-surefire-plugin/.
Использование:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.1</version>
<configuration>
<includes>
<include>**/com.your.packaged.Sample.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Если вы выполните небольшой поиск при переполнении стека, вы можете найти информацию:
Запуск тестового пакета JUnit4 в Maven с использованием maven-отказоустойчивого плагина
Использование категорий JUnit с плагином Maven Failsafe
Кроме того, вы можете определить профиль, например fastTest, который будет запущен путем добавления параметра в строку cmd:
mvn package -PfastTests
Этот профиль также включает некоторые включения.