Maven упаковка без теста (пропустить тесты)



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

625   17  

17 ответов:

запустить maven с -Dmaven.test.skip=true

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

mvn package -DskipTests

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

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>

обратите внимание, что -Dmaven.тест.skip предотвращает создание Maven артефакта test-jar.

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

-Dmaven.test.skip.exec

Если вы пытаетесь это сделать в 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/

<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>

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

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

mvn package -Dmaven.test.skip=true

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

вам нужно только предоставить

-Dmaven.test.skip

больше не нужно '=true ' там.

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

  <properties>
    <skipTests>true</skipTests>
  </properties>

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

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

вы, очевидно, делаете это неправильно. Тестирование является важной частью предварительной упаковки. Вы не должны игнорировать или пропустить его, а сделать это правильно. Попробуйте изменить базу данных, в которую он вставляет данных(test_db). Это может занять некоторое время, чтобы установить его. И чтобы убедиться, что эта база данных может быть использована навсегда, вы должны удалить все данные к концу тестов. JUnit4 есть аннотации, которые делают его легким для вас. Используйте аннотации @Before, @After @Test для правильных методов. Вам нужно потратьте на это время, но оно того стоит!

mvn clean install -Dmaven.test.skip=true

работал на меня с тех пор -Dskip не работает.

mvn package -Dmaven.test.skip=true

лучший и самый простой способ сделать это, в IntelliJ Idea в окне "Maven Project", и просто не нажимайте на кнопку test. Надеюсь, я вам помог. Хорошего дня :)

в Intellij перейдите в меню Вид - > окна инструментов - > выберите проекты Maven. На жизненный цикл в выпадающем списке, щелкните правой кнопкой мыши на пакет -> выбрать Создать свой проект [пакет]'...

введите это значение: package -Dmaven.test.skip=true -f pom.xml в поле командной строки. Нажмите кнопку Применить, и вместе с созданной пользовательской командой maven появится выпадающее меню Выполнить конфигурации.

просто mvn clean install -DskipTests

можно добавить -DskipTests или -Dmaven.test.skip=true любой mvn команда для пропуска тестов. В вашем случае это было бы как ниже:

mvn package -DskipTests

или

mvn package -Dmaven.test.skip=true

Comments

    Ничего не найдено.