解决Spring TestContext下运行JUnit4抛错(java.lang.NoClassDefFoundError)的问题

来源:互联网 发布:淘宝买家手机号码出售 编辑:程序博客网 时间:2024/06/06 08:25

Spring版本2.5.5,JUnit 版本 4.8.1,使用了Spring TestContext 的 SpringJUnit4ClassRunner。一直使用这个版本的JUnit,在写简单的测试时不会抛错,直到今天开始尝试写规范的JUnit测试代码,抛出了如下的错误:

Plain代码 复制代码 收藏代码
  1. java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException
  2. at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod( SpringMethodRoadie.java:240)
  3. at org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run( SpringMethodRoadie.java:333)
  4. ...

Java代码 复制代码 收藏代码
  1. Caused by: java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException
  2. at java.net.URLClassLoader$1.run( URLClassLoader.java:202 )
  3. at java.security.AccessController.doPrivileged( Native Method )
  4. at java.net.URLClassLoader.findClass( URLClassLoader.java:190 )
  5. ... 17 more

找了下网上的资料[1,2],这属于 Spring 与 JUnit 版本不兼容导致的。解决方法:

修改JUnit 的版本至 4.4

---------------------------------------------------------------------------------------

[1]http://forum.springsource.org/showthread.php?60230-spring-test-breaks-in-Junit-4-5

[2]https://jira.springsource.org/browse/SPR-5145

原创粉丝点击