2015-06-11 3 views
8

Ich versuche gradle zu verwenden Tests mit dem folgenden Befehl laufen, aber es ist nichtWie kann ich eine Testsuite mit laufen gradle von der Kommandozeile

gradle cleanTest test --tests my.package.TestSuite 

meine Test-Suite wie folgt

sieht Arbeits
@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    ATests.class, 
    BTests.class, 
    CTests.class 
}) 
public class MySuite { 
    /* placeholder, use this to contain all integration tests in one spot * */ 
} 

versuchen, die folgenden Befehl funktioniert, aber aufreizend genug zu laufen, läuft es je zweimal Test. einmal für sich und dann wieder unter der Test-Suite im gleichen Namensraum

gradle clean test --tests my.package.* 

Ich konnte nur die Testsuite fallen lassen und es auf diese Weise tun, aber ich möchte, um besser zu verstehen, was los hier und warum kann ich nicht sagen es direkt die Testsuite ausgeführt werden.

+0

Nicht sicher, ob es von der Kommandozeile machbar ist. Wahrscheinlich müssen Sie eine separate Aufgabe dafür definieren. – Opal

Antwort

1

Die folgenden Werke für mich vor Ort.

gradle -Dtest.single=MySuite clean test 

Dies tatsächlich verwendet einen anderen Ansatz (Test Inklusion) im Vergleich zu den fortgeschrittenen Filterungs --test Ansatz verwendet.

Wie in der referenzierten Verknüpfung dokumentiert, funktioniert das obige Beispiel durch Erstellen eines Dateieinschlussmusters des Formulars , während --test versucht, Tests aus dem gescannten Testsatz auszuwählen. Ich vermute, es gibt einige unforseen Wechselwirkungen zwischen der generischen Test Filterung in Gradle und die spezifischen Fälle rund um die JUnit Suite Läufer umgesetzt.

Damit warnen sogar die Gradle-Dokumente, dass der obige Ansatz ersetzt wird, und in Wirklichkeit würde ich wahrscheinlich @ Opals Kommentar wiederholen und eine explizite Aufgabe definieren, um Suites für eine bestimmte Testphase auszuführen. Zum Beispiel die folgenden Lauf mit gradle clean testSuite könnte eine Integration Suite laufen.

task testSuite(type: Test) { 
    include 'MySuite.class' 
} 

Referenzen:

Verwandte Themen