【发布时间】:2018-05-29 13:11:29
【问题描述】:
我正在尝试在“干净”上下文中运行 @SpringBootTest 而没有执行 MyApplicationContextInitializer。
MyApplicationContextInitializer 包含在 spring.factories 文件中的 compile-scope 依赖项中,如下所示:
org.springframework.context.ApplicationContextInitializer=\
com.eremic.myapp.MyApplicationContextInitializer
测试类:
@SpringBootTest(webEnvironment = RANDOM_PORT)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestContext.class)
public class UsersControllerTest {}
测试配置:
@SpringBootConfiguration
public class TestContext {}
有没有办法从@SpringBootTest 中排除MyApplicationContextInitializer?
我已经厌倦了 excludeFilters @ComponentScan.Filters,但它对 ApplicationContextInitializer 没有影响。
另外,我尝试使用 @SpringBootApplication 注释 TestContext 并使用 scanBasePackages 和/或使用 exclude = MyApplicationContextInitializer.class 限制组件扫描,但它也没有效果。
到目前为止,防止MyApplicationContextInitializer 在@SpringBootTest 内部执行的唯一方法是删除声明MyApplicationContextInitializer 的maven 依赖项。
【问题讨论】:
标签: spring spring-boot spring-boot-test