Во время процесса сборки Azure DevOps я запускаю набор тестов на основе pytest. У меня есть две работы для выполнения этих тестов в двух разных средах.
В каждом задании я запускаю тесты pytest с помощью задачи сценария и генерирую выходной файл xml в стиле junit, а затем задаю задачу PublishTestResults для публикации этого файла xml. Это прекрасно работает, и я могу просмотреть результаты своих тестов в пользовательском интерфейсе отчета о тестах сборки Azure, но только если все тесты пройдены. Если какие-либо тесты не пройдены, задача публикации пропускается, и тесты не отображаются в пользовательском интерфейсе.
YML экстракт:
- job: 'RunTestsQA'
continueOnError: True
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.6'
architecture: 'x64'
- task: DownloadSecureFile@1
inputs:
secureFile: 'ConfigFile'
- script: pip install -r requirements.txt
displayName: 'Install Requirements'
- script: |
pytest -m smoke --ENV=qa --log-file $SYSTEM_ARTIFACTSDIRECTORY/smoke-qa.log --junitxml="TEST-qa-smoke.xml"
displayName: 'Test with pytest'
# PUBLISH JUNIT RESULTS
- task: PublishTestResults@2
inputs:
condition: succeededOrFailed()
testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit
testResultsFiles: '**/TEST-*.xml'
#searchFolder: '$(System.DefaultWorkingDirectory)' # Optional
mergeTestResults: false # Optional
testRunTitle: 'API_CHECK QA'
#buildPlatform: # Optional
#buildConfiguration: # Optional
publishRunAttachments: true # Optional
Проведя некоторые эксперименты, я смог убедиться, что файл XML всегда создается. Что мне нужно исправить здесь? Отчет о тестировании не очень полезен, если он отображается только после прохождения теста.