需求
- 项目需要导入e2e测试
- e2e测试整合到ci/cd pipeline
技术栈
- playwright
- typescript
- create-react-app
- node
- docker
- gitlab yml
- bash
- cross-env
大概步骤
- 在根目录新建e2e文件夹
- 新建个e2e测试项目 参考playwright-jest-examples
- 修改 e2e文件夹里的package.json文件,绑定主项目的 yarn start
- 启动服务器,进行e2e测试,关闭服务器
- 修改 .gitlab-ci.yml 集成到ci/cd
具体细节
- 通过 cross-env 修改启动e2e服务器时候的环境变量
- linux操作bash 重置e2e数据
- .gitlab-ci.yml 为了e2e 专门建个stage
- 使用docker 配置gitlab的runner ,有个docker in docker的配置
- node pm2相关
- npm script中&&和&
- 前端端口转发(通过环境变量选择转发的方向)
- jest相关配置
用上的的&没用上的代码
docker run --name e2e -exec node:14 tail -f /dev/null
pm2 logs e2e2 --lines 10 |grep 3000
pm2 start yarn --name e2e -- e2e:start
tail -f -2 ~/.pm2/logs/e2e-out.log
docker exec -it e2e bash
lsof -i:3000
curl --location --request GET 'https://example.com?token=exampletoken' \
--header 'TOKEN: これはTOKEN'
改进点
- 在playwright官方提供的docker镜像基础上再添加一些项目的依赖,减少ci/cd的时间
感受