Java.lang.NoClassDefFoundError: org / hamcrest / SelfDescribing in Intellij

J'ai utilisé Intellij Idea 12 Community edition. J'essaie de créer un cas de test pour ma classe en créant un cas de test. Quand j'exécute 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 exécuter le cas de test dans Intellij. J'ai inclus le fichier JAR junit4.11 dans mon module

27
demandé sur Pete B. 2013-07-11 17:18:54

3 réponses

Avez-vous inclus le fichier hamcrest-core-1.3.jar dans votre classpath? Si non inclus signifie inclure ce pot et essayer une fois de plus.

50
répondu muthu 2014-07-30 18:07:31

Ajouter junit.jar à votre dépendance du projet. vous devrez peut-être également ajouter hamcrest.bocal en plus.

Ouvrez fichier - > structure du projet, cliquez sur Modules- > dépendances, ajoutez junit.pot.

12
répondu bowman han 2014-10-14 08:57:07

Si vous rencontrez ceci (et quelques autres threads) sur cette erreur et que l'ajout du jar aux dépendances ne fonctionne pas, vous devrez ajouter au classpath 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 jars hamcrest à Library / Java / Extensions a finalement résolu le problème quand rien d'autre ne le ferait.

1
répondu Rampant 2016-03-30 16:12:22