J'essaie d'utiliser JUnit5.
Tout d'abord, j'ai ajouté des dépendances au projet maven:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
Ensuite, j'ai créé un test:
package com.example.multicurrency;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class JunitTests {
@Test
void testAssertTrue() {
assertTrue(false);
}
}
Après cela, je lance le test. Voici ce que j'ai:
org.junit.platform.launcher.core.DefaultLauncher handleThrowable
warning: TestEngine with ID 'junit-vintage' failed to discover tests
Java.lang.NoClassDefFoundError: org/junit/platform/engine/support/filter/ExclusionReasonConsumingFilter
Caused by: Java.lang.ClassNotFoundException: org.junit.platform.engine.support.filter.ExclusionReasonConsumingFilter
org.opentest4j.AssertionFailedError:
Expected :<true>
Actual :<false>
Le résultat était ce que j'attendais. Mais l'avertissement m'a confondu. Que signifie l'avertissement?
Utilisez la version 5.2.0
du junit-jupiter-engine
pour l'instant avec Surefire 2.22.0
.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
</dependencies>
On dirait que vous êtes frappé par https://issues.Apache.org/jira/browse/SUREFIRE-1564 qui décrit un problème connu que Surefire 2.22.0
reste en interne sur la version 1.2.0
pour tous junit-platfrom-xyz
artefacts.
J'ai résolu ce problème en mettant à jour mon idée intellij de 2017.2 à 2018.2.4. Mais je n'ai pas compris ce qui l'a causé et pourquoi il a résolu.
Merci pour vos réponses et commentaires amicaux.