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
.
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?
Was du getan hast, sollte funktionieren. So debuggen Sie weiter:
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.
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.
Verwenden Sie eine aktuelle Version des Plugins? Überprüfe hier . Möglicherweise wurde diese Option für Ihre Version nicht unterstützt.
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.
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
.
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>
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