5月29日 01:09
如何配置 Cypress 测试报告和 CI/CD 集成?
Cypress 测试报告配置分两步:选 reporter、配参数。最常用的是 Mochawesome,在 cypress.config.js 中设 reporter 为 'mochawesome',通过 reporterOptions 指定 reportDir、overwrite: false、html: true、chart: true。如需合并多个 spec 的报告,搭配 mochawesome-merge 工具合并 JSON 再生成单份 HTML。CI/CD 集成的关键是:用 npx cypress run --reporter mochawesome 在无头模式执行;通过 --parallel 参数配合 Cypress Cloud 实现并行测试加速;用 actions/upload-artifact 收集报告和失败时的截图/视频;在 workflow 触发条件中绑定 push/pull_request 事件。失败截图和视频默认保存在 cypress/screenshots 和 cypress/videos 目录,CI 中应作为 artifact 上传以便排查。
追问
- mochawesome-merge 的作用是什么?为什么多个 spec 会生成多份报告?
- Cypress 的
--parallel参数如何工作?不使用 Cypress Cloud 能实现并行吗? - 如何在 CI 中只在测试失败时才上传视频和截图?
- Allure 报告和 Mochawesome 相比各有什么优劣?什么场景该选 Allure?
- 如何在 GitHub Actions 中设置定时跑 Cypress 测试(cron 触发)?
写段代码
yaml# .github/workflows/cypress.yml name: Cypress on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm ci - run: npx cypress run --reporter mochawesome - uses: actions/upload-artifact@v4 if: always() with: name: report path: cypress/results