Maven - Wie kompiliere ich Tests, ohne sie auszuführen?


128

Gibt es in Maven eine Möglichkeit, die Tests zu kompilieren, ohne sie auszuführen? Ich möchte die IDE verwenden, um bestimmte Tests auszuführen, und nicht alle.


8
Sie sollten wahrscheinlich entweder die Frage bearbeiten oder die akzeptierte Antwort ändern.
Chiranjib

Antworten:


29

Sie können versuchen, Parameter zu verwenden -DskipTests

Verweise:


In Netbeans habe ich das gemacht. Ich sehe die folgenden mvn -Dmaven.test.skip = true -Dnetbeans.execution = true sauber installieren, dann sehe ich die folgenden
user373201

[compiler: testCompile] Testquellen werden nicht kompiliert. [todsicher: test] Tests werden übersprungen. Zumindest mit Netbeans sieht es so aus, als würden beim Überspringen von Tests keine
Testquellen

1
Egal, obwohl die Protokolle dies sagen, scheint es immer noch Testdateien zu kompilieren.
user373201

34
Dies führt dazu, dass Tests vollständig übersprungen werden: Ausführung sowie Kompilierung, siehe die richtige Antwort unten: Testkompilierung. Ich benutze es mit mvn clean compile test-compile in Eclipse
Yashima

3
@ Yashima Sie haben Recht, diese Antwort ist nicht so klug ... bitte akzeptieren Sie die Antwort unten, so kann ein diese löschen
lweller

334

Wie wäre es mit der test-compileLebenszyklusphase? Das Überspringen von Tests ist nicht erforderlich, da es vor der testPhase erfolgt. Dh

$ mvn test-compile

Und fertig.

Die Einführung in den Build-Lebenszyklus wird weiter erläutert.


7
Das war genau das, was ich brauchte, danke. Ich weiß nichts über den ursprünglichen Fragesteller. Ich wollte jedoch die Tests kompilieren und sie dann mit einem separaten Testläufer ausführen.
Mike Miller

30

Um nur die Tests und den Code zu kompilieren, ohne sie auszuführen, gehen Sie einfach wie folgt vor:

mvn test-compile

7
Ich denke, Test-Compile beinhaltet Compile
Whimusical

stimme @Whimusical zu. Außerdem wird das Kompilierungsziel zweimal ausgeführt.
Gabriel Petrovay

26

Wenn Sie ein Ziel ausführen, das die Testphase umfasst (z. B. ein Paket), können Sie zwei Dinge tun:

  • Verwenden Sie den Befehl mvn -DskipTests=true package. Dadurch werden alle Tests kompiliert, aber nicht ausgeführt.
  • Oder mvn -Dmaven.test.skip=true package. Dadurch wird der Testzweig nicht kompiliert oder ausgeführt.

3

Alternativ können Sie die maven.test.skip.execOption verwenden.

mvn -Dmaven.test.skip.exec=true

Maven kompiliert die Tests, ohne sie auszuführen. Ich benutze diese Option regelmäßig in allen meinen Projekten.



0

Wenn Sie die Datei settings.xml verwenden, können Sie diese auch verwenden

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

5
Das solltest du niemals tun. Wenn Sie es brauchen, stellen Sie es in der Befehlszeile ein, aber niemals dauerhaft.
Sean Patrick Floyd

13
Ich habe nie gesagt, dass du es tun sollst oder nicht. Nur Wissen über die Option.
Menapole

4
Dies führt dazu, dass maven die Tests auch nicht kompiliert.
Mike Miller

3
@ Sean Patrick Floyd: Warum nicht? Dies ist NICHT permanent, das heißt, es in der pom.xml zu setzen.
Balázs Németh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.