Languages
[Edit]
DE

Maven - Tests überspringen

4 points
Created by:
Nikki
10520

Am häufigsten verwendeter Befehl:

$ mvn package -Dmaven.test.skip=true

1. Übersicht

In diesem Artikel wird gezeigt, wie man Unit-Tests übersprigen kann, wenn ein Projekt mit Maven erstellt wird.

Der einfachste Weg, Unit-Tests mit Maven zu überspringen, ist es den folgenden Befehl zu verwenden. 

$ mvn clean install -Dmaven.test.skip=true
# or
$ mvn install -Dmaven.test.skip=true

oder

$ mvn clean package -Dmaven.test.skip=true
# or
$ mvn package -Dmaven.test.skip=true

Beispiel für den Befehl von maven clean:

# Vor der Installation oder Ausführung, soll man clean ausführen, um das Zielverzeichnis zu löschen 
$ mvn clean

Manchmal wollen wir unser Projekt erstellen, ohne alle Komponententests erneut auszuführen.

Oder einige der Komnponententests schlagen fehl, und wir wollen jar sowieso bauen.

Es gibt mehrere Wege, um das zu erreichen.

Maven -D Parameter bedeutet - eine Systemeigenschaft mit dem Befehl mvn -help definieren.

Maven - skip unit tests screenshot with Console output of maven command: mvn package -Dmaven.test.skip=true - link to post: https://dirask.com/q/k1wL3D
Konsolenausgabe von Maven Befehl: mvn package -Dmaven.test.skip=true

2. Unit-Tests mit -Dmaven.test.skip=true überspringen

Man kann Maven-Befehle mit definierten Systemeigenschaften ausführen:

-Dmaven.test.skip=true

Unten befinden sich die Beispiele mit mvn install und mvn package.

2.1 mvn install

$ mvn install -Dmaven.test.skip=true
# Unser Build wird ohne Unit-Tests ausgeführt

2.2 mvn package

$ mvn package -Dmaven.test.skip=true
# Unser Build wird ohne Unit-Tests ausgeführt

HINWEIS: maven.test.skip wird von folgenden Plug-Ins anerkannt:

  • Maven Surefire Plugin
  • Maven Failsafe Plugin
  • Maven Compiler Plugin

3. Unit-Tests dauerhaft in pom.xml deaktivieren

Das soll zu pom.xml hinzugefügt werden. 

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

Wenn diese Eigenschaft in pom.xml definiert wurde, kann man es ausführen

$ mvn install
# Unser Build wird ohne Unit-Tests ausgeführt

oder

$ mvn package
# Unser Build wird ohne Unit-Tests ausgeführt

Maven akzeptiert Eigenschaften aus pom.xml und überspringt laufende Unit-Tests.

4. Bei der Verwendung von Maven Surefire Plugin

Diese xml Eigenschaft zu Maven Surefire Plugin Konfiguration in pom.xml hinzufügen:

<configuration>
  <skipTests>true</skipTests>
</configuration>

Vollständiges pom.xml Beispiel, wo diese Konfiguration hinzugefügt werden muss, um Unit-Tests zu überspringen.

<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 Parameter Bedeutung - Erklärung

Was bedutet eigentlich Maven -D Parameter?
Es bedeutet - Systemeigenschaft definieren.

-D, --define <arg>

Um die Eigenschaft zu definieren, muss man -D verwenden.
Das Synonym für den '-D' Parameter ist '--define' ("definieren")

Beispiele:

$ mvn install -DskipTests=true
$ mvn install -DfailIfNoTests=false

Bei der mvn -help Ausführung, erhält man eine Beschreibung aller Flags.

$ mvn -help
..
..
-D, --define <arg>  Define a system property
..
..

6. mvn Unterschied zwischen clean install vs clean package

mvn clean - entfernt unser Zielverzeichnis

mvn install - ertellt jar + legt es in das Zielverzeichnis und kopiert es in das maven .m2 repository auf dem PC, Beispiel für den lokalen Maven-Repository-Pfad:

C:\Users\seth\.m2\repository\com\dirask\0.0.1-SNAPSHOT\dirarsk-examples-0.0.1-SNAPSHOT.jar

mvn package - erstellt jar + setzt es in das Zielverzeichnis, nichts mehr und nichts weniger

Aus der Maven-Dokumentation:

  • install -  das Paket in lokalen Repository installieren, um es als Abhängigkeit in anderen Projekten lokal zu verwenden
  • package - den kompilierten Code nehmen und in einem verteilbaren Format, z.B JAR verpacken.

7. Maven clean - warum führt man das aus?

Es ist empfehlenswert, der Befehl maven clean auszuführen, bevor den Befehl mvn install oder mvn package ausgeführt wird. Maven clean entfernt unser Zielverzeichnis und stellt aus diese Art und Weise sicher, dass unser Code und unsere Ressourcen frisch in das Zielverzeichnis kompiliert werden.

Zusammengeführte Fragen

  1. Maven - wie überspringt man unit tests
  2. Wie kann ich tests mit Maven überspringen?
  3. mvn unit tests überspringen
  4. mvn clean install test überspringen
  5. mvn package test überspringen

Literaturverzeichnis

  1. Maven Surefire Plugin - skipping tests
  2. Maven Failsafe Plugin - skipping tests
  3. Maven Compiler Plugin
  4. Introduction to the Standard Directory Layout
  5. Introduction to the Build Lifecycle
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join