Ответ 1
Попробуйте:
mvn clean install -DskipTests
Источник здесь.
Когда я запускаю maven clean install
, он всегда выполняет все тесты в src/test/java
, есть ли способ пропустить все тесты, просто чтобы запустить простую сборку без каких-либо тестов.
Я хочу, чтобы мои тесты были в src/test/java
, но я хочу сказать maven, чтобы они не выполняли их. Я искал что-то подобное в Интернете, но мне не удалось найти ответ.
Есть ли способ сделать это?
Попробуйте:
mvn clean install -DskipTests
Источник здесь.
Вы также можете использовать
mvn install -Dmaven.test.skip
Из веб-сайт Maven:
Если вам абсолютно необходимо, вы также можете использовать свойство maven.test.skip, чтобы пропустить компиляцию тестов. maven.test.skip удостоен Surefire, Failsafe и плагина компилятора.
Как сказано, вы даже не скомпилируете тестовые источники.
Из http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
используйте этот
mvn clean install -DskipTests
Мой любимый способ управления при выполнении моих тестов - создать переменную Maven с именем skip-tests
и по умолчанию - true
. Затем вы можете использовать эту переменную следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<skipTests>${skip-tests}</skipTests>
</configuration>
</plugin>
Таким образом, вы можете просто передать переменную во время сборки -Dskip-tests=false
, если вы не хотите, чтобы они запускались. Это наиболее полезно, если у вас есть интеграционные и модульные тесты, и вы хотите запустить или отключить оба набора тестов только с одной переменной.
Мы используем Surefire для модульных тестов и Failsafe для тестов интеграции.
Чтобы пропустить все тесты:
mvn clean package -DskipTests
Чтобы пропустить только тесты Failsafe:
mvn clean package -DskipIT
Чтобы пропустить только Surefire, вам нужно явно вызвать цель интеграции-тестирования плагина Failsafe, конечно же, после компиляции тестовых классов:
mvn clean test-compile failsafe:integration-test
Я думаю, что самым простым было бы следующее: mvn clean package -Dmaven.skip.tests=true
Я думаю, что это подход к использованию, так как он не заставляет вас менять свой pom, поэтому не нужно вносить изменения в проект.