maven中initializationError [runner:Junit4]的解决方案
这个错误我弄了一两个小时,在网上查了很久,听大神说是缺少hamcrest-core-1.3.jar和hamcrest-library-1.3.jar。但是我两个都导入了,还是出错了。
还有我频繁更换junit版本,用过4.9、4.10、4.12还是不见成效。
1、使用4.9版本查阅资料说要和hamcrest-core-1.3.jar包一起运行,我仔细看了一下,maven导入4.9junit包之后自动会引进依赖hamcrest-core-1.1.jar,其实可以不用在导入hamcrest-core包了。
2、使用4.12版本时,需要junit4.12+hamcrest-core-1.3.jar+hamcrest-library-1.3.jar三个包同时运行。maven导入junit4.12后maven自动会引进依赖hamcrest-core-1.3.jar,只需要在导入hamcrest-library-1.3.jar即可。**以上工作我都做了,但是junit测试还是报错。
**
然后我仔细检查了代码,发现该导的包都导了,@Test注解也都加了,在检查方法
修饰符是public,返回值是void,没带参数,方法体也没问题。但是还是出错,我都有绝望了。
maven导入junit4.9
maven导入junit4.12
但是我查阅资料的时候,出现了一些转机。我重新更新一下maven,然后进行maven install时意外有了收获。出现了这个错误。
这个时候我发现了问题了,然后我上网查阅资料,是缺少了日志相关的jar包,然后我直接在项目中导入slf4j-log4j12的jar包,maven自动引入其他的依赖项log4j、slf4j-api。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.22</version>
</dependency>
然后我的maven项目就测试成功了。
其实在运行出错的时候也可以发现,控制台下面红色圈那里感觉少了一些什么,其实就是测试的输出日志。
所以junit测试时的时候,不要忘记导入日志包。我写这些仅供参考,希望能帮助到人吧。