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

如何配置Azure Pipeline在取消运行时发布失败Cypress测试截图?

解决Azure DevOps Pipeline取消运行时发布Cypress失败测试截图的问题

要让流水线在测试失败或手动取消时都能发布失败测试的截图,核心是调整发布步骤的执行条件,确保取消状态下步骤仍能运行。以下是具体配置方案:

关键原理

Azure Pipeline默认仅在作业成功时执行后续步骤,被取消的作业状态为Canceled,不会触发默认步骤。因此需要显式指定步骤的执行条件,包含失败和取消两种场景。

YAML流水线配置示例

假设你的Cypress测试截图默认保存在cypress/screenshots目录,调整后的完整YAML片段如下:

steps:
  # 1. 安装Node.js(根据你的Cypress版本选择对应Node版本)
  - task: NodeTool@0
    inputs:
      versionSpec: '18.x'
    displayName: 'Install Node.js'

  # 2. 安装依赖
  - script: npm install
    displayName: 'Install project dependencies'

  # 3. 运行Cypress测试
  - script: npx cypress run
    displayName: 'Execute Cypress tests'
    continueOnError: true  # 确保测试失败后,后续发布步骤仍能执行

  # 4. 发布失败测试截图(核心配置)
  - task: PublishBuildArtifacts@1
    displayName: 'Publish Cypress failure screenshots'
    inputs:
      PathtoPublish: 'cypress/screenshots'  # 对应你的截图保存路径
      ArtifactName: 'cypress-failure-screenshots'
      publishLocation: 'Container'
    condition: or(failed(), canceled())  # 失败或取消时执行此步骤
    continueOnError: true  # 避免发布步骤自身失败影响流水线状态

经典编辑器(可视化界面)配置步骤

如果你使用经典编辑器配置流水线,按以下步骤调整:

  1. 找到负责发布截图的任务(如「发布构建构件」)。
  2. 展开任务的控制选项(Control Options)。
  3. 在「运行此任务」下拉菜单中选择「自定义条件」。
  4. 输入条件表达式:or(failed(), canceled())。
  5. 保存流水线配置并测试。

额外注意事项

  • 确认Cypress在测试失败时会立即保存截图:Cypress默认会在每个测试失败时生成截图并写入指定目录,即使流水线被取消,已失败测试的截图已经存在,不会丢失。
  • 若你修改过Cypress的截图保存路径,需同步调整PathtoPublish的路径值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:38:36