Azureパイプラインで1つのテストが失敗した場合、ビルドパイプラインを失敗させたいのですが。
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
追加してみてくださいfailOnStandardError: 'true'
タスク入力:
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
failOnStandardError: 'true'
元の答えは私にとってはうまくいきませんでしたが、これには たくさんの議論 があったようです、そして failTaskOnFailedTests
パラメータが仕事。それはうまくいくようです。
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
failTaskOnFailedTests: true
これがデフォルトの動作ではないことにまだ驚いています。