当只有已知错误时将构建设置为成功

set build to successful when there are only known errors

我有一个 YAML 管道来构建我的代码并运行一些测试。我的代码库非常庞大,充满了无法通过单元测试的奇怪遗留代码。这就是为什么我只想跟踪代码中的新错误,而应忽略那些遗留错误。

- script: "nunit3-console.exe" MyAssembly.dll
  displayName: 'Run unit-tests'
  failOnStderr: false
  continueOnError: true            

执行该脚本时,我获得了部分成功的构建,因为 nunit 的退出代码是 5:

因为我只希望新的错误导致构建失败,所以我还实施了质量门:

- task: BuildQualityChecks@8
  displayName: 'Check for test-errors'
  inputs:
      checkWarnings: true
      warningFailOption: 'build'
      warningTaskFilters: '/^Run unit-tests$/i'
      warningFilters: |
          /\d+\) Error :/i
          /\d+\) Failed :/i

然而,由于之前的任务,整个构建仍然“部分成功”。有什么方法可以忽略 Run unit-tests-任务的结果,因为我在质量门道内管理它们?

您可以为您的脚本任务设置退出代码:

- script: |
    "nunit3-console.exe" MyAssembly.dll
    exit 0
  displayName: 'Run unit-tests'
  failOnStderr: false

现在任务总是成功的。请注意,我还省略了 continueOnError-属性,因为该任务从未产生任何错误。