Maven -DskipTests игнорируется
Я создаю проект Maven со следующей конфигурацией SureFire:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.maven-surefire-plugin}</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
Проблема заключается в том, что когда я строю ее с помощью mvn clean install -DskipTests=true
, тесты все еще выполняются. В чем может быть проблема?
Я попробовал как -DskipTests
(который находится на веб-сайте Maven), так и -DskipTests=true
, который добавлен IntelliJ Idea, когда я устанавливаю флажок "пропустить тесты".
Я не использую Maven settings.xml
.
- Версия Maven: 2.2.1
- Плагин Surefire: 2.3
ИЗМЕНИТЬ
Если я закомментирую конфигурацию плагина SureFire, параметр ведет себя так, как я ожидаю. В чем проблема с конфигурацией выше?
Ответы
Ответ 1
То, что вы сделали, должно работать. Как отладить это дальше:
-
Запустите mvn help:effective-pom
, чтобы увидеть весь POM, который выполнит Maven. Найдите его для test
(без учета регистра), чтобы увидеть, есть ли что-то нечетное.
-
Запустите mvn test -X
, чтобы получить отладочный вывод. Это напечатает параметры, используемые для настройки maven-surefire-plugin
. Убедитесь, что вы перенаправили вывод в файл!
В журнале вы увидите
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-surefire-plugin:2.15:test' with basic configurator -->
а затем некоторые строки ниже:
[DEBUG] (s) runOrder = filesystem
[DEBUG] (s) skip = false
[DEBUG] (s) skipTests = false
Эти значения означают, что тесты не пропускаются.
-
Используете ли вы последнюю версию плагина? Проверьте здесь. Возможно, этот вариант не поддерживается для вашей версии.
Ответ 2
Maven знает два типа параметров для пропуска тестов:
-Dmaven.test.skip=true
или же
-DskipTests=true
В документации по плагину surefire упоминается только первый, который вы еще не пробовали.
Ответ 3
Я не уверен, почему правильный ответ еще не опубликован. В более старых версиях SureFire флаг для компиляции тестов, но не запускаемых, это -Dmaven.test.skip.exec
.
Ответ 4
Попробуйте следующую конфигурацию для вашего плагина surefire
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.surefire.plugin}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Ответ 5
это не -DskipTests=true
это просто -DskipTests
учитывая, что вы используете версию 2.3 для серфинга
так вы запускаете это как
mvn install -DskipTests