Maven - как компилировать тесты без их запуска?


128

Есть ли в Maven способ скомпилировать тесты без их запуска? Я хочу использовать IDE для выполнения определенных тестов, а не всех.


8
Возможно, вам следует отредактировать вопрос или изменить принятый ответ.
Chiranjib

Ответы:


29

вы можете попробовать использовать параметр -DskipTests

Ссылки:


В netbeans это то, что я делал. Я вижу следующий mvn -Dmaven.test.skip = true -Dnetbeans.execution = true clean install, тогда я вижу следующее
user373201

[compiler: testCompile] Не компилируются исходники тестов [surefire: test] Тесты пропускаются. По крайней мере, использование netbeans выглядит так, как если бы тесты были пропущены, он не компилирует исходные
коды

1
неважно, даже несмотря на то, что в журналах это написано, кажется, что он все равно компилирует тестовые файлы.
user373201

34
это приводит к полному пропуску тестов: выполнение, а также компиляция, см. правильный ответ ниже: test-compile. Я использую его с mvn clean compile test-compile в Eclipse
Яшима

3
@Yashima, вы правы, этот ответ не такой умный ... пожалуйста, примите ответ ниже, так что вы можете удалить его
lweller

334

Как насчет test-compileфазы жизненного цикла? Пропуск теста не требуется, потому что это происходит до testфазы. То есть,

$ mvn test-compile

И готово.

Далее приводится введение в жизненный цикл сборки .


7
Это было именно то, что мне нужно, спасибо. Я не знаю о первоначальном вопросе; но я хотел скомпилировать тесты, а затем запустить их с помощью отдельного средства запуска тестов.
Mike Miller

Я бывал здесь чаще, чем хотел бы признаться ...
Дэниел Сторч,

31

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

mvn test-compile

7
Я думаю, что test-compile включает в себя компиляцию
Whimusical 01

согласен с @Whimusical. Более того, это приведет к запуску цели компиляции 2 раза.
Габриэль Петровай

26

При выполнении цели, которая будет включать этап тестирования (например, пакет), вы можете сделать две вещи:

  • Используйте команду mvn -DskipTests=true package. Это скомпилирует все тесты, но не запустит их.
  • Или mvn -Dmaven.test.skip=true package. Это не будет компилировать или запускать тестовую ветвь.

3

В качестве альтернативы вы можете использовать maven.test.skip.execoption.

mvn -Dmaven.test.skip.exec=true

Maven скомпилирует тесты, не запуская их. Я регулярно использую эту опцию во всех своих проектах.



0

Если у вас файл settings.xml, вы также можете использовать

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

5
Вы никогда не должны этого делать. Если вам это нужно, установите его в командной строке, но никогда не навсегда.
Шон Патрик Флойд

13
Никогда не говорил, что ты должен или не должен этого делать. Просто предоставляю информацию о варианте.
Menapole

4
Это заставляет maven также не компилировать тесты.
Майк Миллер

3
@ Шон Патрик Флойд: почему бы и нет? это НЕ постоянно, это было бы установить его в pom.xml.
Балаж Немет
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.