在@SpringBootTest中运行自定义ApplicationContextInitializer

在@SpringBootTest中运行自定义ApplicationContextInitializer,spring,spring-boot,spring-test,Spring,Spring Boot,Spring Test,我尝试在集成测试中运行custumApplicationContextInitializer,该测试用@SpringBootTest注释。我尝试使用@springbootest和@ContextConfiguration的组合,如下所示: @SpringBootTest @ContextConfiguration( initializers = CustomContextInitializer.class ) public class Test { .... } 这会失败,因为由@

我尝试在集成测试中运行custum
ApplicationContextInitializer
,该测试用
@SpringBootTest
注释。我尝试使用
@springbootest
@ContextConfiguration
的组合,如下所示:

@SpringBootTest
@ContextConfiguration(
    initializers = CustomContextInitializer.class
)
public class Test {
  ....
}
这会失败,因为由
@springbootest
触发的某些bean构造依赖于将由我的
CustomContextInitializer
的programmaticaly逻辑注入的属性,而这一个是并行执行的,因此该属性此时不可用


这种情况有解决办法吗?
CustomContextInitializer
能否在
@SpringBootTest
触发初始化过程之前运行

有一个用于spring(启动)测试的
TestPropertySource
,您可以使用它来配置测试的属性。您可以展示一个更详细的代码示例吗?如果您只想在测试执行之前设置属性,那么
TestPropertySource
是一个正确的解决方案,但是如果您需要在启动应用程序之前运行一些动态逻辑,那么它对您没有帮助。