58 votes

Classe de test JUNIT dans Eclipse - java.lang.ClassNotFoundException

J'essaie d'exécuter mon test junit (pour vérifier qu'un fichier de propriétés se charge correctement) mais j'obtiens ClassNotFoundException bien que la classe soit là et que toutes les bibliothèques requises soient là aussi.

Voici l'erreur que je reçois :

Class not found ConfigurationManagerTest                                                 java.lang.ClassNotFoundException: ConfigurationManagerTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Avez-vous une idée de la façon de résoudre ce problème ?

Merci.

17 votes

Essayez de nettoyer et de construire votre projet.

1 votes

J'ai essayé plusieurs fois, mais j'obtiens toujours la même erreur.

3 votes

Ouvrez la fenêtre Run Configuration dans eclipse, sélectionnez le test unitaire que vous avez exécuté et allez dans l'onglet classpath : ici vous pouvez vérifier ce qui est réellement dans le classpath.

2voto

Daniel Pereira Points 1526

J'ai eu ce problème et j'ai eu du mal à comprendre ce qui n'allait pas. Le projet avait une dépendance avec une erreur qui empêchait la construction de s'exécuter. Lorsque je supprime ce problème de dépendance, le projet est construit comme prévu.

Ps.. : Je travaille sur un projet qui a beaucoup d'erreurs de compilation, parce que nous portons une application qui a été convertie de Delphi à Java, donc je n'ai pas fait attention à l'erreur de compilation au début, c'est pourquoi il m'a fallu un certain temps pour trouver le problème.

2voto

Simon Bengtsson Points 471

J'ai essayé toutes les réponses décrites ici mais aucune n'a fonctionné, mais j'ai trouvé ceci filetage où slomek résout le problème de manière très simple. Il suffit d'aller dans projet -> propriétés --> java build path. Puis déplacez Junit en haut en appuyant sur le bouton haut en bas à droite. Ensuite, tout se compile très bien.

2voto

jKoder Points 48

Vérifiez les propriétés->java build path -> libraries. il ne devrait pas y avoir d'erreurs, dans mon cas il y avait des erreurs dans le maven. une fois que j'ai mis le jar requis dans le repo maven, cela a bien fonctionné.

1voto

gffny Points 116

J'ai essayé tout ce qui est mentionné ici et dans d'autres articles. Voici quelques-unes des solutions que les gens m'ont proposées :

  1. Changez le dossier de sortie pour le test
  2. Créez un constructeur personnalisé pour le projet qui exécutera test-compile depuis Maven.
  3. Déplacez les dépendances Maven plus haut dans la liste de commande et d'exportation dans le chemin de construction du projet.

Il y en avait beaucoup, beaucoup d'autres, mais celui que j'ai trouvé pour fonctionner était le suivant : Fermez l'environnement de développement. Supprimer les jars utilisés par le projet de mon dépôt Maven local. Ouvrir l'IDE. Construire le projet. Exécuter le test.

Après des heures à me taper la tête contre mon clavier et à suivre les solutions proposées, celle-ci a fonctionné !

1voto

Marten Sytema Points 484

Ce qui a fonctionné pour moi est de supprimer la configuration d'exécution du test. Ensuite, faites un clic droit sur la classe de test et cliquez sur run as junit test.

Maintenant, il recrée une configuration d'exécution correcte pour moi.

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