我正在编写集成测试框架,在我的父测试类中,我有以下内容:
position: fixed
这让我有很大的灵活性,但是,我注意到我的自定义@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
public abstract class IntegrationTestParent extends AbstractTestNGSpringContextTests {
...
@Configuration
@EnableAutoConfiguration
@ComponentScan("redacted")
public static class AutomationTestConfig {
}
}
文件不再打印出来了,也没有我的application.properties文件(设置banner.txt
和一些正在阅读maven过滤的应用程序变量。
除了一些真正的leet figlet生成的ascii art之外,它还打印了很多关于JVM和各种系统和环境属性的方便的调试信息,所以我对远程环境有了一个非常好的想法(la Jenkins和Bamboo或者他们正在运行任何人的任意笔记本电脑。
除了spring.output.ansi.enabled=ALWAYS
之外,还有办法让这种做法成为行为吗?
答案 0 :(得分:0)
我找到了一个中间解决方案。我将其称为中间,因为我得到了我想要的行为(基于注释的上下文可以在下游项目中加载,我有其他配置和bean等)但我没有使用AnnotationConfigContextLoader
类。
我将它换成了SpringApplicationContextLoader
。根据{{3}}:
可用于测试Spring Boot应用程序的ContextLoader (通常使用SpringApplication启动的那些)。可以用来 测试非Web功能(如存储库层)或启动 完全配置的嵌入式servlet容器。使用@WebIntegrationTest (或使用@WebAppConfiguration的@IntegrationTest)来表明你 想要单独使用真正的servlet容器或@WebAppConfiguration 使用MockServletContext。
如果测试类中提供了@ActiveProfiles,他们将习惯使用 创建应用程序上下文。
基于前几句话,这基本上就是我所寻找的。 p>