web-dev-qa-db-ger.com

Maven -DiskipTests ignoriert

Ich baue ein Maven-Projekt mit folgender SureFire -Konfiguration:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${version.maven-surefire-plugin}</version>
    <configuration>
        <includes>
            <include>**/*Test.Java</include>
        </includes>
    </configuration>
</plugin>

Das Problem ist, dass die Tests immer noch ausgeführt werden, wenn ich sie mit mvn clean install -DskipTests=true baue. Was könnte das Problem sein? 

Ich habe sowohl -DskipTests (die von der Maven-Website stammt) als auch -DskipTests=true ausprobiert, die von IntelliJ Idea hinzugefügt werden, wenn ich das Kontrollkästchen "Tests überspringen" anhole.

Ich benutze keinen Maven settings.xml.

  • Maven-Version: 2.2.1
  • Surefire Plugin: 2.3

EDIT Wenn ich die Konfiguration des SureFire-Plugins auskommentiere, verhält sich der Parameter wie erwartet. Was könnte das Problem mit der obigen Konfiguration sein?

23
NeplatnyUdaj

Was du getan hast, sollte funktionieren. So debuggen Sie weiter:

  1. Führen Sie mvn help:effective-pom aus, um das gesamte POM anzuzeigen, das Maven ausführen wird. Suchen Sie nach test (ohne Berücksichtigung von Groß- und Kleinschreibung), um zu sehen, ob etwas Ungewöhnliches vorliegt.

  2. Führen Sie mvn test -X aus, um die Debug-Ausgabe abzurufen. Dadurch werden die zur Konfiguration des maven-surefire-plugin verwendeten Optionen gedruckt. Stellen Sie sicher, dass Sie die Ausgabe in eine Datei umleiten!

    Im Protokoll sehen Sie

    [DEBUG] Configuring mojo 'org.Apache.maven.plugins:maven-surefire-plugin:2.15:test' with basic configurator -->
    

    und dann ein paar Zeilen darunter:

    [DEBUG]   (s) runOrder = filesystem
    [DEBUG]   (s) skip = false
    [DEBUG]   (s) skipTests = false
    

    Diese Werte bedeuten, dass Tests nicht übersprungen werden.

  3. Verwenden Sie eine aktuelle Version des Plugins? Überprüfe hier . Möglicherweise wurde diese Option für Ihre Version nicht unterstützt.

9
Aaron Digulla

Maven kennt zwei Arten von Parametern für das Auslassen von Tests:

-Dmaven.test.skip=true 

oder 

-DskipTests=true 

Die surefire-plugin-Dokumentation erwähnt nur die erste, die Sie noch nicht ausprobiert haben.

26
Jack

Ich bin nicht sicher, warum die richtige Antwort noch nicht veröffentlicht wurde. In älteren SureFire-Versionen lautet das Flag zum Kompilieren von Tests -Dmaven.test.skip.exec.

1
Chris

Versuchen Sie die folgende Konfiguration für Ihr todsicheres Plugin

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${version.surefire.plugin}</version>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>
0
Andrei Nicusan

es ist nicht -DskipTests = true. Es handelt sich lediglich um -DskipTests, wenn man bedenkt, dass Sie Surfire Version 2.3 verwenden

so laufen Sie es als

mvn install -DskipTests

0
Raji