Как завершить сборку конвейера, если "Тесты не пройдены" в лазурных конвейерах? - PullRequest
0 голосов
/ 13 октября 2018

Я хочу завершить сборку конвейера, если один тест не прошел с помощью конвейеров Azure.

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

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Исходный ответ у меня не сработал, но похоже, что было много обсуждений по этому вопросу, и теперь для этой задачи есть параметр failedTaskOnFailedTest.Это, кажется, работает.


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

Я все еще удивлен, что это не было поведением по умолчанию.

0 голосов
/ 14 октября 2018

Попробуйте добавить failOnStandardError: 'true' во входные данные задачи:

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