如何在CI(Gitlab)中运行Fullstack E2E测试

时间:2019-06-24 08:34:33

标签: continuous-integration gitlab-ci e2e-testing gitlab-ci-runner

我有一个由 -前端存储库(Angular 8) -后端存储库(Node.js / NestJS 6)

我将Gitlab用作SCM提供程序,docker注册表和CI / CD工具。 安装,整理,测试(单元)和构建都可以在CI中使用。

现在,我想介绍我使用赛普拉斯在前端存储库中添加的E2E测试。

要进行测试,我需要 -运行后端(使用docker-compose),包括S3模拟和数据库(mongo) -将演示数据插入后端(为此获得了脚本) -运行指向后端API的前端 -运行柏树测试

我的问题是:如何在CI阶段内运行包含依赖项的dockerized后端,以便我有一个后端实例来运行e2e测试?

我已经尝试在阶段内通过docker-compose运行后端。这导致容器开始使用,但是无法从gitlab-runner容器中访问它们。

这是前端回购.gitlab-ci.yml中的一个阶段:

e2e:
  image: docker:stable
  stage: e2e
  script:
    - apk add --no-cache py-pip python-dev libffi-dev openssl-dev gcc libc-dev make nodejs npm git curl
    - pip install docker-compose
    - npm install -g wait-on spa-http-server forever
    - docker-compose up -d
    - wait-on http://localhost:4000/api/ && curl -X POST http://localhost:4000/global/createDemoData
    - npm run build
    - forever start -c http-server dist/XXX/ -p 4200 --push-state
    - wait-on http://localhost:4200 && npm run e2e-ci
    - forever stopall
    - docker-compose down

0 个答案:

没有答案