web-dev-qa-db-fra.com

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing dans Intellij

J'ai utilisé Intellij Idea 12 Community Edition. J'essaie de créer un scénario de test pour ma classe en créant un scénario de test. Quand je lance mon cas de test, il est dit 

Java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClassCond(ClassLoader.Java:631)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:615)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:141)
    at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:283)
    at Java.net.URLClassLoader.access$000(URLClassLoader.Java:58)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:197)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:306)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:247)
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.Java:10)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.Java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.Java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.Java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.Java:26)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.Java:44)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.Java:195)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.Java:63)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:120)
Caused by: Java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:306)
    at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:247)
    ... 25 more

Comment pourrais-je lancer un cas de test dans Intellij. J'ai inclus le fichier jar junit4.11 à mon module

27
jackyesind

Avez-vous inclus le fichier hamcrest-core-1.3.jar dans votre chemin de classe? Si non inclus, cela signifie inclure ce bocal et réessayer.

51
muthu

ajoutez junit.jar à votre dépendance au projet . vous devrez peut-être aussi ajouter hamcrest.jar.

Ouvrez Fichier-> Structure du projet, cliquez sur Modules-> Dépendances, ajoutez junit.jar.

12
bowman han

La dernière version de hamcrest-all est disponible sur: https://search.maven.org/search?q=a:hamcrest-all

Téléchargez cette version (par opposition au hamcrest-core) et cela devrait le faire.

1
Fabrice Guillaume

Si vous rencontrez cette erreur (et quelques autres threads) avec cette erreur et que l'ajout du fichier jar aux dépendances ne fonctionne pas, vous devrez l'ajouter au chemin de classe Java général.

J'ai rencontré cette erreur dans OSX où maven téléchargerait la dépendance, mais ne la trouverait pas en mode fork. 

L'ajout de tous les fichiers hamcrest à Library/Java/Extensions a finalement résolu le problème alors que rien d'autre ne le ferait.

1
Rampant