JUnit 4 e JUnit 5 sono framework completamente diversi. Entrambi servono allo stesso scopo, ma JUnit 5 è un framework di testing completamente diverso scritto da zero. Non utilizza nulla dalle API di JUnit 4. Qui vedremo come configurare JUnit 4 e JUnit 5 nei nostri progetti Maven.
Dipendenze Maven di JUnit
Se desideri utilizzare JUnit 4, avrai bisogno di una singola dipendenza come segue.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
JUnit 5 è diviso in diversi moduli, avrai bisogno almeno di JUnit Platform e JUnit Jupiter per scrivere test in JUnit 5. Inoltre, nota che JUnit 5 richiede Java 8 o versioni successive.
<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>
Se desideri eseguire test parametrizzati, allora dovrai aggiungere una dipendenza aggiuntiva.
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
Test JUnit durante la build di Maven
Se desideri che i test vengano eseguiti durante la build di Maven, dovrai configurare il plugin maven-surefire-plugin
nel tuo file 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>
Rapporti HTML di JUnit
Il plugin Maven Surefire genera rapporti in formato testo e XML, possiamo generare rapporti basati su HTML utilizzando il maven-surefire-report-plugin
. La configurazione seguente funziona sia per JUnit 4 che per 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>
Basta eseguire il comando mvn site
e il rapporto HTML verrà generato nella directory target/site/
. Ecco tutto per una panoramica rapida della configurazione di JUnit per progetti Maven.
Source:
https://www.digitalocean.com/community/tutorials/junit-setup-maven