2016-02-09 3 views
9

Ich möchte einen einzelnen Test (z. B. com.example.MyTest) überspringen, wenn Sie ein Projekt mit Maven von der Befehlszeile aus erstellen.Einzelprüfung mit Maven mit Befehlszeilenoptionen überspringen

Ich kenne ähnliche Fragen wie this one, aber sie alle erfordern entweder eine Änderung des Quellcodes oder pom.xml. Ich würde gerne auf Änderungen verzichten. Wie kann ich einen Test nur über Befehlszeilenoptionen ausschließen?

Was ich versucht habe, so weit nach some documentation Lesen ist

mvn clean install -Dtest="*,!com.example.MyTest" 

aber der Test ist noch nicht übersprungen. Ich benutze die todsichere Version 2.19 und JUnit 4.11.

Antwort

9

Es stellt sich heraus, dass das Testmuster (zumindest in Surefire 2.19) nicht mit voll qualifizierten Klassennamen funktioniert. Die richtige Lösung ist also

mvn clean install -Dtest="*,!MyTest" 

, d.h. ohne den Paketpfad.

In Surefire 2.19.1, es should be possible, vollständig qualifizierte Namen zu verwenden. In Versionen älter als 2.19 scheint keiner zu funktionieren.

+1

Es hat nicht für mich funktioniert :(So benutze ich es: 'test -Dlog4j.configuration = log4j-dm.xml -Dtest =" *,! Testname1Test,! Testname2Test,! Testname3Test,! Testname4Test " – vianna77

+0

Welche Version von todayfire benutzt du? – Mifeet

+0

Version: [INFO] --- maven-surefire-plugin: 2.12.4: test (standard-test) – vianna77