小编ere*_*mic的帖子

如何在@SpringBootTest中排除ApplicationContextInitializers?

我试图@SpringBootTest在“干净”的上下文中运行 a 而无需MyApplicationContextInitializer执行。

包含在文件MyApplicationContextInitializer内的依赖项spring.factories中,compile-scope如下所示:

org.springframework.context.ApplicationContextInitializer=\
com.eremic.myapp.MyApplicationContextInitializer
Run Code Online (Sandbox Code Playgroud)

测试类:

@SpringBootTest(webEnvironment = RANDOM_PORT)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestContext.class)
public class UsersControllerTest {}
Run Code Online (Sandbox Code Playgroud)

测试配置:

@SpringBootConfiguration
public class TestContext {}
Run Code Online (Sandbox Code Playgroud)

有办法排除MyApplicationContextInitializer@SpringBootTest

我已经厌倦了 exceptFilters @ComponentScan.Filters,但它对 ApplicationContextInitializer 没有影响。

另外,我尝试使用和/或使用TestContext注释@SpringBootApplication和限制组件扫描,但它也没有效果。scanBasePackagesexclude = MyApplicationContextInitializer.class

到目前为止,防止MyApplicationContextInitializer在内部执行的唯一方法@SpringBootTest是删除MyApplicationContextInitializer声明的 Maven 依赖项。

spring spring-boot spring-boot-test

6
推荐指数
1
解决办法
1801
查看次数

标签 统计

spring ×1

spring-boot ×1

spring-boot-test ×1