Maven упаковка без теста (пропустить тесты) - PullRequest
286 голосов
/ 17 сентября 2011

Я новичок в Maven. Я пытаюсь упаковать свой проект. Но он автоматически запускает тесты. Тесты вставляют некоторый контент в базу данных. Это не то, что я хочу, мне нужно избегать запуска тестов во время упаковки приложения. Кто-нибудь знает, как запустить пакет без теста?

Ответы [ 19 ]

492 голосов
/ 17 сентября 2011

Запуск Maven с

mvn -Dmaven.test.skip=true package
153 голосов
/ 27 декабря 2012

Просто укажите указанную ниже команду, которая будет игнорировать выполнение тестовых случаев

mvn package -DskipTests
45 голосов
/ 21 сентября 2011

вы можете добавить эту конфигурацию плагина к вашему pom, если вы не хотите устанавливать командную строку arg:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
35 голосов
/ 13 марта 2012

Обратите внимание, что -Dmaven.test.skip не позволяет Maven создавать артефакт тестового фляги.

Если вы хотите пропустить тесты, но создать артефакты в соответствии с обычным использованием сборки:

-Dmaven.test.skip.exec
27 голосов
/ 09 декабря 2013

Если вы попробуете это в Windows Powershell, вы получите эту ошибку:

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...

Причина этого в том, что в Powershell «-» имеет особое значение и вызывает проблемы с maven.

Решение состоит в том, чтобы добавить к нему обратную черту (`), вот так ..

mvn `-Dmaven.test.skip=true install 

Ссылка: http://kuniganotas.wordpress.com/2011/08/12/invalid-task-test-skiptrue-you-must-specify-a-valid-lifecycle-phase/

24 голосов
/ 23 октября 2014
<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>

также способ добавить в файл pom

18 голосов
/ 17 сентября 2011

Вы можете передать флаг maven.test.skip в качестве аргумента JVM, чтобы пропустить выполнение тестов при запуске фазы пакета (и предыдущих в жизненном цикле по умолчанию):

mvn package -Dmaven.test.skip=true

Вы также можете передать только флаг skipTests исполняемому файлу mvn. Если вы хотите включить эту информацию в свой POM, вы можете создать новый профиль, в котором вы можете настроить maven-surefire-plugin - пропуск тестов .

16 голосов
/ 17 сентября 2011

Вы должны предоставить только

-Dmaven.test.skip

Вам больше не нужно добавлять =true.

10 голосов
/ 01 февраля 2013

Отвечая на старый и принятый вопрос здесь.Вы можете добавить это в ваш файл pom.xml, если вы хотите избежать постоянной передачи аргумента командной строки:

4 голосов
/ 17 сентября 2011

Тесты всегда должны [1] выполняться перед пакетом.Если вам нужно отключить тесты, вы делаете что-то не так.Другими словами, вы пытаетесь решить не ту проблему.Выясните, в чем ваша проблема на самом деле, и задайте этот вопрос.Похоже, это связано с базой данных.

[1] Вы можете пропустить тесты, когда вам нужно быстро сгенерировать артефакт для локального использования, но в целом создание артефакта всегда должно следовать за успешным выполнением теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...