web-dev-qa-db-ja.com

Azureパイプラインで「テストが失敗した」場合、ビルドパイプラインを失敗させるにはどうすればよいですか?

Azureパイプラインで1つのテストが失敗した場合、ビルドパイプラインを失敗させたいのですが。

Azureは、テストが失敗した状態になったことを正常に検出できますが、ビルドパイプライン全体に成功した状態を提供します。

enter image description here

問題は、テストステージが失敗した場合に、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
8
Mawardy

追加してみてくださいfailOnStandardError: 'true'タスク入力:

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

元の答えは私にとってはうまくいきませんでしたが、これには たくさんの議論 があったようです、そして failTaskOnFailedTests パラメータが仕事。それはうまくいくようです。


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

これがデフォルトの動作ではないことにまだ驚いています。

3
mragh