Spring项目用junit 时出现org.junit.runners.BlockJUnit4ClassRunner cannot be resolved(转)

spring框架项目用junit做测试时,程序在自动编译时出现下述问题:

 程序的问题是项目中找不到org.junit.runners.BlockJUnit4ClassRunner,有两种可能,一是没有导入junit的jar, 二是导入的junit的jar的版本中没有此类。

1、首先确认是否导入jar包


 
2、既然Jar已导入,那就上junit官网看看现在junit的版本



 

总结:

1、充分可以肯定是版本问题,junit换一个高一些的版本,问题解决。

 

2、经过调查了解到Spring3提供了SpringJUnit4ClassRunner基类让我们可以很方便的接入JUnit4,而org.springframework.test.context.junit4.SpringJUnit4ClassRunner 继承了org.junit.runners.BlockJUnit4ClassRunner,这里BlockJUnit4ClassRunner类是在junit4.5以上的版本才含有的。


3、使用junit4.11版本时,官网里是要求junit-4.11.jar + hamcrest-core-1.3.jar,如果不加hamcrest-core-1.3.jar会报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误。如果用4.11版本需要两个Jar都加上,或者换成低一点的版本,下面共享的文件里提供了 junit4.7 版本。 



 
 
温馨提示:junit-4.11的jar包已共享,共享文件包括junit的jar包、源代码、文档。

百度网盘:链接:http://pan.baidu.com/s/1mgvFIje 密码:8ssf

2017-12-27更新
自己也遇到这个问题了,按照上面的解决方法不行,自己用的maven导入的是junit4.12后来自己经过调试后发现,是版本问题,改为4.11后没有问题了,代码如下

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml" })
public class BaseTest {
}
posted @ 2017-12-27 10:03  星朝  阅读(1172)  评论(0编辑  收藏  举报