首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在标记为@SpringBootTest的组件测试中加载@Configuration类

无法在标记为@SpringBootTest的组件测试中加载@Configuration类
EN

Stack Overflow用户
提问于 2021-06-02 14:47:51
回答 1查看 266关注 0票数 0

我正在测试一个功能,并编写了一个componentTest来确保组件正常工作。问题是在运行test @Configuration类时没有为测试加载。示例:

TestClass:

代码语言:javascript
运行
复制
@SpringBootTest(classes = Application.class)
public class ServiceTest{

//Do Something

}
代码语言:javascript
运行
复制
@Configuration

public class ConfigurationClass{

@PostConstruct
public void doSomething(){
log.info("Test loading");
}

}

运行应用程序时,我可以看到应用程序启动时打印的日志。当我运行测试时,我没有看到从ConfigurationClass打印的日志。我试过使用@ContextConfiguration(classes=ConfigurationClass.class),但没有成功。

实际上,我希望在加载测试之前加载configurationClass。

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 15:38:26

当您使用指定的class运行@SpringBootTest(classes = Application.class)时,它会指示spring boot测试引擎只加载在Application.java中定义的bean,这个bean(通常)应该是一个直接或间接使用@Configuration注释注释的类。

如果您只想在测试中加载整个应用程序上下文,那么只需使用不带任何属性的@SpringBootTest。现在,在这种情况下,它将扫描最多一个带有@SpringBootConfiguration注释的包(该注释出现在用@SpringBootApplication注释的类上),然后向下扫描这些包以加载配置类。

当然,您应该确保测试能够找到@SpringBootApplication类,因此您应该将测试放在相同的包或下面(当然,测试位于src/test/java中,而不是您的主类所在的src/main/java中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67800209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档