Java >> Java Tutorial >  >> Tag >> JUnit

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 .

Java-Tag