SpringBoot的Junit测试启动报错:Unable to find a @SpringBootConfiguration

    科技2022-07-10  138

    1、完整报错信息

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

    2、问题排查

    翻译前半句:不能找到@SpringBootConfiguration这个注解。我们知道,这个注解是SpringBoot启动类上@SpringBootApplication注解上的一个注解。根据SpringBoot的“约定优于配置”思想,我们没有指定它去哪找,它应该会在自己的路径下寻找,既然找不到,真相呼之欲出:默认查找路径不对。

    看图说人话。

    3、解决方案(两种思路)

    一、按SpringBoot的默认查找为准,我们把测试类的包路径改成和启动类一致 将 com.test 改为 com.knowledge.contest 即可。二、我们自己指定让它去哪个类上找 参考报错后半段信息:在@SpringBootTest注解指定classes属性值为启动类class。 package com.test; import com.knowledge.contest.ManagerApplication; import com.knowledge.contest.mapper.ContestConclusionMapper; import com.knowledge.contest.pojo.TbContestConclusion; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; /** * @Description 测试时间工具类 * @Author DongPo * @Date 2020/10/3 14:18 */ @SpringBootTest(classes = {ManagerApplication.class}) @RunWith(SpringRunner.class) public class TimeTest { @Autowired private ContestConclusionMapper contestConclusionMapper; @Test public void testInsert(){
    Processed: 0.027, SQL: 8