ovos/custom-cypress-docker-image本镜像为自定义Cypress前端测试工具的Docker封装,旨在解决前端自动化测试环境配置复杂、跨环境依赖冲突等问题。通过预集成Cypress核心组件、Node.js运行环境及浏览器依赖,提供开箱即用的测试环境,确保开发、测试、CI/CD等不同场景下测试执行的一致性,大幅降低环境配置成本。
cypress.json)、环境变量覆盖默认配置cypress/)及配置文件(cypress.json或cypress.config.js)从镜像仓库拉取(如私有仓库或Docker Hub):
bashdocker pull [镜像仓库地址]/custom-cypress-docker-image:latest
(若未推送至仓库,可本地构建:docker build -t custom-cypress-docker-image .)
挂载本地测试文件并执行测试:
bashdocker run -it --rm \ -v $(pwd)/cypress:/app/cypress \ # 挂载测试用例目录 -v $(pwd)/cypress.json:/app/cypress.json \ # 挂载Cypress配置文件 -e CYPRESS_BASE_URL="[***]" \ # 设置测试基础URL custom-cypress-docker-image \ cypress run --browser chrome # 执行测试命令(指定Chrome浏览器)
创建docker-compose.yml:
yamlversion: '3.8' services: cypress-test: image: custom-cypress-docker-image:latest volumes: - ./cypress:/app/cypress # 挂载测试用例 - ./cypress.config.js:/app/cypress.config.js # 挂载现代Cypress配置文件 - ./package.json:/app/package.json # 如需依赖项目package.json中的scripts environment: - CYPRESS_BASE_URL=[***] # 应用基础URL - CYPRESS_BROWSER=firefox # 指定Firefox浏览器 - CYPRESS_VIDEO=false # 禁用测试视频录制 - CYPRESS_RECORD_KEY=your_record_key # (可选)Cypress Dashboard录制密钥 command: cypress run --spec "cypress/e2e/login.cy.js" # 执行指定测试文件
启动测试:
bashdocker-compose run cypress-test
| 本地目录 | 容器内目录 | 用途 |
|---|---|---|
./cypress | /app/cypress | 测试用例文件(e2e、fixtures等) |
./cypress.json | /app/cypress.json | Cypress传统配置文件 |
./cypress.config.js | /app/cypress.config.js | Cypress 10+版本配置文件 |
./package.json | /app/package.json | (可选)项目依赖及scripts |
./node_modules | /app/node_modules | (可选)复用本地依赖(加速启动) |
| 变量名 | 说明 | 默认值 |
|---|---|---|
CYPRESS_BASE_URL | 测试目标应用基础URL(如[***]) | http://localhost:3000 |
CYPRESS_BROWSER | 指定测试浏览器(chrome/firefox) | chrome |
CYPRESS_VIDEO | 是否录制测试视频(true/false) | true |
CYPRESS_SCREENSHOTS | 是否保存失败截图(true/false) | true |
CYPRESS_RECORD_KEY | Cypress Dashboard录制密钥(可选) | 空 |
通过覆盖容器启动命令,执行特定Cypress命令:
bash# 打开Cypress图形化界面(需启用交互模式) docker run -it --rm -v $(pwd)/cypress:/app/cypress -p 6100:6100 custom-cypress-docker-image cypress open # 仅运行指定测试文件 docker run -v $(pwd)/cypress:/app/cypress custom-cypress-docker-image cypress run --spec "cypress/e2e/checkout.cy.js" # 运行测试并生成JUnit报告 docker run -v $(pwd)/reports:/app/reports custom-cypress-docker-image cypress run --reporter junit --reporter-options "mochaFile=reports/results.xml"
--headless模式运行(Cypress默认行为),减少资源占用FROM custom-cypress-docker-image)并添加额外安装命令manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务