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
;
@SpringBootTest(classes
= {ManagerApplication
.class})
@RunWith(SpringRunner
.class)
public class TimeTest {
@Autowired
private ContestConclusionMapper contestConclusionMapper
;
@Test
public void testInsert(){