带有 EL 的 Cosmos DB 容器名称未在 SpringBootTest 中解析

Cosmos DB Container Name with EL not resolving in SpringBootTest

@SpringBootTest(properties = {"spring.profiles.active=build"}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)`
@TestPropertySource(value = {"classpath:application-test.properties"})
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration

我的集成测试中显示了注释。实体 class 如下所示

@Container(containerName = "Statuses-${spring.profiles.active}")
public class MessageStatus implements Serializable

容器名称在本地环境中成功创建为 Statuses-local,当 运行 启动 spring 启动应用程序时,但这无法解析 cosmos DB 容器上的 EL 运行ning 测试时命名。相反,容器创建为 Statuses-${spring.profile.active}.

请帮忙,我需要这个 运行 使用构建配置文件进行测试,并且容器名称在 运行 启动 SpringBoot 应用程序时正确解析其上的 EL,但是 运行在我的集成测试中,这是不正常的。我有什么遗漏吗?

更新: 我有

@SpringBootApplication
DependsOn("expressionResolver")

在主应用程序上 class

此外,我尝试了另一种方法,即从 bean 中的函数获取容器名称,但这又是尝试创建容器名称作为解析名称的代码...

@Container(containerName = "#{@MyBean.getMessageStatusContainerName()}")
public class MessageStatus implements Serializable

而且,这在 运行 SpringBoot 应用程序时工作正常,但在尝试 运行 测试时却不行。

我添加了注释

@ContextConfiguration(classes = {TestContextConfig.class, MyClass1.class, MyClass2.class})

关于集成测试,而我已经 @EnableAutoConfiguration,并且该设置在创建测试应用程序上下文时“不满意”,这样会丢失一些必要的 bean,以及 EL 的分辨率没有工作。

解决方案:删除了注释:@ContextConfiguration(classes = 并且一切如火如荼!