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

128

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

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

Ответы:

29

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

Ссылки:

lweller
источник
В 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

И готово.

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

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

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

mvn test-compile
orange77
источник
7
Я думаю, что test-compile включает в себя компиляцию
Whimusical 01
согласен с @Whimusical. Более того, это приведет к запуску цели компиляции 2 раза.
Габриэль Петровай
26

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

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

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

mvn -Dmaven.test.skip.exec=true

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

Stephan
источник
0

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

<maven.test.skip>true</maven.test.skip>
menapole
источник
5
Вы никогда не должны этого делать. Если вам это нужно, установите его в командной строке, но никогда не навсегда.
Шон Патрик Флойд
13
Никогда не говорил, что ты должен или не должен этого делать. Просто предоставляю информацию о варианте.
Menapole
4
Это заставляет maven также не компилировать тесты.
Майк Миллер
3
@ Шон Патрик Флойд: почему бы и нет? это НЕ постоянно, это было бы установить его в pom.xml.
Балаж Немет