现象
使用spring boot 2
运行单元测试时,爆出如下错误:
原因
在springboot2
中默认单元测试框架升级到了junit5
,当我们在导入@Test
注解时会导入下面的包:
import org.junit.jupiter.api.Test;
如果你再加上@RunWith(SpringRunner.class)
或者@RunWith(SpringJUnit4ClassRunner.class)
注解,
spring会去找junit4的注解,但是又找不到,就会产生这个问题。
解决方案
针对这个问题有两种解决方式:
-
注解不变,将导入的
org.junit.jupiter.api.Test
换成org.junit.Test
。 -
导入的包不变,移除
@RunWith(SpringRunner.class)
或者@RunWith(SpringJUnit4ClassRunner.class)
注解,只保留
@SpringBootTest
即可。
只保留@SpringBootTest
即可。