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

Azure Pipelines中Cypress测试失败时如何让流水线始终运行成功?

解决方案

Azure Pipelines 判定任务失败的核心依据是任务执行进程的退出码是否为0,非0就会标记任务失败,进而导致整个流水线失败。当前Cypress用例失败时,cy2命令会返回非0退出码,npm-run-all汇总所有子命令的执行结果后也会返回非0,因此Yarn任务被判定为失败。你可以通过以下两种方案解决:

方案1:修改package.json脚本(推荐,平台通用)

在你的parallel脚本末尾添加|| true,强制让整个脚本无论执行结果如何都返回0退出码,修改后如下:

"parallel": "npm-run-all --sequential delete:reports --parallel --continue-on-error instance1 instance1 instance1 --sequential cleanup-instance --sequential combine:reports || true"

该方案不依赖CI平台配置,在本地执行或者其他CI环境中运行时也不会抛出退出码错误。

方案2:修改Azure Pipelines YAML配置

如果不想修改项目内的脚本,可以直接调整流水线任务配置,可选两种子方案:

  • 配置任务容错:给Yarn任务添加continueOnError: true属性,即使任务返回非0退出码,流水线也会继续执行后续步骤,且不会将整个阶段标记为失败:
- task: Yarn@2
  displayName: 'run parallel'
  inputs:
    ProjectDirectory: '$(Build.SourcesDirectory)'
    Arguments: 'parallel'
    workingDir: '$(Build.SourcesDirectory)'
    verbose: 'true'
  continueOnError: true # 新增容错配置
  • 强制返回成功退出码:如果你希望该任务的执行状态直接显示为成功(而非"已完成但存在错误"的状态),可以替换为自定义脚本任务,吞掉非0退出码:
- script: |
    yarn parallel || exit 0
  displayName: 'run parallel'
  workingDirectory: $(Build.SourcesDirectory)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:36:03