今天爱分享给大家带来java.lang.NoSuchMethodError: org.junit.platform.commons.util.ReflectionUtils【解决办法】,希望能够帮助到大家。
报错信息:java.lang.NoSuchMethodError: org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader
报错截图
报错原因:原因在于 pom.xml 的依赖
看控制台输出第5行,有个错误信息 at com.intellij.junit5.JUnit5IdeaTestRunner.createListeners(JUnit5IdeaTestRunner.java:39),会发现 idea 正在尝试使用 JUnit5 运行测试。
解决方案
解决方案一:升级 idea 版本。(如果 idea 版本低于2017.3版本,则升级)
把 pom.xml 里的 test 依赖去掉(我的是引入了 spring-boot-starter-test 依赖,就把这个依赖去掉了),加入 JUnit5 依赖。但是还是不行,经过百度,可能是idea版本过低的原因(官方推荐2017.3以后版本,之前的版本不支持 JUnit5)。
解决方案二:使用 JUnit4。(该方法已验证,可以使用。)
修改 pom.xml。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <!--<exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions>--> </dependency>
修改测试类。增加 RunWith 注解,引入 org.junit.Test。
然后就可以访问地址测试了。