2012-08-24 12 views
16

Wenn ich maven clean install ausführen, führt es immer alle Tests in src/test/java gibt es eine Möglichkeit, alle Tests zu überspringen, nur um einfache Build ohne Tests zu starten.Tests aus Maven Build ausschließen

Ich möchte meine Tests in src/test/java sein, aber ich möchte Maven sagen, sie nicht auszuführen. Ich habe im Internet nach so etwas gesucht, aber es ist mir nicht gelungen, die Antwort zu finden.

Gibt es eine Möglichkeit, dies zu tun?

Antwort

27

Versuchen mit:

mvn clean install -DskipTests 

Quelle here.

+0

Das hat perfekt funktioniert. Danke :) –

+0

Gern geschehen :) – jelies

3

Verwendung dieses

mvn saubere Installation -DskipTests

8

Sie können auch nutzen wählen

mvn install -Dmaven.test.skip 

Von Maven Website:

Wenn Sie unbedingt, Sie können auch die maven.test.skip Eigenschaft Erstellung der Tests zu überspringen. maven.test.skip wird von Surefire, Failsafe und dem Compiler-Plugin unterstützt.

Wie gesagt, Sie werden nicht einmal die Testquellen kompilieren.

+1

Wahr ist, dass -DskipTests funktionierte nicht für mich und Ihre Arbeit! – Xdg

2

Meine bevorzugte Methode zum Verwalten meiner Tests besteht darin, eine Maven-Variable namens skip-tests zu erstellen und sie standardmäßig auf true zu setzen. Dann können Sie diese Variable wie so verwenden:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12.2</version> 
    <configuration> 
     <skipTests>${skip-tests}</skipTests> 
    </configuration> 
    </plugin> 

Auf diese Weise können Sie einfach passieren in den Variablen bei der Erstellung, -Dskip-tests=false, wenn Sie sie nicht ausgeführt werden sollen. Dies ist besonders nützlich, wenn Sie über die Integrationstests und verfügen und beide Tests mit nur einer Variablen ausführen oder inaktivieren möchten.

-1

denke ich einfachste sein würde: mvn clean package -Dmaven.skip.tests=true

Ich denke, das der Ansatz zu verwenden, da es nicht, dass Sie Ihre Pom macht ändern, also nicht auf das Projekt Änderungen vornehmen muss.

+0

Es ist -Dmaven.test.skip = true –

+0

Das überspringt Tests zu kompilieren, siehe http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html –

0

Wir verwenden Surefire für Komponententests und Failsafe für Integrationstests.

Um alle Tests zu überspringen:

mvn clean package -DskipTests 

nur Failsafe Tests überspringen:

mvn clean package -DskipIT 

nur todsichere zu überspringen, müssen Sie den Integrationstest Ziel der Failsafe-Plugin explizit nennen, nach Kompilieren der Testklassen natürlich:

mvn clean test-compile failsafe:integration-test