JUnit Setup Maven – JUnit 4 en JUnit 5

JUnit 4 en JUnit 5 zijn volledig verschillende frameworks. Ze dienen allebei hetzelfde doel, maar JUnit 5 is een volledig ander testframework dat vanaf nul is geschreven. Het maakt geen gebruik van iets van JUnit 4 API’s. Hier zullen we kijken naar hoe je JUnit 4 en JUnit 5 kunt opzetten in onze Maven-projecten.

JUnit Maven-afhankelijkheden

Als je JUnit 4 wilt gebruiken, heb je slechts één afhankelijkheid nodig zoals hieronder.

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

JUnit 5 is verdeeld in verschillende modules, je hebt minstens JUnit Platform en JUnit Jupiter nodig om tests te schrijven in JUnit 5. Let ook op dat JUnit 5 Java 8 of hogere versies vereist.

<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>

Als je parameterized tests wilt uitvoeren, moet je een aanvullende afhankelijkheid toevoegen.

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter-params</artifactId>
	<version>5.2.0</version>
	<scope>test</scope>
</dependency>

JUnit-tests tijdens Maven-build

Als je wilt dat de tests worden uitgevoerd tijdens de Maven-build, moet je de maven-surefire-plugin-plugin configureren in je pom.xml-bestand. 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-rapporten

De Maven Surefire-plugin genereert tekst- en XML-rapporten. We kunnen HTML-rapporten genereren met de maven-surefire-report-plugin. Onderstaande configuratie werkt voor zowel JUnit 4 als 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>

Voer gewoon het mvn site-commando uit en het HTML-rapport wordt gegenereerd in de target/site/-map. Dat is alles voor een korte samenvatting van de JUnit-setup voor Maven-projecten.

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