Maven - Jak skompilować testy bez ich uruchamiania?


128

Czy w Maven można skompilować testy bez ich uruchamiania? Chcę używać IDE do uruchamiania określonych testów, a nie wszystkich.


8
Prawdopodobnie powinieneś albo edytować pytanie, albo zmienić zaakceptowaną odpowiedź.
Chiranjib

Odpowiedzi:


29

możesz spróbować użyć parametru -DskipTests

Bibliografia:


W netbeanach właśnie to robiłem. Widzę następujący mvn -Dmaven.test.skip = true -Dnetbeans.execution = prawdziwa czysta instalacja, a następnie widzę następujące
user373201

[kompilator: testCompile] Brak kompilacji źródeł testowych [surefire: test] Testy są pomijane. Przynajmniej użycie netbeans wygląda tak, że jeśli testy są pomijane, nie kompiluje źródeł testowych
user373201

1
nieważne, chociaż dzienniki tak mówią, nadal wydaje się, że kompiluje pliki testowe.
user373201

34
prowadzi to do całkowitego pominięcia testów: wykonywania i kompilacji, patrz poprawna odpowiedź poniżej: test-compile. Używam go z mvn clean compile test-compile w Eclipse
Yashima

3
@Yashima, masz rację, ta odpowiedź nie jest taka mądra ... zaakceptuj odpowiedź poniżej, więc możesz ją usunąć
lweller

334

A co z test-compilefazą cyklu życia? Nie wymaga żadnego pomijania testu, ponieważ występuje przed testfazą. To znaczy,

$ mvn test-compile

I zrobione.

Wprowadzenie do cyklu życia kompilacji wyjaśnia dalej.


7
Właśnie tego potrzebowałem, dzięki. Nie wiem o oryginalnym pytającym; ale chciałem skompilować testy, a następnie uruchomić je z oddzielnym testerem.
Mike Miller

30

Aby po prostu skompilować testy i kod bez ich uruchamiania, po prostu wykonaj:

mvn test-compile

7
Myślę, że test-kompilacja obejmuje kompilację
Whimusical

zgadzam się z @Whimusical. Ponadto spowoduje to dwukrotne uruchomienie celu kompilacji.
Gabriel Petrovay

26

Realizując cel, który będzie obejmował fazę testowania (np. Pakiet), możesz zrobić dwie rzeczy:

  • Użyj polecenia mvn -DskipTests=true package. Spowoduje to skompilowanie wszystkich testów, ale ich nie uruchomi.
  • Lub mvn -Dmaven.test.skip=true package. To nie skompiluje ani nie uruchomi gałęzi testowej.

3

Alternatywnie możesz skorzystać z maven.test.skip.execopcji.

mvn -Dmaven.test.skip.exec=true

Maven skompiluje testy bez ich uruchamiania. Używam tej opcji regularnie we wszystkich moich projektach.



0

Jeśli masz plik settings.xml, możesz również użyć

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

5
Nigdy nie powinieneś tego robić. Jeśli potrzebujesz, ustaw go w wierszu poleceń, ale nigdy na stałe.
Sean Patrick Floyd

13
Nigdy nie powiedziałem, że powinieneś lub nie powinieneś tego robić. Po prostu dostarczam wiedzy o opcji.
menapole

4
To powoduje, że maven również nie kompiluje testów.
Mike Miller

3
@Sean Patrick Floyd: dlaczego nie? NIE jest to trwałe, oznaczałoby to ustawienie go w pom.xml.
Balázs Németh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.