web-dev-qa-db-fra.com

Eclipse n'arrête pas de dire "Aucun test trouvé avec le lanceur de test JUnit 5"

J'utilise la version Eclipse Oxygen.3 (4.7.3). Voici ma classe de test JUnit:

import static org.junit.Assert.assertEquals;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

class MyMathTest {
    MyMath myMath = new MyMath();

    @Before
    public void before() {
        System.out.println("Before");
    }

    @After
    public void after() {
        System.out.println("After");
    }

    @Test
    public void testSum_with3numbers() {
        System.out.println("Test1");
        int result = myMath.sum(new int[] {1,2,3});
        int expected = 6;
        assertEquals(expected, result);
    }

    @Test
    public void testSum_with1numbers() {
        System.out.println("Test2");
        int result = myMath.sum(new int[] {3});
        int expected = 3;
        assertEquals(expected, result);
    }

    @BeforeClass
    public static void beforeClass() {
        System.out.println("Before class");
    }

    @AfterClass
    public static void afterClass() {
        System.out.println("After class");
    }

}

Lorsque j'exécute ce test Junit, Eclipse continue d'afficher une boîte de dialogue indiquant "Aucun test n'a été trouvé avec le lanceur de test 'JUnit 5'" . Pourquoi?

enter image description here

7
Leem

Votre classe de test est actuellement basée sur JUnit 4 car elle utilise les annotations de org.junit paquet.

Ainsi, pour qu'il s'exécute en tant que classe de test JUnit 4 dans Eclipse, vous devez sélectionner le runner JUnit 4 dans la "Configuration de l'exécution". Cliquez sur la petite flèche (pointant vers le bas) à côté du cercle vert avec une flèche blanche à l'intérieur (en haut de l'IDE Eclipse). Là, vous devriez voir votre classe de test, et en sélectionnant cela, vous pouvez basculer entre les coureurs JUnit 4 et JUnit 5.

En revanche, si votre objectif est d'écrire un test à l'aide de JUnit Jupiter (c'est-à-dire le modèle de programmation pour JUnit 5), vous devrez passer des annotations dans org.junit à org.junit.jupiter.api.

9
Sam Brannen

Dans Eclipse 2019-09 (4.13), un bogue peut provoquer l'erreur "Aucun test trouvé avec le lanceur de test 'JUnit 5'": https://bugs.Eclipse.org/bugs/show_bug.cgi?id = 551298

J'ai ajouté la dépendance suivante à mon projet et cela a fonctionné pour moi:

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-commons</artifactId>
    <version>1.5.2</version><!--$NO-MVN-MAN-VER$-->
    <scope>test</scope>
</dependency>
3
Markus Hettich

Cela m'est arrivé car ma méthode de test a été déclarée privée et JUnit n'a pas pu la détecter. Après l'avoir rendu public, cela a fonctionné comme prévu, bien sûr avec l'annotation @Test.

2

Vous utilisez des annotations JUnit 4 avec des dépendances JUnit 5. Si vous souhaitez utiliser JUnit 5, vous devez remplacer:
'@ Before' avec '@BeforeEach'
'@ AfterEach' avec '@AfterEach'
'@ BeforeAll' avec '@BeforeAll'
'@ AfterAll' avec '@AfterAll'

Voici plus sur les annotations JUnit 5 https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations/

1
salerokada

Revenez sur vos importations.

Vous importez import org.junit.Test; (Utilisé pour exécuter des cas de test avec JUnit 4)

Vous devez importer import org.junit.jupiter.api.Test; pour exécuter le cas de dégustation avec JUnit5.

1
Ravirajsinh Vaghela

J'ai eu la même erreur, après avoir tout essayé, j'ai réalisé que la bibliothèque JUnit n'avait pas été ajoutée. Donc, après l'avoir ajouté, les tests ont fonctionné comme prévu.

1
S. Stupar

faites un clic droit et exécutez en tant que -> config-> effectuez ce changement et exécutez cela fonctionnera! enter image description here

0
Arun Kumar T

la classe de test n'est pas publique, rendez-la publique et cela devrait fonctionner

0
Karsankaka