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

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

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

总结:

1、如果导入过jar,就充分可以肯定是版本问题,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都加上,或者换成低一点的版本.
4、另有一个会引起此问题的原因是:项目中没有加入Junit单元测试模块;
解决:右键工程->Build Path->Libraries->Add Library..->Junit,将Junit添加进入工程即可

转自:http://blog.csdn.net/houfeng30920/article/details/51373169
感谢!

附上自己的Spring中使用Junit单元测试示例代码

package com.test;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
* @ClassName: JunitTest
* @Description: 测试用主类,其他需要注入Spring容器的测试类均可继承此类
* @author CHB
* @date 2017年9月30日 上午11:03:01
*
 */
@RunWith(value = SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:****/****/****.xml"})
public class JunitTest {
}
package com.test;

import org.junit.Test;
import org.junit.Ignore;
import org.springframework.beans.factory.annotation.Autowired;

/**
* @ClassName: LedaJunitTest
* @Description: 
* 测试方法,继承JunitTest.java;
* 常用注解:@Transactional   //标明此方法需使用事务
* 常用注解:@Rollback(false)  //标明使用完此方法后事务不回滚,true时为回滚,
* 一般在测试操作数据库时使用,防止数据库数据混乱
* @author CHB
* @date 2017年9月30日 上午11:04:49
*/
public class LedaJunitTest extends JunitTest{

    @Autowired 
    //注入的bean

    @Test
    public void test(){
        //具体测试方法
    }
    @Test
    @Ignore //执行时,忽略此测试方法
    public void test_1(){
        //具体测试方法
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值