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