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.

根据前几句话,这基本上就是我要找的东西。