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(){