JUnit Setup Maven – Leitfaden
JUnit 4 und JUnit 5 sind komplett unterschiedliche Frameworks. Sie dienen beide demselben Zweck, aber JUnit 5 ist ein komplett neu geschriebenes Test-Framework. Es verwendet nichts aus den JUnit 4 APIs. Hier werden wir anschauen, wie man JUnit 4 und JUnit 5 in unseren Maven-Projekten einrichtet.
JUnit Maven Abhängigkeiten
Wenn du JUnit 4 verwenden möchtest, benötigst du eine einzelne Abhängigkeit wie unten.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
JUnit 5 ist in mehrere Module unterteilt, du benötigst mindestens das JUnit Platform und JUnit Jupiter, um Tests in JUnit 5 zu schreiben. Beachte auch, dass JUnit 5 Java 8 oder höhere Versionen erfordert.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.2.0</version>
<scope>test</scope>
</dependency>
Wenn du parameterisierte Tests durchführen möchtest, dann musst du eine zusätzliche Abhängigkeit hinzufügen.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
JUnit Tests während des Maven Builds
Wenn du möchtest, dass die Tests während des Maven Builds ausgeführt werden, musst du das maven-surefire-plugin Plugin in deiner pom.xml Datei konfigurieren.
JUnit 4:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.22.0</version>
</dependency>
</dependencies>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
JUnit 5:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>src/test/java/</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
</plugins>
</build>
JUnit HTML Berichte – JUnit Setup Maven
Maven surefire plugin erzeugt Text- und XML-Berichte, wir können HTML-basierte Berichte mit dem maven-surefire-report-plugin generieren. Die untenstehende Konfiguration funktioniert sowohl für JUnit 4 als auch JUnit 5.
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</reporting>
Führe einfach den Befehl mvn site aus und der HTML-Bericht wird im Verzeichnis target/site/ generiert. Das ist alles für einen schnellen Überblick über das Einrichten von JUnit für Maven-Projekte.