【开发环境】SpringBoot+Mybatis,开发工具IDEA
【问题场景】
在做Test单元测试的时候出现了这样的异常情况;
【异常信息】
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Context
开发工具上也提示如图这样的红色标识;
【问题分析】
出现这个异常的原因有两种情况:1、没有启动类文件;2、启动类文件和测试类文件不在同样的包路径下;
第一种情况:没有启动类文件基本不可能,因为项目在创建的时候肯定会写这个启动类文件,检查一下在main路径下是否有启动类文件,如果没有则可能是删除文件夹的时候不注意删掉了;
所以必要提示:在写项目的时候删除任何文件或者文件夹都要备份一份要删除的东西,如果删错了可以重新找回;否则真的删错了辛苦写了一周的代码,一下子就全没了,哭死的心都有;
删除文件之前要备份!!!
第二种情况:第二种情况文件路径不一致的可能性非常大,建议先检查一下;
在main路径下的StoreApplication文件和在test路径下的StoreApplicationTests文件,这两个文件的路径名称要一致,路径一致测试类才能找到启动类进行测试,否则就会出现这样的异常情况。
正常情况下是一致的,如果自己更改过文件夹名称或者删除过某些文件夹就会出现不一致的情况,所以删除文件夹要慎重,慎重!!!
【解决问题】
如果文件路径不一致,找到对应的文件,将两个文件放在相同的路径下即可,一个在main路径下,一个在test路径下,在main和test给根目录下的文件路径要完全一致;
如果没有 StoreApplication启动类文件,那自己手动敲一份;文件内容很简单,类似如下内容
import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * 【解释】 * @MapperScan("com.cy.mapper") 这个注解的意思是在项目启动的时候自动加载所有的mapper接口文件,括号里面是接口的包的路径 */@SpringBootApplication@MapperScan("com.cy.store.mapper")public class StoreApplication { public static void main(String[] args) { SpringApplication.run(StoreApplication.class,args); }//main}//class