在CircleCI中运行Cypress
info
您将学习到
- 如何使用Cypress Orb配置CircleCI运行Cypress测试
- 如何缓存依赖项和构建产物
- 如何在CircleCI中实现Cypress测试并行化
Cypress CircleCI Orb是Cypress的_官方_ CircleCI Orb。虽然您不需要使用Orb也能在CircleCI中运行测试,但使用Orb的好处是它能以更少的努力轻松安装、缓存和运行Cypress测试。该Orb抽象了在CircleCI中运行测试所需的常见步骤,让开发者更省心!
基础配置
Cypress CircleCI Orb是配置在您的.circleci/config.yml
文件中的一段设置,能以极简方式正确安装、缓存和运行Cypress。
关于Orb快速入门指南和使用案例,请查看CircleCI的Cypress orb文档。
一个典型项目可以这样配置:
.circleci/config.yml
version: 2.1
orbs:
# "cypress-io/cypress@4"会安装Orb的最新发布版本"s.x.y"
# 我们建议您使用严格的显式版本"cypress-io/cypress@4.x.y"
# 来锁定版本,避免意外的CI变更
cypress: cypress-io/cypress@4
workflows:
build:
jobs:
- cypress/run: # "run"任务来自"cypress" orb
start-command: 'npm run start'
就这样!您的仓库依赖项将被安装和缓存,Cypress测试将在CircleCI中运行。
并行化
一个更复杂的项目可能需要安装依赖项、启动服务器,并并行在4台CI机器上运行测试:
.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@4
workflows:
build:
jobs:
- cypress/run:
start-command: 'npm run start'
cypress-command: 'npx cypress run --parallel --record --group all tests'
parallelism: 4
使用Orb为CircleCI配置带来了简洁性和参数静态检查。
您可以在我们的orb示例页面找到更 多示例。
info
Cypress 真实世界应用(RWA) 使用Circle CI Cypress Orb、Codecov Orb和Windows Orb,在25台机器上并行测试超过300个测试用例,涵盖多种浏览器、设备尺寸和操作系统,并提供完整的代码覆盖率报告和Cypress Cloud录制。
查看完整的 RWA Circle CI配置。
更多示例
组件测试示例
.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@4
workflows:
test:
jobs:
- cypress/run:
cypress-command: 'npx cypress run --component'
Yarn示例
.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@4
workflows:
test:
jobs:
- cypress/run:
package-manager: 'yarn'
start-command: 'yarn start'
Chrome示例
Cypress默认使用Electron运行测试。install-browsers
标志用于安装Chrome、Chrome for Testing、Edge、Firefox和geckodriver来运行测试。仅在cypress-command
中传递--browser
标志时需要此设置。
.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@4
workflows:
test:
jobs:
- cypress/run:
install-browsers: true
start-command: 'npm run start'
cypress-command: 'npx cypress run --browser chrome'