Maven pominięcie testów
Najczęściej używane polecenie:
mvn clean install -DskipTests=true
# or
# maven.test.skip jest chonorowany przez Surefire, Failsafe i Compiler Plugin:
mvn clean install -Dmaven.test.skip=true
1. Przegląd
W tym poście zobaczymy, jak pominąć testy jednostkowe, gdy budujemy nasz projekt za pomocą maven.
Najłatwiejszym sposobem pominięcia testów jednostkowych za pomocą maven jest użycie jednego z poleceń:
mvn clean install -DskipTests=true
# lub
mvn install -DskipTests=true
mvn clean install -Dmaven.test.skip=true
# lub
mvn install -Dmaven.test.skip=true
lub
mvn clean package -DskipTests=true
# lub
mvn package -DskipTests=true
mvn clean package -Dmaven.test.skip=true
# lub
mvn package -Dmaven.test.skip=true
Przykład polecenia maven clean:
# przed uruchomieniem instalacji lub pakietu uruchom clean, aby wyczyścić katalog docelowy
$ mvn clean
Czasami możemy chcieć skompilować nasz projekt bez ponownego uruchamiania wszystkich testów jednostkowych.
Albo niektóre testy jednostkowe kończą się niepowodzeniem, a mimo to chcemy zbudować jar.
Jest kilka sposobów, aby to osiągnąć.
Maven -D parametr oznacza - zdefiniuj właściwość systemu za pomocą polecenia mvn -help.
2. Pomiń testy jednostkowe za pomocą -Dmaven.test.skip=true
Możemy uruchamiać komendy maven ze zdefiniowaną właściwością systemową:
-Dmaven.test.skip=true
Poniżej mamy przykłady z instalacją mvn i pakietem mvn.
2.1 mvn install
$ mvn install -Dmaven.test.skip=true
# nasza kompilacja zostanie wykonana bez testów jednostkowych
2.2 mvn package
$ mvn package -Dmaven.test.skip=true
# nasza kompilacja zostanie wykonana bez testów jednostkowych
UWAGA: maven.test.skip jest honorowany przez:
- Maven Surefire Plugin
- Maven Failsafe Plugin
- Maven Compiler Plugin
3. Wyłącz testy jednostkowe na stałe w pom.xml
Dodaj tę właściwość do pom.xml
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
Kiedy mamy tę właściwość zdefiniowaną w naszym pom.xml, możemy uruchomić
$ mvn install
# nasza kompilacja zostanie wykonana bez testów jednostkowych
lub
$ mvn package
# nasza kompilacja zostanie wykonana bez testów jednostkowych
Maven zaakceptuje właściwość z pom.xml i pominie uruchamianie testów jednostkowych.
4. Jeśli używamy wtyczki Maven Surefire
Dodaj tę właściwość xml do konfiguracji wtyczki Maven Surefire w pom.xml:
<configuration>
<skipTests>true</skipTests>
</configuration>
Pełny przykład pom.xml, w którym musimy dodać tę konfigurację, aby pominąć testy jednostkowe:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<!-- HERE it goes -->
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
5. Maven -D parametr - wyjaśnienie
Co oznacza parametr maven -D?
To znaczy - zdefiniuj właściwość systemu.
-D, --define <arg>
Aby zdefiniować właściwość, musimy użyć -D.
Synonimem parametru „-D” jest „--define”
Przykłady:
$ mvn install -DskipTests=true
$ mvn install -DfailIfNoTests=false
Kiedy wykonamy mvn -help, otrzymamy opis wszystkich flag.
$ mvn -help
..
..
-D, --define <arg> Define a system property
..
..
6. mvn różnice między czystą instalacją a czystym pakietem
mvn clean
- usunie nasz katalog docelowy
mvn install
- zbuduje nasz jar + umieści go w katalogu docelowym i skopiuje do repozytorium maven .m2 na naszym komputerze, przykład ścieżki lokalnego repozytorium maven:
C:\Users\seth\.m2\repository\com\dirask\0.0.1-SNAPSHOT\dirarsk-examples-0.0.1-SNAPSHOT.jar
mvn package
- zbuduje nasz jar + umieści go w docelowym katalogu, nic dodać nic ująć
Z dokumentacji Mavena:
install
- zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalniepackage
- weź skompilowany kod i zapakuj go w formacie przeznaczonym do dystrybucji, takim jak JAR.
7. Maven clean - po co go uruchamiać?
Dobrą praktyką jest uruchomienie komendy maven clean przed uruchomieniem komendy mvn install lub mvn package. Maven clean usunie nasz katalog docelowy iw ten sposób zapewnimy, że nasz kod i zasoby są świeżo skompilowane do katalogu docelowego.
Połączone pytania
- Maven - jak pominąć testy jednostkowe?
- Jak pominąć testy z Maven?
- mvn pomiń testy jednostkowe
- mvn clean install pomiń test
- Test pomijania pakietu mvn