【发布时间】:2021-06-14 16:10:28
【问题描述】:
我正在使用 Micronaut 2.4.0 并使用 testContainers 进行 SQL Server 集成测试。
这是我的 gradle.build
testImplementation("org.testcontainers:testcontainers")
testImplementation("org.testcontainers:junit-jupiter")
testImplementation("org.testcontainers:mssqlserver")
这是用于测试的 application.yml
url: jdbc:tc:sqlserver://localhost;databaseName=test-db
username: sa
password: sa
driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver
这些是唯一的变化,micronaut 处理测试容器的创建和启动。
问题
对于每个测试类,它都会创建新容器。 测试的大部分时间是在容器创建中。
有没有办法可以重复使用容器? (清除数据库可能仍然可以)
【问题讨论】:
-
我不确定 Testcontainers 重用功能是否适用于 JDBC 支持。使用手动容器定义,它肯定会起作用(如similar question 所示)。您还可以找到详细示例here(使用 Spring Boot,但设置类似)。
-
在 spring 中很容易,在 micronaut 中同样不起作用。 application.yml 有连接字符串。在应用启动之前需要一些方法来初始化测试容器
-
你使用注解
@Container吗?如果是,你不应该。请参阅stackoverflow.com/a/62443261/696714
标签: micronaut testcontainers testcontainers-junit5