web-dev-qa-db-fra.com

"Aucun test JUnit trouvé" dans Eclipse

Je suis donc nouveau dans JUnit et nous devons l’utiliser pour un devoir. Notre professeur nous a donné un projet comportant une classe de test, BallTest.Java. Lorsque je clique avec le bouton droit de la souris sur> Exécuter en tant que> Test JUnit, un message d'erreur indiquant «Aucun test JUnit trouvé» s'affiche. Je sais que la question a été résolue ici ( Aucun test trouvé avec le testeur 'JUnit 4' ), mais fermer Eclipse, redémarrer, nettoyer et construire ne semble pas fonctionner. Vous trouverez ci-dessous des captures d'écran de ma configuration d'exécution, du chemin de génération et de la classe que j'essaie de tester.

Run ConfigurationBuild Path

BallTest.Java

import static org.junit.Assert.*;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 

public class BallTest {

Ball ball;

/**
 * @throws Java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    System.out.println("Setting up ...");
    Point2D p = new Point2D(0,0);
    ball = new Ball(p);
}

/**
 * @throws Java.lang.Exception
 */
@After
public void tearDown() throws Exception {
    System.out.println("Tearing down ...");
    ball = null;
}

/**
 * Test method for {@link Ball#getCoordinates()}.
 */
@Test
public void testGetCoordinates() {
    assertNotNull(ball); // don't need Assert. because of the import statement above.
    Assert.assertEquals(ball.getCoordinates().getX(), 0);
    Assert.assertEquals(ball.getCoordinates().getY(), 0);
}

/**
 * Test method for {@link Ball#setCoordinates(Point2D)}.
 */
@Test
public void testSetCoordinates() {
    Assert.assertNotNull(ball);
    Point2D p = new Point2D(99,99);
    ball.setCoordinates(p);
    Assert.assertEquals(ball.getCoordinates().getX(), 99);
    Assert.assertEquals(ball.getCoordinates().getY(), 99);
}

/**
 * Test method for {@link Ball#Ball(Point2D)}.
 */
@Test
public void testBall() {
    Point2D p = new Point2D(49,30);
    ball = new Ball(p);
    Assert.assertNotNull(ball);
    Assert.assertEquals(ball.getCoordinates().getX(), 49);
    Assert.assertEquals(ball.getCoordinates().getY(), 30);

    //fail("Not yet implemented");
}

public static void main (String[] args) {
         Result result = JUnitCore.runClasses(BallTest.class);
         for (Failure failure : result.getFailures()) { 
                System.out.println(failure.toString()); 
            } 
        System.out.println(result.wasSuccessful());  
}

}
43
iaacp

Cliquez avec le bouton droit sur Projet> Propriétés> Chemin de construction Java> Ajouter le dossier Test en tant que dossier source.

Tous les dossiers source, y compris les classes de test, doivent se trouver dans le chemin de construction Java Eclipse. Pour que les sources telles que les classes principales et les classes de test puissent être compilées dans le répertoire de construction (le dossier par défaut d’Eclipse est bin).

59
iaacp

Si aucune des autres réponses ne fonctionne pour vous, voici ce qui a fonctionné pour moi.

Redémarrer Eclipse

Le dossier source était configuré correctement et les tests unitaires étaient correctement annotés, mais le message "Aucun test JUnit trouvé" était toujours affiché pour un projet. Après un redémarrage, cela a fonctionné. J'utilisais STS 3.6.2 basé sur Eclipse Luna 4.4.1

15
khylo

clic droit -> chemin de construction -> supprimer du chemin de construction .__, puis ajoutez-le à nouveau -> Cliquez avec le bouton droit de la souris sur le dossier 'Test'> Chemin de construction> Utiliser comme dossier source.

9
Sagar

J'ai eu le même problème et résolu comme ceci: J'ai supprimé l'annotation @Test et l'ai retapée.

5
nikartix

Il semble que vous manquiez la définition du coureur sur votre classe de test, ce qui pourrait en être la cause:

import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class BallTest {
...
}
4
Klazen108
  1. Cliquez avec le bouton droit de la souris sur votre projet -> Propriétés -> Chemin de construction Java et accédez à l'onglet Source, puis ajoutez votre dossier de test src.
  2. Sélectionnez le menu Projet et désélectionnez l'option 'Construire automatiquement' si elle est sélectionnée
  3. Sélectionnez Nettoyer puis sélectionnez l'option 'Construire automatiquement'
  4. Redémarrez Eclipse et lancez votre Junit.
