How to fail the build pipeline if "Tests Failed" in azure pipelines?
Asked Answered
P

3

17

I want to fail the build pipeline if a single test failed with azure pipelines.

Azure can successfully detect that my tests entered a failed state however it gives a success state to the entire build pipeline:

enter image description here

The question is how to make azure give a failed build state if the tests stage failed?

Here's my azure-pipelines.yml :

# Build ASP.NET Core project using Azure Pipelines
# https://learn.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
Panhellenic answered 13/10, 2018 at 4:48 Comment(1)
Hi, did you try my answer?Sweetbrier
A
16

The original answer didn't work for me, but it looks like there was a lot of discussion on this, and there's now a failTaskOnFailedTests param for the task. That seems to work.


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

I'm still surprised this wasn't default behavior.

Araucanian answered 30/5, 2019 at 21:41 Comment(0)
S
6

Try to add failOnStandardError: 'true' in the task inputs:

- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'
    failOnStandardError: 'true'
Sweetbrier answered 14/10, 2018 at 10:42 Comment(0)
Q
1

Untick the below-highlighted option

enter image description here

Queasy answered 6/7, 2020 at 15:7 Comment(1)
This is a good answer too because it allows you to do this at the pipeline level where you could have multiple pipelines with different behavior, using the code approach is good too but would then give you identical results in each pipeline where this doesn't. So it depends on your outcome, this is valid.Microstructure

© 2022 - 2024 — McMap. All rights reserved.