java.lang.IllegalStateException Unable to find a @SpringBootConfiguration代码报错

£神魔★判官ぃ 2023-10-12 22:26 67阅读 0赞

文章目录

  • 一. 问题场景
  • 二. 报错原因
  • 三. 解决方案

在这里插入图片描述


一. 问题场景

使用idea基于springBoot的项目进行单元测试时,出现异常,如下所示:

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

在这里插入图片描述

二. 报错原因

该测试类在运行时找不到启动类,所以报错

三. 解决方案

①检查项目中有没有写启动类,如果没写,赶紧补上

正确的启动类示例代码如下:

  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. //声明它为基于springboot的应用程序的启动类
  4. @SpringBootApplication
  5. public class springbootJpaApplication {
  6. public static void main(String[] args) {
  7. SpringApplication.run(springbootJpaApplication.class,args);
  8. }
  9. }

ps:启动类的类名随便写,但推荐见名知义的命名原则

②如果你写了启动类,但是你的测试类所在的包与启动类所在的包不在同一级根目录下

例如:在我的项目中启动类所在的包是com.fc,而测试类则直接写在项目/test/java下没有包

在这里插入图片描述

在这里插入图片描述

解决措施

1. 将测试类【要进行单元测试的类】置于和启动类一样的目录下【如com.fc】

在这里插入图片描述

2. 如果不想把测试类放到和启动类相同的包下,那就给测试类的注解加上@SpringBootTest(classes = {springbootJpaApplication.class})

代码示例如下:

  1. @SpringBootTest(classes = {
  2. springbootJpaApplication.class})
  3. public class testJpa {
  4. }

ps:花括号中是你自己写的测试类的反射

以上两种解决方法选其一即可,效果等同。

在这里插入图片描述

排错改错成功!!!

发表评论

表情:
评论列表 (有 0 条评论,67人围观)

还没有评论,来说两句吧...

相关阅读