错误:
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute(Lorg/junit/platform/launcher/LauncherDiscoveryRequest;)V
环境:
idea 2017.1.3
springboot2.2.4
数据库连接驱动使用的 com.mysql.cj.jdbc.Driver
单元测试的时候报了这个错误,
方案一:查询得到可能是idea版本问题,使用springboot.2.2.4单元测试的时候使用的是juit5,官网提示需要idea2017.3版本以上,但是因为没试过idea升级会不会造成idea那些配置都需要重新配置,懒得麻烦,所以就没使用这个方案.
方案二:降低springboot的版本,个人使用2.0.5.RELEASE,降低版本后注意mysql驱动就需要改成com.mysql.jdbc.Driver,不然会报另外一个错,其实这个时候编译就会有问题,当时没看直接单元测试才发现.然后原来使用2.2.4版本的单元测试类不是public的,不改前控制台会提示这个问题,然后我改成public的就是了.还有一个需要注意,降低版本后单元测试类需要加上
@RunWith(SpringRunner.class)
因为2.2.4自动生成的单元测试类是没有这个的.该方案亲测有用
方案三:有查到另外博客说是junit-jupiter-api这个依赖会影响,但是我的没有使用该依赖,所以该方法没试过,具体链接https://www.bbsmax.com/A/xl56poK0zr/
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>