【问题标题】:How to fail the build pipeline if "Tests Failed" in azure pipelines?如果天蓝色管道中的“测试失败”,如何使构建管道失败?
【发布时间】:2019-03-18 06:45:46
【问题描述】:

如果 azure 管道的单个测试失败,我希望构建管道失败。

Azure 可以成功检测到我的测试进入了失败状态,但它为整个构建管道提供了成功状态:

问题是如果测试阶段失败,如何让 azure 给出失败的构建状态?

这是我的 azure-pipelines.yml

# Build ASP.NET Core project using Azure Pipelines
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core?view=vsts

pool:
  vmImage: 'Ubuntu 16.04'

variables:
  buildConfiguration: 'Release'

steps:
- script: |
    dotnet build --configuration $(buildConfiguration)
    dotnet test dotnetcore-tests --configuration $(buildConfiguration) --logger trx
    dotnet publish --configuration $(buildConfiguration) --output $BUILD_ARTIFACTSTAGINGDIRECTORY

- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'

- task: PublishBuildArtifacts@1

【问题讨论】:

  • 嗨,你试过我的回答了吗?

标签: azure-devops azure-pipelines azure-pipelines-build-task


【解决方案1】:

最初的答案对我不起作用,但它看起来有a lot of discussion,现在有一个failTaskOnFailedTests 参数用于该任务。这似乎行得通。


- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
    failTaskOnFailedTests: true

我仍然很惊讶这不是默认行为。

【讨论】:

    【解决方案2】:

    尝试在任务输入中添加failOnStandardError: 'true'

    - task: PublishTestResults@2
      inputs:
        testRunner: VSTest
        testResultsFiles: '**/*.trx'
        failOnStandardError: 'true'
    

    【讨论】:

      【解决方案3】:

      取消选中下面突出显示的选项

      【讨论】:

      • 这也是一个很好的答案,因为它允许您在管道级别执行此操作,您可以在其中拥有多个具有不同行为的管道,使用代码方法也很好,但随后会给您相同的结果每个管道都没有。所以这取决于你的结果,这是有效的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2021-10-27
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多