【发布时间】:2021-02-18 08:32:42
【问题描述】:
我正在使用 Testcontainers、Micronaut 和 Kotlin,但不知何故,Micronaut 不希望替换我正在启动的 MongoDB 的动态端口,并且它目前正在工作。
我没有替换 (/src/test/resources) 下的application-test.yml
micronaut:
application:
name: abc
mongodb:
connection-pool:
max-size: 20
uri: mongodb://${MONGO_HOST:localhost}:${MONGO_PORT}
这是我的设置代码:
// class .....
companion object {
private lateinit var embeddedServer: EmbeddedServer
lateinit var mongoContainer: MongoContainer
@BeforeAll
@JvmStatic
internal fun beforeAll() {
mongoContainer = MongoContainer()
mongoContainer.start()
assertThatPortIsAvailable(mongoContainer)
System.setProperty("MONGO_HOST", mongoContainer.containerIpAddress)
System.setProperty("MONGO_PORT", mongoContainer.getPort().toString())
println(System.getProperties()) // THE ENV VAR IS AVAILABLE HERE
println("aaaaaaaa" + mongoContainer.getPort())
embeddedServer = ApplicationContext.run(EmbeddedServer::class.java, PropertySource.of(
"test", mapOf(
"mongo.uri" to mongoContainer.containerIpAddress,
"mongo.port" to mongoContainer.getPort())
))
}
错误消息:消息:无法解析占位符 ${MONGO_PORT}
【问题讨论】:
标签: kotlin micronaut testcontainers