启动时报错为:
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
解决方案归纳如下:
一、test包和main包下的文件路径不一致
最常见的错误,检查路径名的拼写问题:
二、设置@SpringBootTest(classes=xxx.class)
如果不想修改 test/ 路径,可以额外设置 @SpringBootTest(classes=xxx.class)来告诉 springboot 本注释修饰的类是一个独立的测试类:
@SpringBootTest(classes = TestMapper.class)
public class TestMapper {
...
}
三、拓展:为什么 SpringBoot 一定要求test包和main包下的文件路径一致?
这是因为SpringBoot的默认行为是只会扫描和 Main.class 同包或其子包下的类。如果测试类与主类在(main/和test/的)同一个包下,SpringBoot就能够自动扫描到并加载这些测试类。
如果测试类被放在了不同的包路径下,SpringBoot 扫描不到任何测试类。