2017-06-12 1 views
3

Ich habe ein Java-Projekt, in dem ich gradle test ausführen werde. Ich möchte die Ausführung dieser Aufgabe zu Fehler, wenn jeder Test ignoriert wird mit der @Ignore annotation.Fail Gradle Build, wenn der JUnit-Test ignoriert wird

Ich kann zur Zeit siehe wenn Tests ignoriert werden unter Verwendung der folgenden test Task-Konfiguration in meiner build.gradle Datei:

test { 
    testLogging { 
    events = ["passed", "failed", "skipped"] 
    } 
} 

Mit dieser Konfiguration wird ein ignorierten Tester in einer Log-Anweisung wie:

TestClass > testName SKIPPED 

anstatt:

TestClass > testName PASSED 

oder

TestClass > testName FAILED 

Wie kann ich mein Ziel tatsächlich verursacht Ausführung dieser Aufgabe erreichen zu scheitern?

+0

warum würden Sie jemals dies tun wollen? – mre

+2

Übliches Beispiel: Implementieren einer teamweiten Richtlinie zum Aktualisieren oder Löschen statt Ignorieren von Tests (so etwas wie das Löschen oder Aktualisieren von Code, anstatt dass der Code tot ist und der auskommentierte Code herumliegt). In meinem speziellen Fall trage ich jedoch zu einem Open-Source-Projekt bei, das "@ Ignore" -Anmerkungen manuell aus einer Testklasse entfernt. Ich möchte überprüfen, ob das Abisolieren korrekt funktioniert hat, indem der Testlauf fehlgeschlagen ist, wenn Tests nach dem Abziehen ignoriert wurden. – stkent

+1

würde es nicht für üblich halten, aber danke für den Kontext. – mre

Antwort

1

Lassen Sie sich diese noch nicht getestet, aber das könnte funktionieren:

test { 
    afterTest { descriptor, result -> 
     if (result.resultType == TestResult.ResultType.SKIPPED) { 
      throw new GradleException("Do not ignore test cases") 
     } 
    } 
} 

Referenzen:

+0

Perfekt, danke! – stkent

Verwandte Themen