web-dev-qa-db-fra.com

Lors de l'utilisation de JUnit5, j'ai reçu un avertissement: "ClassNotFoundException: org.junit.platform.engine.support.filter.ExclusionReasonConsumingFilter"

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?

6
ayaya

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.

2
Sormuras

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.

0
ayaya