En exécutant le junit
test eclipse
, j'obtiens ceci Exception
:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
J'ai ajouté un junit.jar
fichier de bibliothèque.
J'ai essayé différentes versions de junit.jar: 4.4
, 4.8
, etc.
Comment résoudre cette exception?
junit.jar
n'est pas lié au problèmeharcrest
bocal, la hiérarchie est-elle la même? comme dansorg > hamcrest > SelfDescribing
, ou est-il dans le dossier racine du fichier jar?Réponses:
Ajoutez
hamcrest-all-X.X.jar
à votre chemin de classe .La dernière version en février 2015 est la 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=
la source
hamcrest-all-X.X.jar
est suffisant alors que beaucoup plus petit.Selon le site Web de l'équipe JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install ),
junit.jar
ethamcrest-core.jar
sont tous deux nécessaires dans le chemin de classe lors de l'utilisation de JUnit 4.11.Voici le bloc de dépendance Maven pour inclure junit et hamcrest.
la source
Quelques étapes à suivre:
la source
Fonctionne pour moi: IntelliJ IDEA 13.1.1, JUnit4, Java 6
J'ai changé le fichier dans le chemin du projet: [PROJECT_NAME] .iml
Remplacé:
Par:
Le fichier .iml final est donc:
PS: enregistrez le fichier et ne laissez pas IntelliJ Idea le recharger. Juste une fois.
la source
Vous avez besoin de junit-dep.jar car le junit.jar a une copie des anciennes classes Hamcrest.
la source
Ce problème est dû à votre chemin de classe miss hamcrest-core-1.3.jar. Pour résoudre ce problème, ajoutez hamcrest-core-1.3.jar lorsque vous ajoutez junit-4.XX.jar dans votre chemin de classe.
Au début, je rencontre aussi ce problème, mais après avoir consulté le site officiel et ajouté hamcrest-core-1.3.jar dans le chemin de classe avec la ligne de commande, cela fonctionne enfin correctement.
la source
En règle générale, assurez-vous toujours que hamcrest est avant toute autre bibliothèque de test sur le chemin de classe, car beaucoup de ces bibliothèques incluent des classes hamcrest et peuvent donc entrer en conflit avec la version hamcrest que vous utilisez. Cela résoudra la plupart des problèmes du type que vous décrivez.
la source
Juste au cas où quelqu'un utiliserait netbeans et aurait le même problème, tout ce que vous avez à faire est
Cela devrait résoudre le problème
la source
Vous devez ajouter le JAR hamcrest-core au classpath comme décrit ici: https://github.com/junit-team/junit4/wiki/Download-and-Install
la source
Cela ressemble à un problème de chemin de classe, il y a donc plusieurs façons de procéder. D'où vient org / hamcret / SelfDescribing? Est-ce votre classe ou dans un pot différent?
Essayez d'accéder au chemin de construction de votre projet et dans l'onglet Bibliothèques, ajoutez une bibliothèque. Vous devriez pouvoir choisir JUnit pour votre projet. C'est un peu différent du simple fait d'avoir le fichier jar JUnit dans votre projet.
Dans votre configuration d'exécution pour le test JUnit, vérifiez le Classpath. Vous pouvez probablement résoudre ce problème en ajoutant en vous assurant que votre Classpath peut voir cette classe SelfDescribing. L'option Exécuter dans Eclipse a un ensemble d'options différent pour les options JUnit.
la source
Si ce problème survient dans un projet RCP, cela peut être dû au fait que JUnit a été importé explicitement.
Vérifiez l'éditeur de votre
plugin.xml
sous-Dependencies
onglet, supprimez leorg.junit
des packages importés et ajoutez-leorg.junit
aux plug-ins requis.la source
Le problème est lorsque vous configurez eclipse pour qu'il pointe vers JRE au lieu de JDK . JRE a
junit4.jar
dans lelib/ext
dossier, mais pashamcrest.jar
:) La solution est donc de vérifier les JRE installés dans Eclipse, de supprimer l'existant et d'en créer un nouveau pointant vers votre JDK .la source
le moyen le plus simple de résoudre le problème est de copier la dernière version de hamcrest-code.jar dans votre CLASSPATH, c'est-à-dire le fichier que vous stockez les autres fichiers .jar nécessaires à la compilation et à l'exécution de votre application.
cela pourrait être par exemple: C: / ant / lib
la source
Cela se produit lorsque vous exécutez Ant via la ligne de commande. Les dépendances utilisateur implicites sont ajoutées dans le chemin de classe à la fin et ont priorité sur le chemin de classe ajouté au projet. Exécutez Ant avec le
-nouserlib
drapeau. Les dépendances implicites seraient exclues du chemin de classe.la source
Il existe une meilleure réponse pour résoudre ce problème. ajouter une dépendance
la source
J'ai eu le même problème, la solution est d'ajouter dans le chemin de construction / plugin le jar org.hamcrest.core_1xx, vous pouvez le trouver dans eclipse / plugins.
la source
Quelques étapes à suivre:
Cela fonctionne pour moi ...
la source