使用Docker-Compose UP进行Elixir测试

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

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

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

changquan71 回答:使用Docker-Compose UP进行Elixir测试

您可以使用类似以下内容来构建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,所以这可能没有意义,您需要适应。

本文链接:https://www.f2er.com/3142082.html

大家都在问