ere*_*mic 6 spring spring-boot spring-boot-test
我试图@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 依赖项。
目前还没有办法过滤ApplicationContextInitializer从工厂加载的类。要在每个测试级别上执行此操作,您需要使用使用不同SpringBootTestContextBootstrapper. 引导程序需要返回一个SpringBootContextLoader过滤初始化器的值。请随意提出问题,我们可以添加一些受保护的方法供SpringBootContextLoader您覆盖。
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |