La classe de Test JUNIT dans Eclipse - java.lang.ClassNotFoundException
Je suis en train de lancer mon test junit (pour vérifier qu'un fichier de propriétés se charge correctement) mais
Je reçois ClassNotFoundException
bien que la classe est là et que toutes les bibliothèques requises sont là aussi.
Ici, c'est l'erreur que j'obtiens :
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)
aucune idée sur comment résoudre ce problème ?
Grâce.
- essayez de nettoyage clean & à construire votre projet.
- il a essayé de nombreuses fois , je reçois le même message d'erreur
- Ouvrir la fenêtre de Configuration dans eclipse, sélectionnez l'unité de test que vous avez couru et accédez à l'onglet classpath: ici, vous pouvez vérifier ce qui est réellement dans le classpath.
- merci, j'ai vu une erreur ci-dessus dans le classpath de l'onglet : [JRE]: JRE n'est pas compatible avec l'espace de travail .fichier de classe compatibilité: 1.6 , peut être est ce la cause ?
- J'ai connu le même problème avec un Java autonome de la classe et un test JUnit, à l'aide d'Eclipse 4.2. J'ai vérifié tous les chemins d'accès, etc. J'ai essayé de "nettoyer et à construire votre projet". Il a travaillé! Merci Harry Joie.
- Ne pas utiliser l'eclipse plugin gradle. Utiliser le gradle commande pour générer projet eclipse fichiers par (première suppression .projet .classpath .les paramètres) en ajoutant le plug-in eclipse pour construire.gradle puis de l'exécution "gradle eclipse' et de l'importation d'un projet dans eclipse.
- l'actualisation de votre projet et de le faire nettoyer et créer
Vous devez vous connecter pour publier un commentaire.
ConfigurationManagerTest
n'est pas trouvé sur votre classpath. S'assurer que leConfigurationManagerTest.class
fichier est disponible sur votre classpath.Il ne pourrait pas exister si elle n'était pas compilé avec succès ou si il a été créé dans un répertoire que vous n'avez pas dit le projet Eclipse doit être dans le classpath.
En supposant que vous avez mis vos classes de test dans un dossier distinct, assurez-vous qu'il s'affiche dans la vue "Package Explorer" (plutôt que le "Navigateur" de la vue).
Sous les propriétés du projet, "Java Build Path" et l'onglet "Source", vous pouvez également voir si le dossier source est inclus pour la construction ainsi que de où la .les fichiers de classe sont générés.
Il y en a un plus de possibilité. J'ai eu le même problème tout à l'heure et pas de l'une des solutions ici aidé. À l'exception de la suppression et recréation de ce projet - je n'ai pas envie de l'essayer. Ce qui ne l'aide, a été à propre le projet deux fois immédiatement l'un après l'autre! Clean + de construire peut être répété un nombre quelconque de fois - il ne va pas aider. Ne nettoyez+propre et après que la compilation se passe OK. (Eclipse 3.6). Bien sûr, vous devez désactiver autobuild pour que.
Edit: Ce post a sa dernière plus sur 15.11.2017. Donc, le problème (et la solution) reste réelle.
Un autre problème possible est un manque constructeur (ça va l'empêcher de votre .fichier de classe d'être construit).
Vérifier que votre .fichier de projet a les lignes suivantes
Ce qui m'est arrivé lorsque j'étais en glissant et déposant des classes de test à différents packages. Je viens de faire la suite
Bingo! Je peux maintenant exécuter le test!
J'ai eu ce problème et c'était le genre de difficile à réaliser ce qui était erroné. Le projet avait une dépendance projet avec une erreur, qui a cessé de le construire à partir de l'exécuter. Quand je supprimer ce problème de dépendance, le projet a été construit comme prévu.
Ps.: Je suis en train de travailler sur un projet qui a de nombreuses erreurs de compilation, parce que nous sommes le portage d'une application qui a été converti à partir de Delphi en Java, donc je n'ai pas de soins à l'erreur de compilation au début, c'est pourquoi il m'a fallu un certain temps pour trouver le problème.
vérifier les propriétés->java build path -> les bibliothèques. il devrait y avoir aucune erreur, dans mon cas, il y avait des erreurs dans le maven. une fois j'ai mis le jar requis dans le repo maven, il a bien fonctionné
J'ai essayé toutes les réponses décrites ici, mais aucune n'a fonctionné, mais a trouvé ce fil où slomek résout le problème d'une manière très facile. Il suffit d'aller à projet -> propriétés - > java build path. Puis déplacez Junit vers le haut, appuyez sur la touche en bas à droite. Puis tout se compile très bien.
J'ai essayé tout ce qui est mentionné ici et dans d'autres posts. Certaines des solutions que les gens ont été proposées:
Il y avait beaucoup, beaucoup plus, mais le seul que j'ai trouvé de travail a été comme suit: Fermer l'environnement de développement. Supprimer les pots utilisés pour le projet de mon local repository Maven. Ouvrez l'IDE. Construire le projet. Exécuter le test.
Après des heures de battre ma tête contre mon clavier et à la suite des suggestions de solutions, celui-ci a fonctionné!
ce qui a fonctionné pour moi, c'est de supprimer le runconfiguration de l'épreuve. Ensuite, cliquez-droit sur le testclass et cliquez sur exécuter en tant qu'test junit.
maintenant, il recrée une correcte exécution de config pour moi.
Une autre façon de se dérouler, et qu'ils ont fait pour moi, est que si vous avez une erreur de compilation que Eclipse ne pas vous en parler. Si la compilation de l'unité de test échoue, alors il n'est pas .fichier de classe et vous obtiendrez la ClassNotFoundException.
Dans mon cas, il y avait un manque 3ème partie fichier jar. Quand j'ai couru le test j'ai eu une fenêtre pop-up qui dit "l'existence d'Erreurs dans des projet(s)". Je travaille avec un gros projet et je toujours passer ce message, parce que certains de la source n'est pas disponible pour eclipse (longue histoire). Aussi il ne disent pas ce que les erreurs sont. Donc je clique sur "Continuer" puis-je obtenir de l'exception.
Une fois que j'ai réalisé ce qui se passait, il était facile de corriger en ajoutant le manque jar au classpath sous Exécuter -> Debug Configurations...
Je ne suis pas sûr de savoir comment mieux détecter ou empêcher que cela se passe, sauf à être conscients de cette possibilité lorsque quelque chose va mal et d'examiner les modifications les plus récentes de ce qui pourrait mal tourner.
Êtes-vous sûr de votre classe de test est dans le dossier de création? Vous êtes en invoquant junit dans une autre JVM (fourchette=true) il est donc possible que le dossier de travail serait de changer au cours de l'invocation et de construire avec relative, qui peut causer un problème.
Exécuter ant en ligne de commande (pas de Eclipse) avec -verbose ou -commutateur debug pour voir le détail du classpath /working dir junit est invoquée avec et poster les résultats ici si vous êtes toujours ne peut pas résoudre ce problème.
Une variation sur le type de réponse ci-dessus, auquel d'autres constructeurs. Disons que vous avez une Fourmi constructeur configuré:
Si l'Ant et de l'Éclipse de construire ont différents emplacements de sortie, Eclipse peut ne pas être en mesure de localiser la classe de test sur le chemin de la classe. Dans le cas d'une Fourmi constructeur, vérifiez également la configuration des cibles pour le nettoyage, auto, manuel et de l'après-propre s'appuie, pour s'assurer que la cible qui construit l'unité de test est appelé.
- Je ajouter que cette réponse est mon évaluation de la solution à partir de ci-dessus.
.project
dans le dossier de projet principal. Utiliser un Éditeur XML sinon vous obtiendrez unefatal error
à partir d'Eclipse que les statistiques que vous ne pouvez pas ouvrir ce projet.Java
par l'ajout de cette<nature>org.eclipse.jdt.core.javanature</nature>
à<natures></natures>
.<buildCommand><name>org.eclipse.jdt.core.javabuilder</name><arguments></arguments></buildCommand>
à<buildSpec></buildSpec>
.Run as JUnit
... SuccèsCliquez-droit sur le projet dans l'Explorateur: Build Path -> de l'Ordre et de l'Exportation -> Sélectionnez JRE System Library [jdk] et cliquez sur bouton du Bas.
Encore une autre variation.
En quelque sorte, mon ancien classes de test semble être en cours d'exécution à partir d'un autre emplacement; mes modifications ne seraient pas exécuter quand j'ai couru les tests.
J'ai trouvé que le dossier de sortie pour mon ${project_loc}src/test/java fichiers n'était pas ce que j'attendais. Il avait, par inadvertance été fixé à ${project_loc}target/classes.
Je l'ai installé correctement dans les propriétés du projet, Java Build Path, onglet Source.
Si vous avez un projet maven essayez d'exécuter:
puis dans eclipse clean & à construire votre projet.
J'ai eu le même problème avec mon Eclipse Helios qui débogage Junits. Mon problème était un peu différent car j'ai été en mesure d'exécuter Junits avec succès mais quand j'ai été ClassNotFoundException pendant le débogage de la même JUNITs.
J'ai essayé toutes sortes de différentes solutions disponibles dans Stackoverflow.com et les forums d'ailleurs, mais rien ne semble fonctionner. Après cogner ma tête avec ces questions pendant près de deux jours, j'ai enfin trouvé la solution à ce problème.
Si aucune de ces solutions ne semble fonctionner, il suffit de supprimer le .les métadonnées dossier créé dans votre espace de travail. Cela permettrait de créer une surcharge supplémentaire de l'importation de projets et de toutes sortes de configuration que vous avez fait, mais ce sera certainement résoudre ces problème.
Espère que ces aides.
Dans la vue "Package Explorer", cliquez à Droite sur votre classe de test, puis "Build Path">>"Comprendre", il devrait être OK.
J'ai moi aussi été confrontés à la même exception, aucune des solutions sur internet m'a beaucoup aidé.
mon projet contient plusieurs modules. Mon Junit code réside dans le module Web. Et c'est en se référant au client de code du module.
Enfin , j'ai essayé :
Clic droit sur l' (module Web) projet -->build path--> onglet source--> Lien de la source --> ajout de la src emplacement des fichiers (Client du module)
C'est tout! Il a travaillé comme un charme
Espérons que cela aide
J'ai reçu ce message, car j'ai eu récemment créé un nouvel espace de travail et mon "Installé Jre" n'ont pas été configuré correctement. Assurez-vous que dans
Preferences -> Java -> Installed JREs
le dossier racine de votre JDK est sélectionné. La valeur par défaut pour moi, dans un nouvel espace de travail est un JRE pour une raison quelconque.
Je sais que cela a été déjà répondu il y a longtemps, mais la réponse n'a pas corrigé pour moi, mais, j'ai juste enlevé le tout à partir de sources dans le buildpath paramètres et re-ajouté
J'ai eu ce problème, dans mon cas, le problème réside dans la compilation, je suis à l'aide de maven et de classes de test n'a pas compiler.
J'ai résolu en faisant une maven installer (il compile tous les fichiers), vous pouvez également vérifier pour d'autres raisons, qui évitent de test pour compiler comme si votre "run configurations" est de sauter les tests de gagner du temps.
Maintenant: Vérifier si il n'y a pas d'erreurs, ce qui suggère qu'il peut être un plugin (plugin) qui a quelque chose à voir avec les tests.
Dans mon cas:
Passé quelques heures à essayer de le deviner!.
Assurez-vous que le dossier de sortie dans
Java Build Path
onglet comme indiqué ci-dessous,qui permettrait de déterminer où l' .fichier de classe sont générés.Ensuite, nettoyer le projet.