JUnit 5-Tutorial:Unit-Tests mit Gradle ausführen
Dieser Blogbeitrag beschreibt, wie wir ein Gradle-Projekt erstellen können, das Unit-Tests kompilieren und ausführen kann, die JUnit 5 verwenden. Nachdem wir diesen Blogbeitrag fertiggestellt haben, gehen wir wie folgt vor:
- Kann die erforderlichen Abhängigkeiten mit Gradle abrufen
- Verstehen, wie wir die native JUnit 5-Unterstützung von Gradle nutzen können.
- Kann unsere Einheitentests mit Gradle ausführen.
Beginnen wir mit der Erstellung eines Java-Projekts.
Erstellen eines Java-Projekts
Wir können ein Java-Projekt erstellen, indem wir das Java-Plugin anwenden. Nachdem wir dieses Plugin angewendet haben, wird der Quellcode unserer build.gradle Datei sieht wie folgt aus:
plugins { id 'java' }
Als nächstes werden wir herausfinden, wie wir mit Gradle die erforderlichen Abhängigkeiten erhalten können.
Erforderliche Abhängigkeiten abrufen
Wir können die erforderlichen Abhängigkeiten erhalten, indem wir diesen Schritten folgen:
Zuerst , stellen Sie sicher, dass Gradle das zentrale Maven-Repository verwendet, wenn es die Abhängigkeiten unseres Gradle-Builds auflöst. Nachdem wir das verwendete Maven-Repository konfiguriert haben, wird unsere build.gradle Datei sieht wie folgt aus:
apply plugin: 'java' repositories { mavenCentral() }
Zweiter , fügen Sie junit-jupiter
hinzu (Version 5.8.2) Abhängigkeit von testImplementation
Abhängigkeitskonfiguration. Dies ist ein Aggregator-Artefakt, das die Abhängigkeitsverwaltung vereinfacht, da es die folgenden transitiven Abhängigkeiten hat:
- Die
junit-jupiter-api
Abhängigkeit (testImplementation
Abhängigkeitskonfiguration) stellt die öffentliche API zum Schreiben von Tests und Erweiterungen bereit. - Die
junit-jupiter-params
Abhängigkeit (testImplementation
Abhängigkeitskonfiguration) bietet Unterstützung für das Schreiben parametrisierter Tests. - Der
junit-jupiter-engine
Abhängigkeit (testRuntimeClasspath
Abhängigkeitskonfiguration) enthält die Implementierung der JUnit-Jupiter-Test-Engine, die unsere Komponententests ausführt. Wenn wir diese Abhängigkeit zu unserem Klassenpfad hinzufügen, können wir unsere Tests ausführen, indem wir die native JUnit 5-Unterstützung von Gradle nutzen, wenn wir Gradle 4.6 oder neuer verwenden.
Nachdem wir die erforderlichen Abhängigkeiten deklariert haben, wird unsere build.gradle Datei sieht wie folgt aus:
apply plugin: 'java' repositories { mavenCentral() } dependencies { testImplementation('org.junit.jupiter:junit-jupiter:5.8.2') }
Lassen Sie uns weitermachen und herausfinden, wie wir die native JUnit 5-Unterstützung von Gradle aktivieren können.
Aktivieren der nativen JUnit 5-Unterstützung von Gradle
Obwohl Gradle (Version 4.6 oder neuer) eine native Unterstützung für JUnit 5 hat, ist diese Unterstützung standardmäßig nicht aktiviert. Wenn wir es aktivieren wollen, müssen wir sicherstellen, dass der test
Task verwendet JUnit 5 anstelle von JUnit 4.
Nachdem wir die native JUnit 5-Unterstützung von Gradle aktiviert haben, wird der Quellcode unserer build.gradle Datei sieht wie folgt aus:
plugins { id 'java' } repositories { mavenCentral() } dependencies { testImplementation('org.junit.jupiter:junit-jupiter:5.8.2') } test { useJUnitPlatform() }
Wir haben jetzt ein Gradle-Projekt erstellt, das Unit-Tests ausführen kann, die JUnit 5 verwenden. Als Nächstes schreiben wir einen einfachen Unit-Test mit JUnit 5.
Eine einfache Testklasse schreiben
Bevor wir Komponententests schreiben können, die JUnit 5 verwenden, müssen wir diese beiden Dinge wissen:
- Die src/test/java Verzeichnis enthält den Quellcode unserer Unit-Tests.
- Die src/test/resources Verzeichnis enthält die Ressourcen unserer Unit-Tests.
Lassen Sie uns eine neue Testklasse erstellen und der erstellten Klasse eine Testmethode hinzufügen. Diese Testmethode schreibt einfach eine Nachricht an System.out
. Der Quellcode unserer Testklasse sieht wie folgt aus:
import org.junit.jupiter.api.Test; class JUnit5ExampleTest { @Test void justAnExample() { System.out.println("This test method should be run"); } }
Fahren wir fort und finden heraus, wie wir unsere Komponententests ausführen können.
Einheitentests mit Gradle ausführen
Wir können unsere Komponententests mit Gradle ausführen, indem wir den folgenden Befehl verwenden:gradle clean test . Wenn wir diesen Befehl an der Eingabeaufforderung ausführen, sehen wir, dass Gradle unsere Komponententests ausführt:
$ gradle clean test > Task :test net.petrikainulainen.junit5.JUnit5ExampleTest > justAnExample() STANDARD_OUT This test method should be run
Wir können jetzt ein Gradle-Projekt erstellen, das Unit-Tests kompiliert und ausführt, die JUnit 5 verwenden. Außerdem wissen wir, wie wir unsere Unit-Tests mit Gradle ausführen können. Fassen wir zusammen, was wir aus diesem Blogbeitrag gelernt haben.
Zusammenfassung
Dieser Blogbeitrag hat uns fünf Dinge beigebracht:
- Die
junit-jupiter-api
Abhängigkeit stellt die öffentliche API bereit, die es uns ermöglicht, Tests und Erweiterungen zu schreiben, die JUnit 5 verwenden. - Die
junit-jupiter-engine
Abhängigkeit ermöglicht es uns, Tests auszuführen, die JUnit 5 mit Gradle verwenden. - Die
junit-jupiter
Abhängigkeit ist ein Aggregator-Artefakt, das die Abhängigkeitsverwaltung vereinfacht, da es sicherstellt, dass die erforderlichen Abhängigkeiten aus dem Klassenpfad gefunden werden. - Gradle hat eine native Unterstützung für JUnit 5, aber diese Unterstützung ist standardmäßig nicht aktiviert.
- Wir können unsere Komponententests mit dem folgenden Befehl ausführen:gradle clean test .