Eclipse中的Junit测试失败了java.lang.NoClassDefFoundError:org / hamcrest / SelfDescribing

时间:2014-06-21 02:14:43

标签: java eclipse junit

我的测试运行正常,但后来我不得不重新安装Eclipse。现在,即使是最简单的测试也会因以下错误而失败:

java.lang.NoClassDefFoundError:org / hamcrest / SelfDescribing

我已经尝试在回答类似问题时遵循建议,但我无法解决错误。我已经将Jun​​it库添加到项目中,我尝试将junit-4.11.jar和junit-4.10.jar添加到类路径中,并且我尝试将hamcrest-core-1.3.jar添加到类路径中。

我在运行OS 10.9且Mac版本为“1.6.0_65”的Mac上使用Eclipse 4.3.2

以下是Eclipse的跟踪:

  

java.lang.NoClassDefFoundError:org / hamcrest / SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)at java.lang.ClassLoader.defineClass( ClassLoader.java:621)java.net.URLC中的java.securityClassLoader.defineClass(SecureClassLoader.java:141)java.net.URLClassLoader.defineClass(URLClassLoader.java:283)javalc.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 sun.misc。在org.junit.internal.builders的java.lang.ClassLoader.loadClass(ClassLoader.java:247)的java.lang.ClassLoader.loadClass(ClassLoader.java:306)中的Launcher $ ExtClassLoader.findClass(Launcher.java:229) .JUnit4Builder.runnerForClass(JUnit4Builder.java:10)位于org.junit.internal.builders.All的org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) DefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)at org位于org.eclipse.jdt.internal的org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference。(JUnit4TestClassReference.java:25)的.eclipse.jdt.internal.junit4.runner.JUnit4TestReference。(JUnit4TestReference.java:33)。 org.eclipse.jdt.internal.junit.runner上的org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)中的.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) 。在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run的org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)的.RemoteTestRunner.runTests(RemoteTestRunner.java:452) (RemoteTestRunner.java:390)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) by:java.lang.ClassNotFoundException:org.hamcrest.SelfDescribe 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 sun.misc.Launcher $ ExtClassLoader.findClass(Launcher.java:229)at java.lang.ClassLoader.loadClass(ClassLoader.java:306)at java.lang.ClassLoader.loadClass(ClassLoader.java) :247)......另外25个

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:1)

尝试在类路径中添加hamcrest-all-1.3.jar

答案 1 :(得分:0)

我能够通过确保运行配置在bootstrap类路径中具有hamcrest-all-1.3.jar来解决我的问题