JUnit Setup Maven – JUnit 4 und JUnit 5

JUnit 4 und JUnit 5 sind völlig unterschiedliche Frameworks. Beide dienen dem gleichen Zweck, aber JUnit 5 ist ein völlig anderes Testframework, das von Grund auf neu geschrieben wurde. Es verwendet nichts von den JUnit 4 APIs. Hier werden wir uns anschauen, wie man JUnit 4 und JUnit 5 in unseren Maven-Projekten einrichtet.

JUnit Maven-Abhängigkeiten

Wenn Sie JUnit 4 verwenden möchten, benötigen Sie nur eine Abhängigkeit wie unten angegeben.

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<scope>test</scope>
</dependency>

JUnit 5 ist in mehrere Module unterteilt. Sie benötigen mindestens JUnit Platform und JUnit Jupiter, um Tests in JUnit 5 zu schreiben. Beachten Sie auch, dass JUnit 5 Java 8 oder neuere 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 Sie parameterisierte Tests ausführen möchten, müssen Sie 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 Sie möchten, dass die Tests während des Maven-Builds ausgeführt werden, müssen Sie das Plugin maven-surefire-plugin in Ihrer 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

Das Maven Surefire-Plugin generiert Text- und XML-Berichte. Wir können HTML-basierte Berichte mithilfe des maven-surefire-report-plugin generieren. Die untenstehende Konfiguration funktioniert sowohl für JUnit 4 als auch für 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ühren Sie 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 die JUnit-Einrichtung für Maven-Projekte.

Source:
https://www.digitalocean.com/community/tutorials/junit-setup-maven