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 {
}