‘Aucun test JUnit trouvé’ dans Eclipse

Donc, je suis nouveau sur JUnit, et nous devons l’utiliser pour un devoir. Notre professeur nous a donné un projet qui comporte une classe de test, BallTest.java . Lorsque je fais un clic droit> Exécuter en tant que> Test JUnit, j’obtiens une erreur contextuelle indiquant “Aucun test JUnit trouvé”. Je sais que la question a été répondue ici ( Aucun test trouvé avec le testeur ‘JUnit 4′ ), mais la fermeture de l’éclipse, le redémarrage, le nettoyage et la construction ne semblent pas fonctionner. Vous trouverez ci-dessous des captures d’écran de ma configuration d’exécution, du chemin d’access et de la classe que j’essaie de tester.

Exécuter la configurationChemin de construction

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 (Ssortingng[] args) { Result result = JUnitCore.runClasses(BallTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toSsortingng()); } System.out.println(result.wasSuccessful()); } } 

Cela corrigé:

Faites un clic droit sur le dossier nommé ‘Test’> Build Path> Utiliser comme dossier source.

Je ne comprends pas bien pourquoi quelqu’un peut-il commenter?

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

Redémarrer l’éclipse

Le dossier source a été configuré correctement et les tests unitaires correctement annotés, mais il n’y avait toujours pas de “tests JUnit trouvés” pour un projet. Après un redémarrage, cela a fonctionné. J’utilisais STS 3.6.2 basé sur l’éclipse Luna 4.4.1

clic droit -> chemin de construction -> supprimer du chemin de construction, puis à nouveau l’append -> Faites un clic droit sur le dossier nommé ‘Test’> Chemin de génération> Utiliser comme dossier source.

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

 import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class BallTest { ... } 

J’ai eu le même problème et résolu comme ceci: j’ai supprimé l’annotation @Test et l’ai retapée. Ça a juste fonctionné, je n’ai aucune idée de pourquoi.

Toute solution ne fonctionnait pas pour moi jusqu’à ce que je change le nom de ma méthode de test. Lorsque le nom de la méthode de test commence par “test” est OK. Je suis nouveau dans la programmation Android et ce fut pour moi une grande surprise.

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 le java build path->source

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

J’ai le même problème et j’ai résolu de cette manière que les deux solutions fonctionnaient correctement.

  1. Faites un clic droit sur votre projet -> Propriétés-> Chemin de compilation Java et allez dans l’onglet Source, puis ajoutez votre dossier src de test.
  2. Sélectionnez le menu Projet et désélectionnez l’option “Générer automatiquement” si cette option est sélectionnée.
  3. Sélectionnez Nettoyer, puis sélectionnez l’option “Générer automatiquement”
  4. Redémarrez Eclipse et lancez votre junit.

J’ai résolu le problème en configurant le chemin de construction. Cliquez avec le bouton droit sur le projet (ou l’un des sous-dossiers) -> Build path -> Configure path path. Une fois la fenêtre de propriété ouverte, cliquez sur l’onglet “Source” et ajoutez vos dossiers src et tst. Mais cela seul n’a pas fonctionné pour moi. Étrangement, je devais ressaisir les annotations (Project-> clean or restart pouvait aussi bien fonctionner).

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

Si vous allez dans les configurations d’exécution (ou de débogage) (en utilisant cmd-3 ou en cliquant sur les petits boutons 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 serait pas lancée avait une configuration d’exécution où le champ Méthode de test avait été généré par inadvertance. Je devais effacer cela pour le faire fonctionner. Lorsque cette option est désactivée, elle apparaît (toutes les méthodes) en texte clair.

Je vais append cela de façon étrange – peut-être y avait-il autre chose en cours – cela ne semblait pas fonctionner pour moi tant que je n’avais pas corrigé le champ “Nom” pour qu’il inclue uniquement le nom de la classe comme les autres configurations d’exécution JUnit.

Vous avez rencontré ce problème lors de la mise à niveau de projets sur des versions éclipse. Par exemple, les junits fonctionnant bien sur Mars2.0 ne fonctionnaient pas sur Neon. Ce qui suit a fonctionné pour moi.

  1. Supprimer le dossier .settings. Projet d’importation dans éclipse.
  2. Supprimer les dossiers sources Ensuite, utilisez les dossiers comme dossiers source. Par exemple, supprimez src / main / java du chemin de compilation en tant que dossier source. -> Ok -> Encore une fois, faites ce dossier en tant que dossier source. Répétez cette opération pour main / resources, test / java, test / resources

J’utilisais @RunWith(Parameterized.class) mais j’ai manqué d’append l’annotation @Parameters dans la méthode des parameters statiques publics. Après avoir ajouté l’annotation, cela a fonctionné.