SpringBoot 测试上下文配置没有横幅
SpringBoot Test ContextConfiguration has no banner
我正在编写一个集成测试框架,在我的父测试中 class 我有以下内容:
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public abstract class IntegrationTestParent extends AbstractTestNGSpringContextTests {
...
@Configuration
@EnableAutoConfiguration
@ComponentScan("redacted")
public static class AutomationTestConfig {
}
}
这让我有很大的灵活性,但是,我注意到我的自定义 banner.txt
文件不再打印出来,我的 application.properties 文件(设置 spring.output.ansi.enabled=ALWAYS
和一些 Maven 过滤的应用程序变量)正在读取。
除了一些真正由 leet figlet 生成的 ascii 艺术之外,它还打印出许多关于 JVM 和各种系统和环境属性的方便调试信息,因此我对远程环境(la Jenkins 和Bamboo 或任何人的任意笔记本电脑)它们 运行 打开。
除了 @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
之外,还有其他方法可以实现此行为吗?
我找到了一个中间解决方案。我将其称为中间体,因为我得到了我想要的行为(基于注释的上下文可在我有额外配置和 bean 等的下游项目中加载)但我没有使用 AnnotationConfigContextLoader
class.
我把它换成了 SpringApplicationContextLoader
。根据 javadoc:
A ContextLoader that can be used to test Spring Boot applications
(those that normally startup using SpringApplication). Can be used to
test non-web features (like a repository layer) or start an
fully-configured embedded servlet container. Use @WebIntegrationTest
(or @IntegrationTest with @WebAppConfiguration) to indicate that you
want to use a real servlet container or @WebAppConfiguration alone to
use a MockServletContext.
If @ActiveProfiles are provided in the test class they will be used to
create the application context.
根据前几句话,这基本上就是我要找的东西。
我正在编写一个集成测试框架,在我的父测试中 class 我有以下内容:
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public abstract class IntegrationTestParent extends AbstractTestNGSpringContextTests {
...
@Configuration
@EnableAutoConfiguration
@ComponentScan("redacted")
public static class AutomationTestConfig {
}
}
这让我有很大的灵活性,但是,我注意到我的自定义 banner.txt
文件不再打印出来,我的 application.properties 文件(设置 spring.output.ansi.enabled=ALWAYS
和一些 Maven 过滤的应用程序变量)正在读取。
除了一些真正由 leet figlet 生成的 ascii 艺术之外,它还打印出许多关于 JVM 和各种系统和环境属性的方便调试信息,因此我对远程环境(la Jenkins 和Bamboo 或任何人的任意笔记本电脑)它们 运行 打开。
除了 @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
之外,还有其他方法可以实现此行为吗?
我找到了一个中间解决方案。我将其称为中间体,因为我得到了我想要的行为(基于注释的上下文可在我有额外配置和 bean 等的下游项目中加载)但我没有使用 AnnotationConfigContextLoader
class.
我把它换成了 SpringApplicationContextLoader
。根据 javadoc:
A ContextLoader that can be used to test Spring Boot applications (those that normally startup using SpringApplication). Can be used to test non-web features (like a repository layer) or start an fully-configured embedded servlet container. Use @WebIntegrationTest (or @IntegrationTest with @WebAppConfiguration) to indicate that you want to use a real servlet container or @WebAppConfiguration alone to use a MockServletContext.
If @ActiveProfiles are provided in the test class they will be used to create the application context.
根据前几句话,这基本上就是我要找的东西。