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.

0voto

Milo J Slick Points 309

Encore une autre variation.
D'une manière ou d'une autre, mes classes de test qui fonctionnaient auparavant semblaient s'exécuter depuis un autre endroit ; mes modifications ne s'exécutaient pas lorsque je lançais les tests.

J'ai constaté que le dossier de sortie de mes fichiers ${project_loc}src/test/java n'était pas celui que j'attendais. Il avait été défini par inadvertance à ${project_loc}target/classes. Je l'ai défini correctement dans les propriétés du projet, Java Build Path, onglet Source.

0voto

Si vous avez un projet maven, essayez de l'exécuter :

mvn clean compile

et ensuite dans eclipse nettoyer et construire votre projet.

0voto

Nayan Points 36

J'ai eu le même problème avec mon Eclipse Helios lors du débogage de Junits. Mon problème était un peu différent car j'étais capable d'exécuter Junits avec succès mais j'obtenais ClassNotFoundException en déboguant les mêmes Junits.

J'ai essayé toutes sortes de solutions différentes disponibles sur Stackoverflow.com et sur d'autres forums, mais rien ne semble fonctionner. Après m'être tapé la tête contre ce problème pendant près de deux jours, j'ai finalement trouvé la solution.

Si aucune de ces solutions ne semble fonctionner, supprimez simplement le dossier .metadata créé dans votre espace de travail. Cela entraînera une charge supplémentaire liée à l'importation des projets et de toutes les configurations que vous avez effectuées, mais cela résoudra certainement le problème.

J'espère que cela vous aidera.

0voto

user4714842 Points 1

Dans la vue "Package Explorer", faites un clic droit sur votre classe de test, puis "Build Path">>"Include", cela devrait être OK.

0voto

Sneha Latha Points 1

J'ai moi aussi été confronté à la même exception, aucune des solutions proposées sur Internet ne m'a aidé. mon projet contient plusieurs modules. Mon code Junit réside dans le module Web. Et il fait référence au code du module client.

Finalement, j'ai essayé : Clic droit sur le projet (module Web) --> construire le chemin --> onglet source --> lier la source --> ajouter l'emplacement des fichiers src (du module client).

C'est ça ! Ça a marché comme un charme J'espère que cela vous aidera

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