You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket Pipeline中Cypress测试文件并行执行问题咨询

在Bitbucket Pipeline中并行执行Cypress测试的问题

我的测试文件存放在cypress/e2e/Test/examples目录下,希望在Bitbucket Pipeline中并行执行这些测试。但Cypress默认配置在CI环境中无法正常运行测试,我采用了当前的Pipeline结构后,还是没法实现examples目录下测试文件的并行执行。已经试过Cypress官方文档里的方案但没用,想咨询这个需求是否可行,并附上当前配置:

当前Bitbucket Pipeline配置

image: cypress/browsers:node-18.15.0-chrome-111.0.5563.146-1-ff-111.0.1-edge-111.0.1661.62-1

examples: &examples
  name: Run examples
  caches:
    - node
    - cypress
  script:
    - npx cypress run --spec "cypress/e2e/Test/examples/*.js"
  artifacts:
    # store any generates images and videos as artifacts
    - cypress/screenshots/**
    - cypress/videos/**
    - cypress/reports/**


pipelines:
  default:
  - step:
      name: Install dependencies
      caches:
        - npm
        - cypress
        - node
      script:
        - npm ci

  - parallel:
    - step:
        <<: *examples


definitions:
  caches:
    npm: $HOME/.npm
    cypress: $HOME/.cache/Cypress

package.json内容

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },

问题分析与解决步骤

你当前的配置里,parallel块只定义了一个step,本质上还是单线程执行,没有真正实现并行。要让examples目录下的测试文件并行运行,有两种可行方案:

方案1:手动拆分测试文件到多个并行Step

如果examples目录下有多个独立的测试文件,可以直接拆分到不同的parallel step中,每个step执行单个或部分测试文件:

pipelines:
  default:
  - step:
      name: Install dependencies
      caches:
        - npm
        - cypress
        - node
      script:
        - npm ci
  - parallel:
    - step:
        <<: *examples
        script:
          - npx cypress run --spec "cypress/e2e/Test/examples/test1.js"
    - step:
        <<: *examples
        script:
          - npx cypress run --spec "cypress/e2e/Test/examples/test2.js"
    # 按实际测试文件数量添加更多step

方案2:用Cypress自动并行分配测试

如果不想手动拆分,可借助Cypress的并行执行功能,结合Bitbucket的并行step数量,让Cypress自动分配测试文件到不同的并行节点:

  1. 更新package.json的scripts:
"scripts": {
  "test:examples": "cypress run --spec \"cypress/e2e/Test/examples/*.js\"",
  "test:parallel": "cypress run --spec \"cypress/e2e/Test/examples/*.js\" --parallel --record --key YOUR_CYPRESS_RECORD_KEY"
}
  1. 修改Bitbucket Pipeline配置,设置多个并行step:
pipelines:
  default:
  - step:
      name: Install dependencies
      caches:
        - npm
        - cypress
        - node
      script:
        - npm ci
  - parallel:
    - step:
        <<: *examples
        script:
          - npm run test:parallel
    - step:
        <<: *examples
        script:
          - npm run test:parallel
    # 根据你的并行需求和Cypress配额添加更多step

注意:需要先在Cypress平台注册项目,获取专属的记录密钥(YOUR_CYPRESS_RECORD_KEY),并将其添加为Bitbucket Pipeline的环境变量。

额外检查项

  • 确认Cypress版本在3.1.0以上,该版本才支持并行执行
  • 检查缓存配置是否生效,避免每次step都重复下载依赖和Cypress二进制文件
  • 确保CI环境的资源(CPU、内存)足够,避免测试因资源不足异常终止

内容的提问来源于stack exchange,提问作者Halil Ozturk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:42:21