使用 Junit 测试配置 DockerComposeContainer 的正确方法是什么?



我正在尝试按照本网站上的说明配置测试容器。 测试容器

我在使用 DockerCompose 配置它时遇到问题。我正在查看文档,但我看不出我做错了什么。为了 junit 测试而配置 DockerComposeContainer 的正确方法是什么?

现在我不断收到错误

org.testcontainers.containers.ContainerLaunchException

发生这种情况是因为超时过期。这就是代码的样子。

private final DockerComposeContainer environment = new DockerComposeContainer(new File(path))
.withLogConsumer("localstack", logConsumer)
.waitingFor("localstack", Wait.forHttp("http://localhost:4572")
.forStatusCode(200)
.withStartupTimeout(Duration.ofSeconds(90)));

如果我在启动时和邮递员一起坐在那里,我可以点击该端点并获得 postman 的 200 响应,表明本地堆栈已正确启动。但DockerComposeContainer似乎并没有接受它。这是怎么回事?正确的方法是什么?

你在某个地方打电话environment.start()吗?我看到您添加了一个日志使用者,您能够看到容器内发生了什么吗?

另外,您想尝试使用本地撰写模式吗?

@Container
public static DockerComposeContainer docker = new DockerComposeContainer(
new File("src/test/resources/compose-mysql-test.yml")
)
.withLocalCompose(true);

相关内容

最新更新