我试图@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 依赖项。