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

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

Ответ 1

Запустите maven с помощью -Dmaven.test.skip=true

Ответ 2

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

mvn package -DskipTests

Ответ 3

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

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

Ответ 4

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

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

-Dmaven.test.skip.exec

Ответ 5

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

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

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

Решение состоит в том, чтобы добавить его с помощью backtick (`), например.

mvn `-Dmaven.test.skip=true install 

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

Ответ 6

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

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

Ответ 7

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

mvn package -Dmaven.test.skip=true

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

Ответ 8

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

-Dmaven.test.skip

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

Ответ 9

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

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

Ответ 10

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

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

Ответ 11

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

Ответ 12

просто mvn clean install -DskipTests

Ответ 13

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

mvn package -DskipTests

ИЛИ ЖЕ

mvn package -Dmaven.test.skip=true

Ответ 14

mvn clean install -Dmaven.test.skip=true

работал у меня, так как -Dskip больше не работал.

Ответ 15

mvn package -Dmaven.test.skip=true

Ответ 16

В Inllij IDEA также есть возможность пропустить цель теста.

enter image description here

Ответ 17

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

Ответ 18

В Intellij перейдите в View → Tool Windows → выберите Maven Projects. В раскрывающемся списке Lifecyle щелкните правой кнопкой мыши пакет → выберите Создать "ваш проект [пакет]"...

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

Ответ 19

Для упаковки maven без заражения тестом maven:

<properties>
    <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>