Configuration de JUnit avec Maven – JUnit 4 et JUnit 5

JUnit 4 et JUnit 5 sont des frameworks complètement différents. Ils servent tous les deux le même but, mais JUnit 5 est un framework de test complètement différent écrit à partir de zéro. Il n’utilise rien des APIs de JUnit 4. Ici, nous verrons comment configurer JUnit 4 et JUnit 5 dans nos projets Maven.

Dépendances Maven pour JUnit

Si vous souhaitez utiliser JUnit 4, vous aurez besoin d’une seule dépendance comme ci-dessous.

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

JUnit 5 est divisé en plusieurs modules, vous avez besoin d’au moins JUnit Platform et JUnit Jupiter pour écrire des tests en JUnit 5. Notez également que JUnit 5 nécessite Java 8 ou des versions ultérieures.

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

Si vous souhaitez exécuter des tests paramétrés, vous devrez ajouter une dépendance supplémentaire.

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

Exécution des tests JUnit pendant la construction Maven

Si vous souhaitez que les tests soient exécutés pendant la construction Maven, vous devrez configurer le plugin maven-surefire-plugin dans votre fichier pom.xml. 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>

Rapports HTML JUnit

Le plugin Maven Surefire génère des rapports au format texte et XML. Nous pouvons générer des rapports basés sur HTML en utilisant le maven-surefire-report-plugin. La configuration ci-dessous fonctionne à la fois pour JUnit 4 et 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>

Il suffit d’exécuter la commande mvn site et le rapport HTML sera généré dans le répertoire target/site/. C’est tout pour un tour d’horizon rapide de la configuration JUnit pour les projets Maven.

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