如何启动测试容器与特定的docker映像?



我有一个junit测试,利用testcontainers-1.15.1。我如何开始一个明确的图像?因为:

@SpringBootTest
public class ContainerTest {
private final JdbcDatabaseContainer DB = new MariaDBContainer("mariadb:10.5.8");

static {
DB.start();
}

@Test
public void test() { 
} 
}

结果:默认的10.3.6容器启动。

[][] 2021-02-04 14:32:50,741 INFO ?.3.6]: Creating container for image: mariadb:10.3.6
[][] 2021-02-04 14:32:51,597 INFO ?.3.6]: Container mariadb:10.3.6 is starting: d9ccf77f4b9165ccd1690ee5cb8437f43e7d853dfe5121d468a391d67eccef7d

application.properties:

spring.datasource.url=jdbc:tc:mariadb:///test
spring.datasource.username=test
spring.datasource.password=test

这可能是由于过去不同testcontainer模块的构造函数的不一致行为。这次提交修复了它,应该从Testcontainers 1.15.0开始可用。

不确定您的示例是否是伪测试代码,但以下示例是一个有效的复制-粘贴示例:

public class MariaDbContainerTest {
private static final JdbcDatabaseContainer DB = new MariaDBContainer("mariadb:10.5.8");
static {
DB.start();
}
@Test
public void test() {
}
}

我已经在Testcontainers 1.15.0和1.15.1上测试了它,它在我的机器上运行

:我还没有看到你在你的application.properties文件中指定JDBC对Testcontainers的支持,除了你的手动容器定义作为测试的一部分。

选择JDBC支持手动容器定义和您的问题应该得到解决。

当使用JDBC支持时,您还可以指定数据库的版本:jdbc:tc:mariadb:10.5.8:///test

最新更新