method initializationerror not found:JUnit4单元测试报错问题

今天使用JUnit 4进行单元测试时,测试程序一直运行不起来,报method initializationerror not found错误,如下:

 

         网上说版本不对,我试了试,还是有这个问题,后来才知道,缺少了jar包,除了引入junit-4.12.jar之外,还要引入2个依赖jar包:hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar,提供大家免费的下载链接:

junit-4.12.jar下载

hamcrest-library-1.3.rc2.jar下载

hamcrest-core-1.3.rc2.jar下载

       导入这些jar包之后,问题游刃而解,是的,我承认自己也是JUnit新手吐舌头

       至于JUnit的jar包和hamcrest的jar包关系,下边我引用一位网友的几段话来解释解释:

junit和hamcrest是两个不同的框架,不同的东西。只不过是junit使用了hamcrest框架而已。

在junit上下载的junit的包解压开见下图:



刚下载的JUnit的jar包解压开的文件。

junit-4.10.jar  :包含junit-dep-4.10.jar全部内容和必要的harmcres的包,

junit-4.10-src:是源代码,但不包含org.harmcres.*相关的源代码(在图中temp.hamcrest.source中)。

junit-dep-4.10.jar :是junit的包,不含harmcres的相关的类,import此包还需引入harmcres相关的包。


下载到关于hamcrest的相关的一系列的包(如果是Java就下载jar的包)


hamcrest-all-1.3.ORC2.ajr:几乎包含所有的hamctest的类(没有验证过)。

hamcrest-core-1.3.ORC2.jar:hamcrest的核心包,使用hamcrest框架必须引入的包。(junit官方给的包就包含了该包)

hamcrest-library-1.3.ORC2.jar:包含各种断言,补充hamcrest core包中的断言。


使用是导入包的方案:junit.jar + hamcrest-core.jar + hamcrest-library.jar

或者是:junit-dep.ajr+hancrest-all.jar

这两种导入方法虽然尽量避免了导入重复的包,但使用时还是遇到了冲突。查看包中各类和文档后发现有些类(例如:断言is())同时出现在了org.hamcrest.Mathchers和org.hamcrest.core中,则在用到时候引入的时候需要注意。



虽然并不是完全正确的,但是这个问题还是需要记下来的,我的解决方案是Jar包版本冲突。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值