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.

Migration des tests de JUNIT 4 à 5

Created by Sylvain Leroy