3
Ranjith Sekar

Aucune solution ne fonctionnait pour moi jusqu'à ce que je modifie le nom de ma méthode de test. Quand le nom de la méthode de test commençant par "test" est OK . Je suis nouveau dans la programmation Android et ce fut pour moi une grosse surprise.

2
Igor Semkiv

Je pense que vous avez créé vos classes de test en dehors du dossier src. Vous pouvez résoudre le problème ci-dessus de deux manières:

  1. Ajoutez votre nom de package dans Java build path->source

  2. Déplacez votre package/class dans le dossier src

J'ai le même problème et résolu de cette façon, les deux solutions fonctionnent bien.

2
pintu

J'ai résolu le problème en configurant le chemin de génération . Faites un clic droit sur le projet (ou sur l'un des sous-dossiers) -> Chemin de construction -> Configurer le chemin de construction. Une fois que la fenêtre de propriété s'ouvre, cliquez sur l'onglet 'Source' et ajoutez vos dossiers src et tst . Mais cela seul n'a pas fonctionné pour moi. Bizarrement, je devais retaper les annotations (Projet-> nettoyer ou redémarrer aurait peut-être aussi fonctionné).

1
ankit

Le meilleur moyen de résoudre ce problème consiste à définir un modificateur d'accès public pour le nom de votre classe de cas de test Junit, puis à exécuter le scénario en cliquant avec le bouton droit de la souris sur votre classe de cas de test Junit et à l'exécuter comme test Junit.

0
Kshitij Vashist

junit4 nécessite que nom de classe de test soit utilisé avec Test comme suffixe.

0
jiahut

La solution était, après avoir fait une sauvegarde du dossier src/test, le supprimer du système de fichiers, puis le recréer.

C'est après avoir fait le conseil "Supprimer du chemin de construction" et il a vissé les dossiers lors de l'ouverture du projet dans STS 4.

0
rsb2097

La configuration d'exécution d'une classe de test peut créer une autre cause (et une solution) à ce problème.

Si vous accédez aux configurations d'exécution (ou de débogage) (à l'aide de cmd-3 ou en cliquant sur les petits boutons déroulants de la barre d'outils), vous pouvez voir une configuration créée pour chaque classe de test avec laquelle vous avez travaillé. J'ai découvert qu'une de mes classes qui ne lancerait pas avait une configuration d'exécution dans laquelle le champ Méthode de test avait été renseigné par inadvertance. Je devais effacer ça pour que ça fonctionne. Lorsque cette option est désactivée, il affiche (toutes les méthodes) en texte clair.

J'ajouterai cela étrangement - peut-être y avait-il autre chose en cours - cela ne semblait pas non plus fonctionner pour moi jusqu'à ce que je corrige le champ "Nom" également, de sorte qu'il n'inclut que le nom de la classe comme les autres configurations d'exécution JUnit.

0
Joshua Goldberg

J'utilisais @RunWith(Parameterized.class) mais je n'ai pas pu ajouter l'annotation @Parameters dans la méthode des paramètres statiques publics. Après avoir ajouté l'annotation, cela a fonctionné.

0
Saikat

Je suis tombé sur ce problème lors de la mise à niveau de projets sur les versions d'Eclipse. Par exemple les junits fonctionnant bien en mars 2.0 n'ont pas fonctionné sur Neon. Ce qui suit a fonctionné pour moi.

  1. Supprimer le dossier .settings. Importer le projet dans Eclipse. 
  2. Supprimer les dossiers sources. Ensuite, utilisez à nouveau les dossiers en tant que dossiers sources. Par exemple, supprimez src/main/Java du chemin de génération en tant que dossier source. -> Ok -> Créez à nouveau ce dossier en tant que dossier source. Répétez cette opération pour main/resources, test/Java, test/resources 
0
Tushar Mishra

Dans Eclipse Photon, vous devrez peut-être ajouter JUnit 4 ou 5 au chemin de génération. Cliquez avec le bouton droit de la souris sur @ Test et sélectionnez "Ajouter JUnit 4 au chemin de génération".

0
Jim