Chapitre Les tests unitaires avec JUnit
Migration des tests de JUNIT 4 à 5
Cette leçon présente un ensemble d'information utiles pour vous aider à migrer vos tests depuis JUNIT 4 à JUNIT 5.
Dernière modification : Dec 08 , 2024
Migration des tests de JUNIT 4 à 5
Migration des annotations
Migration des annotations
JUNIT 4 annotations | JUNIT 5 Annotations |
---|---|
@Before | @BeforeEach |
@BeforeClass | @BeforeAll |
@After | @AfterEach |
@AfterClass | @BeforeAll |
@Ignore | @Disabled |
@Category | @Tag |
@RunWith | @ExtendWith |
Attention les packages ont changé de org.junit
à org.junit.jupiter.api
Migration de Maven
Utiliser JUNIT 5 est relativement plus compliqué que dans la version précédente
Auparavant :
- Il suffisait d'ajouter la dépendance org.junit:junit
- Et ajouter le plugin maven surefire-reports.
<dependencies>
[...]
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
[...]
</dependencies>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M6</version>
</plugin>
Surefire depuis la version 2.6 fonctionne ainsi désormais :
si la plateform JUnit 5 est présente dans le projet Maven
utiliser junit-platform
si la version de JUnit est >= 4.7 et que l'option <<<parallel>>> est utilisée
utiliser le fournisseur junit47
si JUnit >= 4.0 est présent
utiliser le fournisseur junit4
sinon
utiliser junit3.8.1
Les étapes pour utiliser JUNIT 5 avec Maven
- Ajouter la dépendance Maven pour JUnit platform
- Ajouter la dépendance Maven pour JUnit Jupiter afin d'exécuter les tests JUnit 5
- Ajouter la dépendance Maven pour JUnit vintage si vous souhaitez conserver certains tests en JUnit 4
- reconfigurer Surefire reports
Ajouter la dépendance JUnit 5 (pour exécuter les tests)
<dependencies>
[...]
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
[...]
</dependencies>
Ajouter la dépendance JUnit 5 pour coder les tests
<dependencies>
[...]
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
[...]
</dependencies>
Ajouter la dépendance optionelle à JUnit 4 pour exécuter les anciens tests
<dependencies>
[...]
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
[...]
</dependencies>
Utiliser une version du plugin surefire >= 2.7
<build>
<plugins>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M6</version>
Migration des Rules
Les Rules Junit ne sont plus supportées dans la version 5.
Le système d'extension répond désormais au besoin.