Überspringen von Tests mit Gradle

1. Einleitung

Obwohl das Überspringen von Tests normalerweise eine schlechte Idee ist, gibt es einige Situationen, in denen dies nützlich sein kann und uns Zeit spart. Nehmen wir zum Beispiel an, wir entwickeln eine neue Funktion und möchten ein Ergebnis innerhalb der Zwischen-Builds sehen. In diesem Fall überspringen wir die Tests möglicherweise vorübergehend, um den Aufwand für das Kompilieren und Ausführen zu verringern. Das Ignorieren der Tests kann zweifellos viele schwerwiegende Probleme verursachen.

In diesem kurzen Tutorial erfahren Sie, wie Sie Tests mit dem Gradle-Build-Tool überspringen.

2. Verwenden von Befehlszeilen-Flags

Lassen Sie uns zunächst einen einfachen Test erstellen, den wir überspringen möchten:

@Test void skippableTest() { Assertions.assertTrue(true); }

Wenn wir den Build- Befehl ausführen :

gradle build

Wir werden laufende Aufgaben sehen:

> ... > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses > Task :test > ...

Um eine Aufgabe aus dem Gradle-Build zu überspringen, können Sie die Option -x oder –exclude-task verwenden . In diesem Fall verwenden wir " -x test ", um Tests aus dem Build zu überspringen.

Um es in Aktion zu sehen, führen wir den Befehl build mit der Option -x aus :

gradle build -x test

Wir werden laufende Aufgaben sehen:

> Task :compileJava NO-SOURCE > Task :processResources NO-SOURCE > Task :classes UP-TO-DATE > Task :jar > Task :assemble > Task :check > Task :build

Infolgedessen werden die Testquellen nicht kompiliert und daher nicht ausgeführt.

3. Verwenden des Gradle Build-Skripts

Wir haben mehr Möglichkeiten, Tests mit dem Gradle-Build-Skript zu überspringen. Beispielsweise können wir Tests basierend auf einer bestimmten Bedingung oder nur in einer bestimmten Umgebung mit der onlyIf () -Methode überspringen . Tests werden übersprungen, wenn diese Methode false zurückgibt .

Lassen Sie uns Tests überspringen, die auf der Überprüfung einer Projekteigenschaft basieren:

test.onlyIf { !project.hasProperty('someProperty') }

Jetzt führen wir den Befehl build aus und übergeben someProperty an Gradle:

gradle build -PsomeProperty

Daher überspringt Gradle die Ausführung der Tests:

> ... > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses > Task :test SKIPPED > Task :check UP-TO-DATE > ...

Darüber hinaus können wir Tests basierend auf ihrem Paket- oder Klassennamen mithilfe der exclude- Eigenschaft in unserer build.gradle- Datei ausschließen:

test { exclude 'org/boo/**' exclude '**/Bar.class' }

Wir können auch Tests überspringen, die auf einem Regex-Muster basieren. Zum Beispiel können wir alle Tests überspringen, deren Klassenname mit dem Wort „ Integration “ endet :

test { exclude '**/**Integration' }

4. Fazit

In diesem Tutorial haben wir gelernt, wie Sie Tests mit dem Gradle-Build-Tool überspringen. Wir haben auch alle relevanten Optionen durchgesehen, die wir in der Befehlszeile verwenden können, sowie diejenigen, die wir in Gradle-Build-Skripten verwenden können.