【问题标题】:Elixir Testing with Docker-Compose UP使用 Docker-Compose UP 进行 Elixir 测试
【发布时间】:2019-11-20 22:38:20
【问题描述】:

我在 Elixir 中创建了一个简单的 Sonatype API 客户端,它返回存储库和存储库的组件。

我现在需要在 Elixir 中创建测试,以便我可以验证 repo。我正在使用 docker-compose 来启动 sonatype 容器。我需要测试从一个新的 Docker(sonatype) repo 开始,通过 docker-compose up 使用,然后验证它里面没有任何容器。然后从那里添加一张或多张图片,然后验证我添加的图片是否存在。作为清理,我可以删除这些图像。它必须是一组可以在 CI 中运行的自动化测试,或者用户可以在其本地机器上运行。

我的问题是如何通过 .exs 测试文件或 bash 脚本文件来做到这一点?

【问题讨论】:

  • 不确定我是否理解正确,但您可以在命名为 tests 的 docker 作曲家中定义一个 service,它有一个 depends_on 属性,您可以在其中放置另一个服务,例如 @ 987654324@。您可能需要添加一些东西来等待 sonatype 容器启动,然后他们使用 mix test 开始测试。
  • 你好。你能不能给我一个小例子来说明你的意思?
  • 明天加个例子
  • 好的,非常感谢

标签: docker docker-compose elixir


【解决方案1】:

您可以使用类似于以下内容的内容构建docker-compose.yml 文件:

version: "2.2"
services:
  my_app:
    build:
      context: .
    ports:
      - 4000:4000
    command: >
      bash -c 'wait-for-it -t 60 sonatype:1234
      && _build/prod/rel/my_app/bin/my_app start'

  tests:
    extends:
      service: my_app
    environment:
      MIX_ENV: test
      LOG_LEVEL: "warn"
    working_dir: /my_app
    depends_on:
      - sonatype
    command:
      bash -c 'mix test'

  sonatype:
    image: sonatype/nexus3:3.19.1
    ports:
      - "1234:1234"

然后你有一个像test.sh这样的bash脚本:

docker-compose build tests
docker-compose run tests

EXIT=$?

docker-compose down --volumes

exit $EXIT

我不熟悉 Sonatype,所以这可能没有意义,你需要适应。

【讨论】:

  • 它从那时起。我现在知道了。非常感谢。
猜你喜欢
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2019-07-22
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多