使用Spring测试框架TestContext的问题:java.lang.NoClassDefFoundError: org/junit/Assum$Assum
SSh整合后,使用Spring的TestContext测试框架,出现如下问题,这怎么解决啊,奇怪的是我第一次测试的时候没问题的,从第二次开始就出现这样的问题了。望高手帮忙啊。java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException
at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:240)
at org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333)
at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217)
at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197)
at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:54)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:52)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 18 more
spring版本:2.5.6
hibernate版本:3.3.2
struts版本:2.1.8 --------------------编程问答-------------------- 怎么没人回啊,大牛们,帮帮我啊。 --------------------编程问答-------------------- 没有导入junit包吧? --------------------编程问答--------------------
导入了啊,这是绝对的。 --------------------编程问答-------------------- 学习! --------------------编程问答-------------------- java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException
Assume$AssumptionViolatedException
定义了类部类?
--------------------编程问答--------------------
没有啊。 --------------------编程问答-------------------- 好像spring的测试框架需要junit4.4版本以上的包 你确定junit的版本是堆的
--------------------编程问答--------------------
junit4.8 --------------------编程问答-------------------- Spring2.5的Sring-Test对于JUnit有个累人的要求,JUnit的版本必须是4.4,不支持高版本(如4.5、4.7等)。否则,会产生java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException异常。
解决方式:
(1)你用的是Spring2.5,则必须换成junit-4.4.jar
(2)将Spring升级至Spring3
参考:http://teddywang.javaeye.com/blog/652215
--------------------编程问答-------------------- 我也遇到过楼主的问题把那个测试类改成public abstract class UserDAOTest extends AbstractJUnit4SpringContextTests{
abstract 的就不报这个错了。。。
补充:Java , Java EE