无法连接到 SpringTest 中由 TestContainers 创建的容器
Posted
技术标签:
【中文标题】无法连接到 SpringTest 中由 TestContainers 创建的容器【英文标题】:Unable to connect to container created by TestContainers in a SpringTest 【发布时间】:2021-12-21 00:52:41 【问题描述】:我正在使用 TestContainers 来测试将使用 mongodb 的服务类。但是即使我配置了DynamicPropertySource
,Spring 也无法连接到测试容器创建的 mongodb。它只会尝试连接到我的本地 mongo db 实例。
测试类注解:
@Testcontainers
@SpringBootTest
@TestMethodOrder(MethodOrderer.OrderAnnotation::class)
配置
@Autowired lateinit var taskService: PersistentTaskService
companion object
@Container
val mongoDbContainer: MongoDBContainer = MongoDBContainer("mongo:5.0.3")
@DynamicPropertySource
fun setUpProp(registry: DynamicPropertyRegistry)
registry.add("spring.data.mongodb.uri", mongoDbContainer::getReplicaSetUrl)
如何让 Spring 连接到测试容器?
【问题讨论】:
【参考方案1】:好吧,我找到了原因。
上面的配置没有问题。 Spring 仍然连接到我的本地数据库的原因是 MongoDB 配置被硬编码为 bean(在 src/main 中)。
我刚刚删除了 bean 并选择了配置文件。
【讨论】:
以上是关于无法连接到 SpringTest 中由 TestContainers 创建的容器的主要内容,如果未能解决你的问题,请参考以下文章