J'obtiens cette erreur lors de l'exécution du test JUnit dans Eclipse:
Class not found com.myproject.server.MyTest
java.lang.ClassNotFoundException: com.myproject.server.MyTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
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)
J'ai essayé d'ajouter une JUnit
bibliothèque dans le chemin de classe bien que j'utilise maven, et la bibliothèque JUnit est dans la dépendance POM.
J'ai déjà essayé de nettoyer le projet et créé un nouveau cas de test JUnit à l'aide du plugin JUnit pour Eclipse, en obtenant toujours la même erreur.
mvn clean test
une fois qu'il compilera toutes les classes de testRéponses:
Cela semble se produire parce que seul le code source est en cours de compilation lorsque vous utilisez
mvn clean compile
(j'utilise maven 3.1.0 donc je ne suis pas sûr qu'il se comporte toujours comme ça).Si vous exécutez
mvn test
, le code de test se compilera également, mais ensuite il exécute les tests (ce qui peut ne pas être immédiatement souhaitable si vous essayez de les exécuter via Eclipse.) La solution consiste à ajoutertest-compile
à votre séquence de commandes Maven à chaque fois vous faites unmvn clean
. Par exemple, vous exécuteriezmvn clean compile test-compile
.la source
J'ai eu un problème similaire avec mes tests et j'ai trouvé quelque part sur le Web que vous devez accéder au chemin de construction dans les propriétés de votre projet et déplacer les dépendances Maven au-dessus de la bibliothèque système JRE . Cela semble avoir fonctionné pour moi.
la source
J'ai rencontré le même problème et j'ai pu le résoudre en utilisant la réponse de @ slomek, mais le problème a refait surface après cela.
Je l'ai finalement corrigé en ajoutant le dossier de sortie de mon projet à la configuration d'exécution du test JUnit. Les étapes sont:
Project properties -> Java Build Path -> Default output folder
<project-folder>/bin
Run -> Run Configurations...
Classpath
ongletUser Entries
- même si le projet y est déjà inclusAdvanced -> Add folder
pour ajouter le dossier de sortieCe problème peut être dû à une configuration de projet étrange dans Eclipse - par exemple, un dossier source avec des projets maven imbriqués importés en tant que projet / dossier unique (du moins, c'était ainsi que mon projet était configuré).
la source
Si ce problème se produit dans Eclipse uniquement, l'exécution de la commande Projet -> Nettoyer ... sur le projet sélectionné peut aider.
la source
Après avoir tout essayé ici sans amélioration, j'ai résolu mon problème en redémarrant simplement Eclipse
la source
J'ai résolu mon problème en exécutant la mise à jour maven. Cliquez avec le bouton droit sur projeter votre projet> Maven> Mettre à jour le projet
la source
Dans mon cas, j'avais une mauvaise structure de répertoire maven.
Ce qui devrait être comme:
/ src / test / java / com.myproject.server.MyTest
Après avoir réglé cela - tout a fonctionné comme un charme.
la source
Dans mon cas, seules les étapes suivantes m'ont aidé à résoudre ce problème:
la source
Plus tôt, dans ce cas, j'ai toujours fait mvn
eclipse:eclipse
et redémarré mon Eclipse et cela a fonctionné. Après la migration vers GIT, cela a cessé de fonctionner pour moi, ce qui est un peu étrange.Le problème de base ici est que M. Eclipse ne trouve pas la classe compilée. Ensuite, j'ai défini le dossier de sortie comme Project / target / test-classes qui est généré par défaut par
mvn clean install
sans sauter le test et j'ai procédé à la solution de contournement suivante:Option 1: définir le chemin de classe pour chaque scénario de test
Eclipse -> Exécuter -> Exécuter les configurations -> sous JUnit-> sélectionner mon test -> sous l'onglet chemin de classe-> Sélectionner les entrées utilisateur-> Avancé-> Ajouter un dossier -> Sélectionner -> Appliquer-> Exécuter
Option 2: créer une variable classpath et l'inclure dans classpath pour tous les cas de test
Eclipse -> Windows -> Variables de chemin de classe -> Nouveau -> [Nom: Junit_test_cases_cp | chemin:] -> ok Ensuite, allez dans Eclipse-> Exécuter -> Exécuter les configurations -> JUnit-> sélectionnez mon test -> sous l'onglet chemin de classe -> Sélectionnez les entrées utilisateur-> Avancé-> Ajouter des variables de chemin de classe-> Sélectionnez Junit_test_cases_cp-> ok- > Appliquer-> Exécuter
C'est la seule chose qui fonctionne actuellement pour moi après avoir essayé toutes les suggestions en ligne.
la source
J'ai eu le même problème avec un projet Gradle avec un SourceSet de test avec deux répertoires de ressources.
Cet extrait de code provient d'un main-module.gradle et ajoute un répertoire de ressources au SourceSet de test:
Pour ce faire, j'avais deux répertoires de ressources liés au test SourceSet du module principal du projet:
../other-module/src/test/resources src / test / resources (relatif au dossier du module principal, automatiquement ajouté par le plugin java)
Je découvre que si j'avais deux fichiers avec le même nom dans les deux répertoires source, quelque chose dans l'étape des ressources de processus s'est mal passé. En conséquence, aucune compilation n'a commencé et pour cette raison aucun .class n'a été copié dans le répertoire bin, où JUnit recherchait les classes. L'exception ClassNotFoundException a disparu en renommant simplement l'un des deux fichiers.
la source
NoClassDefFoundError signifie vraiment qu'il ne peut pas initialiser la classe. Cela n'a rien à voir avec la recherche de la classe. J'ai eu cette erreur lors de l'appel de trim () sur une chaîne nulle.
JUnit n'affichera pas NullPointerException. La chaîne n'est pas nulle lorsqu'elle est exécutée normalement car je récupère la chaîne à partir d'un fichier de propriétés qui n'est pas disponible pour les tests.
Mon conseil est de retirer des morceaux de la classe jusqu'à ce que vos tests commencent à réussir. Ensuite, vous pouvez déterminer quelle ligne donne l'erreur.
la source
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 pu exécuter Junits avec succès, mais lorsque j'obtenais ClassNotFoundException lors du débogage des mêmes JUNIT.
J'ai essayé toutes sortes de solutions différentes disponibles sur Stackoverflow.com et sur les forums ailleurs, mais rien ne semble fonctionner. Après m'être cogné la tête avec ces problèmes pendant près de deux jours, j'ai finalement trouvé la solution.
Si aucune des solutions ne semble fonctionner, supprimez simplement le dossier .metadata créé dans votre espace de travail. Cela créerait une surcharge supplémentaire pour l'importation des projets et de toutes sortes de configurations que vous avez effectuées, mais celles-ci résoudront sûrement ces problèmes.
J'espère que cela aide.
la source
Ces étapes ont fonctionné pour moi.
la source
1- Éclipse mvn: éclipse
2- projet nettoyer tous les projets
3- redémarrer
la source
Il convient de mentionner comme autre réponse que si vous utilisez eGit et que votre chemin de classe est mis à jour à cause, par exemple, d'un outil de couverture de test comme Clover, il y a parfois un hoquet de nettoyage qui ne supprime pas complètement le contenu de
/path/to/git/repository/<project name>/bin/
Essentiellement, j'ai utilisé la vue du journal des erreurs d'Eclipse, identifié ce qui causait des problèmes pendant cet effort de nettoyage, navigué vers le répertoire source et supprimé manuellement le
<project name>/bin
répertoire. Une fois cela terminé, je suis retourné à Eclipse etF5
j'ai actualisé ( ) mon projet et l'erreur a disparu.la source
Vérifiez si votre projet est ouvert en tant que projet Maven et pas seulement en tant que projet Java standard. En fait, une évidence, mais c'est exactement la même raison pour laquelle vous pourriez le manquer.
la source
Cela peut également être dû à "[ERREUR] Aucun compilateur n'est fourni dans cet environnement. Peut-être que vous utilisez un JRE plutôt qu'un JDK?"
la source
J'avais fait face au même problème. Je l'ai résolu en supprimant la dépendance externe JUnit jar que j'ai ajoutée par téléchargement à partir d'Internet en externe. Mais ensuite je suis allé à projet-> propriétés-> chemin de construction-> ajouter une bibliothèque-> junit-> choisi la version (ex junit4) -> appliquer.
Il a automatiquement ajouté la dépendance. cela a résolu mon problème.
la source
Faire des modifications factices et enregistrer la classe de test peut résoudre le problème. Il construira le .class automatiquement
la source
Il semble problème de compilation. Exécutez le projet en tant que test Maven, puis Exécuter en tant que test JUnit.
la source
Pour un projet qui n'utilise pas maven: Cela a fonctionné pour moi https://ihategeek.wordpress.com/2012/04/18/eclipse-junit-test-class-not-found/
Ajout du jre et du projet src en bas dans Order et exporte dans le chemin de construction
la source
Veuillez vérifier si vous avez ajouté junit4 en tant que dépendance.
par exemple
la source
Vous avez peut-être oublié de placer la classe Main et la classe Test Case dans / src / test / java. Vérifiez-le une fois.
la source