[Java] SpringBoot 报错:Unable to find a @SpringBootConfiguration

406 阅读1分钟

启动时报错为:

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

解决方案归纳如下:

一、test包和main包下的文件路径不一致

最常见的错误,检查路径名的拼写问题: image.png

二、设置@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 扫描不到任何测试类。