
大家有没有遇到过这种情况,自己从网上拉取了一个开源项目代码,拉取下来后先将代码整体浏览了下,然后想跑下代码中自带的单元测试进行debug下,但是此时就突然报了一个奇怪的异常: org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader
然后根据错误信息去网上一顿查询,并且根据好几个博客进行修改,但最终还是无法修复异常;一时让人苦恼,真他喵的烦 [::>_<::]
不再啰嗦了,直接进入主题:出现这个问题时,应该怎么修改;
本文主线:
①、出现问题时的项目环境
②、出现此错误的原因
③、此问题的解决方案(两种方案)
开发工具:IntelliJ IDEA 2017.1
代码框架:SpringBoot
单元测试:junit5
「开始时测试类如下:」

通过查阅资料得知,由于单元测试时使用的是 org.junit.jupiter.api.Test ,而这个模块是Junit5才有的,并且Junit官网对这个模块使用有一定的要求, 也就是IDEA的版本必须要是 2017.3及以后的 ,但是我使用的是 2017.1 版本的IDEA,所以就出现此问题了;

官网地址:https://junit.org/junit5/docs/current/user-guide/#running-tests-ide
方案一:
通过上面的描述的错误原因得知,主要是IDEA的版本过低,我们可以直接升级IDEA,升级到 2017.3及以后的版本即可;
但是如果不想费时升级IDEA的话,可以通过下面这种方法对代码进行修改即可;
方案二:
通过出现的原因得知,是由于低版本的IDEA使用Junit5导致的,可以不使用Junit5了,直接使用支持的 Junit4 呀;
「修改步骤:」
1、首先将POM.xml文件中的 spring-boot-starter-test 依赖中的junit-jupiter-api 排除掉:
2、然后在 POM.xml文件中的 导入 junit4 的依赖;
3、此时修改告一段落,但是如果你的测试方法中,需要使用到 依赖注入的注解 时,此时就需要对测试方法进一步修改,修改成如下:
-
在测试类上加入@RunWith注解
-
将@Test注解改为使用junit4

4、注意:测试类和测试方法需要都设置为被 public 修饰;
如果本文对您有帮助的话,请挥动下您爱发财的小手点下赞呀,您的支持就是我不断创作的动力,谢谢啦!
您可以微信搜索 【木子雷】 公众号,大量Java学习干货文章,您可以来瞧一瞧哟!

版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/52086.html