我有一个由 -前端存储库(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