【问题标题】:What is the correct way to configure DockerComposeContainer with a Junit test?使用 Junit 测试配置 DockerComposeContainer 的正确方法是什么?
【发布时间】:2020-09-13 17:25:03
【问题描述】:

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

我在使用 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 响应 postman 表明 localstack 已正确启动。但是 DockerComposeContainer 似乎没有接受它。这里有什么问题?这样做的正确方法是什么?

【问题讨论】:

    标签: docker junit testcontainers


    【解决方案1】:

    你在某处打电话给environment.start() 吗?我看到你添加了一个日志消费者,你能看到容器内发生了什么吗?

    另外,您想尝试使用 local-compose 模式吗?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      相关资源
      最近更新 更多