Azure devops 如果出现以下情况,如何使构建管道失败;“测试失败”;在azure管道中?

Azure devops 如果出现以下情况,如何使构建管道失败;“测试失败”;在azure管道中?,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,如果azure管道的单个测试失败,我希望构建管道失败 Azure可以成功检测到我的测试进入失败状态,但它为整个构建管道提供了成功状态: 问题是如果测试阶段失败,如何让azure提供失败的构建状态 这是我的azure管道。yml: # Build ASP.NET Core project using Azure Pipelines # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core?view=vsts

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

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

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

这是我的azure管道。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

尝试在任务输入中添加故障标准错误:“true”:

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

最初的答案对我不起作用,但看起来这上面有一个参数,现在有了一个用于该任务的参数。这似乎奏效了


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

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

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


您好,您尝试过我的答案吗?这也是一个很好的答案,因为它允许您在管道级别执行此操作,在管道级别可以有多个具有不同行为的管道,使用代码方法也很好,但在每个管道中都会得到相同的结果,而在管道级别上则不然。所以这取决于你的结果,这是有效的。