119 votes

Aucun test trouvé pour le testeur 'JUnit 4'

Mon test Java a bien fonctionné avec Eclipse. Mais maintenant, lorsque je relance le test à partir du menu Exécuter, le message suivant s'affiche:

 No tests found with test runner 'JUnit 4'
 

Dans le fichier .classpath , j'ai tous les fichiers jar et à la fin j'ai:

 <classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
    <classpathentry kind="output" path="bin"/>
</classpath>
 

Comment puis-je résoudre cette erreur et relancer les tests?

173voto

Germán Points 2110

cela m'est juste arrivé. La reconstruction ou le redémarrage d'Eclipse n'a pas aidé.

Je l'ai résolu en renommant l'une des méthodes de test pour commencer par "test ..." (style JUnit3), puis tous les tests sont trouvés. Je l'ai renommé comme auparavant et cela fonctionne toujours.

46voto

JamesG Points 575

Lorsque nous obtenons ces erreurs, il semble qu'Eclipse soit confuse. Redémarrez Eclipse, actualisez le projet, nettoyez-le, laissez Eclipse le reconstruire et réessayez. La plupart du temps, cela fonctionne comme un charme.

36voto

nephilim Points 304

Vérifiez si votre classe de test étend "TestCase". si tel est le cas, supprimez cette clause. Votre classe n'a pas besoin d'être étendue à partir de la classe "TestCase". C'est la plupart des cas que j'ai rencontrés.

 public class MyTestCase extends TestCase{
  @Test
  public void checkSomething() {
    //...
  }
}
//Result> AssertionFailedError: No test Found in MyTestCase
 

Suivre TestCase devrait bien se passer.

 public class MyTestCase {
  @Test
  public void checkSomething() {
    //...
  }
}
//Works fine
 

35voto

Dima Points 239

Dans le menu contextuel de votre répertoire "test", choisissez "Chemin de construction" -> "Utiliser comme dossier source". Eclipse devrait voir vos fichiers unitTests.java en tant que fichiers sources. Avertissement "Aucun test JUnit trouvé" ne se produit car il n'y a pas de fichier unitTests.class dans votre répertoire "build".

28voto

toomasr Points 1655

J'ai été confrontée au même problème et j'ai débogué à de mauvais exemples sur le web et la partie interne de junit. Fondamentalement, ne pas faire de votre classe d'étendre les cas de test que quelques exemples montrent pour Junit 4.x. L'utilisation de certains la convention de nommage de Test ou si vous voulez avoir une annotation, vous pouvez utiliser l'annotation @RunWith(JUnit4.class).

Si vous avez besoin d'accéder à affirmer méthodes d'étendre Affirmer ou d'utiliser des importations.

Si votre classe extends TestCase alors même si vous utilisez Junit 4 Runner il sera exécuté en tant 3. C'est parce que dans le code d'initialisation il y a détection:

Voir JUnit3Builder et les lignes:

boolean isPre4Test(Class<?> testClass) {
    return junit.framework.TestCase.class.isAssignableFrom(testClass);
}

Elle renvoie true (vrai et le test pour junit4 la compatibilité ne sera pas essayé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X