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

如何在Azure DevOps部署构建前触发Cypress自动化测试?

在Azure DevOps部署构建前触发Cypress测试的实现步骤

核心思路

把Cypress测试作为独立阶段插入到构建完成后、部署开始前,通过阶段依赖规则确保只有测试全部通过才会启动部署流程。


1. 调整流水线阶段顺序

修改你的Azure DevOps流水线YAML,新增Test阶段,放在原有Build和Deploy阶段之间:

stages:
- stage: Build
  jobs:
  - job: BuildJob
    steps:
    # 保留你原有的构建步骤(比如npm install、项目打包、上传构建产物等)

- stage: Test
  jobs:
  - job: RunCypressTests
    steps:
    # 下文配置Cypress测试的执行步骤

- stage: Deploy
  jobs:
  - job: DeployJob
    dependsOn: Test  # 明确部署阶段依赖测试阶段
    condition: succeeded()  # 仅当测试阶段成功时才执行部署
    steps:
    # 保留你原有的部署步骤

2. 配置Cypress测试执行步骤

在Test阶段的RunCypressTests任务中,添加以下步骤确保测试环境和执行逻辑:

steps:
# 安装与本地匹配的Node.js版本
- task: NodeTool@0
  inputs:
    versionSpec: '18.x'  # 替换成你本地使用的Node版本
  displayName: '安装Node.js'

# 安装项目所有依赖(包括Cypress)
- script: npm install
  displayName: '安装项目依赖'

# (可选)后台启动测试依赖的服务(如果你的测试需要访问后端/前端服务)
- script: npm run start:test &
  displayName: '启动测试依赖服务'

# 运行Cypress无头模式测试
- script: npx cypress run
  displayName: '执行Cypress自动化测试'
  • 若测试不需要依赖额外服务,直接删除启动服务的步骤即可。
  • 如需指定测试用例或环境,可给cypress run加参数,比如npx cypress run --spec "cypress/e2e/login.spec.js"。

3. 验证流水线逻辑

提交修改后的YAML到Azure DevOps仓库,手动触发一次流水线:

  • 观察阶段执行顺序:Build → Test → Deploy
  • 故意让一个测试用例失败,确认Deploy阶段会被自动跳过,只有测试全部通过才会进入部署环节。

4. 可选:上传测试报告到Azure DevOps

为了更直观查看测试结果,可配置Cypress生成JUnit格式报告并上传到流水线:

  1. 安装依赖:npm install cypress-junit-reporter --save-dev
  2. 修改cypress.config.js添加报告配置:
module.exports = defineConfig({
  e2e: {
    reporter: 'junit',
    reporterOptions: {
      mochaFile: 'cypress/reports/junit/results-[hash].xml',
      toConsole: true
    }
  }
});
  1. 在流水线YAML的测试步骤后添加上传任务:
- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/cypress/reports/junit/*.xml'
    failTaskOnFailedTests: true  # 测试失败时直接标记任务失败
  displayName: '上传测试结果到Azure DevOps'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:05:22