gpt4 book ai didi

Azure DevOps PublishTestResults 任务——测试失败时如何发布结果

转载 作者:行者123 更新时间:2023-12-04 15:52:43 27 4
gpt4 key购买 nike

我在 Azure DevOps 构建过程中运行基于 pytest 的测试套件。我安排了两项工作来针对两个不同的环境运行这些测试。

在每个作业中,我使用脚本任务运行 pytest 测试并生成 junit 样式的 xml 输出文件,然后让 PublishTestResults 任务发布该 xml 文件。这非常有效,我可以在 azure 构建测试报告 UI 中仔细阅读我的测试结果 - 但前提是所有测试都通过。如果任何测试失败,则会跳过发布任务,并且不会在 UI 中报告测试。

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 文件始终会创建。我这里需要修复什么?如果测试报告仅在测试通过时才显示,那么它并不是很有帮助。

最佳答案

在任务描述中,条件实际上被列为任务输入,因此根本不会被考虑在内。

你有:

# PUBLISH JUNIT RESULTS
- task: PublishTestResults@2
inputs:
condition: succeededOrFailed()
testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit
testResultsFiles: '**/TEST-*.xml'

正确的设置是

# PUBLISH JUNIT RESULTS
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit' # Options: JUnit, NUnit, VSTest, xUnit
testResultsFiles: '**/TEST-*.xml'
condition: succeededOrFailed()

您可以使用条件执行的操作的完整列表是 here

关于Azure DevOps PublishTestResults 任务——测试失败时如何发布结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53213554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com