junit 出现异常: java.lang.NoClassDefFoundError: org/junit/runner/Describable,junitdescribable,在使用junit测试异常
分享于 点击 10643 次 点评:29
junit 出现异常: java.lang.NoClassDefFoundError: org/junit/runner/Describable,junitdescribable,在使用junit测试异常
在使用junit测试异常时出现异常, 测试代码如下:
@Test(expected = IllegalArgumentException.class) public void testGetTemplate() { ... test code }
异常信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/Describable 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.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.requests.ClassRequest.getRunnerClass(ClassRequest.java:41) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:23) at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:23) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:41)Disconnected from the target VM, address: '127.0.0.1:50659', transport: 'socket' at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)Caused by: java.lang.ClassNotFoundException: org.junit.runner.Describable
这个问题的解决方法是,将junit 的jar包放到项目的classpath中,操作步骤如下:
打开文件菜单,找到Project structure然后选中project settings下面的Libraries, 在右边添加junit的jar包,如下图所示:然后重新执行测试就可以正常了。
用户点评