如何在Circle CI中按顺序运行Cypress的Chrome与Firefox E2E测试
优化后的Circle CI Cypress E2E配置方案
核心需求实现:Chrome测试完成后再执行Firefox
当前配置中Chrome和Firefox任务都仅依赖cypress/install,会并行执行。要实现串行,只需修改Firefox任务的requires字段,使其依赖Chrome任务完成。以下是完整优化配置:
version: 2.1 orbs: cypress: cypress-io/cypress@1.29.0 executors: # 合并重复的浏览器镜像配置,cypress/browsers系列镜像已包含Chrome和Firefox browser-executor: docker: - image: 'cypress/browsers:node18.16.0-chrome114-ff114' # 固定版本避免镜像更新导致的兼容性问题 # 官方Electron测试推荐使用cypress/base镜像 electron-executor: docker: - image: 'cypress/base:18' workflows: build: jobs: - cypress/install: install-command: yarn install --frozen-lockfile --ignore-engines name: Install Dependencies - cypress/run: name: Chrome E2E Tests yarn: true requires: - Install Dependencies executor: browser-executor browser: chrome post-steps: - store_test_results: path: results - store_artifacts: path: cypress/screenshots - store_artifacts: path: cypress/videos # 新增存储测试视频,便于排查失败用例 - cypress/run: name: Firefox E2E Tests yarn: true requires: - Chrome E2E Tests # 改为依赖Chrome测试完成,实现串行执行 executor: browser-executor browser: firefox post-steps: - store_test_results: path: results - store_artifacts: path: cypress/screenshots - store_artifacts: path: cypress/videos
其他优化点说明
- 固定镜像版本:放弃
latest标签,使用具体版本号的镜像,避免因镜像自动更新导致测试环境不一致。 - 合并冗余Executor:
cypress/browsers系列镜像同时支持Chrome和Firefox,无需单独创建两个Executor,减少配置冗余。 - 修正Electron镜像:官方推荐使用
cypress/base系列镜像运行Electron测试,自定义的browsers/cypress-electron非官方镜像存在兼容性风险。 - 移除无用命令:删除
post-steps中的run: ls,该命令对测试流程无实际帮助,减少冗余执行步骤。 - 任务命名规范化:将任务名改为更具描述性的名称,便于在Circle CI控制台快速识别任务用途。
- 新增视频存储:Cypress默认生成测试视频,存储后可快速定位失败用例的问题场景。
内容的提问来源于stack exchange,提问作者Lakmal Rajith
相关产品推荐
相关产品推荐

