Concourse CI - 如何运行功能测试?

Ilj*_*nen 6 continuous-integration webtest functional-testing docker-compose concourse

我们正处于从Jenkins迁移到Concourse CI的过程中,到目前为止一切都很顺利.但现在我有问题,我不知道如何解决.我想从社区得到任何建议.

我想要做的是可以使用Selenium运行集成或功能(Web)测试的工作.我们几乎没有问题:

  1. 要运行Web测试,我需要设置数据库(以及可选的搜索引擎,代理等...)代理,尽可能地模拟生产环境.理想情况下,它应该由docker-compose设置.
  2. 此数据库服务应与我的测试并行运行
  3. 此数据库服务不应返回任何错误或成功,因为它只启动数据库,而不是其他任何内容
  4. 在数据库准备好之前,不应启动我的Web测试
  5. 所有Web测试完成后,应停止此数据库服务

正如你所看到的,这是非常重要的任务.当然,我可以创建一个包含我需要的所有内容的超级容器,但这是一个糟糕的解决方案.另一种选择是为此创建一个shell脚本,但这不够灵活.

是否有任何示例可以为此问题实施该做法或良好做法?

谢谢!

Ben*_*odd 8

从版本1.3.0开始,您可以在任务中运行Docker-compose:https://concourseci.slack.com/archives/general/p1466556331001964

这似乎有效:

jobs:
  - name: docker-compose
    public: true
    serial: true
    plan:
      - do:
        - task: docker-compose
          timeout: 20m
          privileged: true
          config:
            platform: linux
            image_resource:
              type: docker-image
              source: {repository: "mumoshu/dcind", tag: "latest"}
            run:
              path: sh
              args:
                - -exc
                - |
                  source /docker-lib.sh
                  start_docker
                  docker ps
                  docker-compose version
Run Code Online (Sandbox Code Playgroud)