Azure DevOps 测试通过率数据未显示

问题描述 投票:0回答:1

我有一个 Azure DevOps .yaml 管道,它执行一些使用 XUnit 创建的 .Net 测试。 使用以下命令执行测试

--collect:"XPlat Code Coverage" --results-directory "./coverlet" --logger "trx;logfilename=testresults.trx" --configuration Release

这是发布结果的 .yaml 任务

- task: PublishTestResults@2
      displayName: Publishing test results
      inputs:
        testResultsFiles: 'coverlet/**/*.trx'
        testResultsFormat: 'XUnit'
        failTaskOnFailedTests: true

从日志中,我看到

testresults.trx
文件已经生成,并且结果发布顺利。 但是,当我打开我执行的管道的Analytics选项卡时,我看不到测试通过率区域中的数据,但管道通过率管道持续时间信息显示正确。

我是不是做错了什么?

注意事项 我正在使用 Azure DevOps 服务器 2022

azure-devops
1个回答
0
投票

我看不到测试通过率区域的数据,但Pipeline通过率和Pipeline持续时间信息显示正确。

如果您在测试通过率区域看不到数据,可能是因为管道中没有执行测试或管道结果未发布。

请进入管道运行结果页面,检查是否有如下所示的

Tests
选项卡,它显示了当前运行中执行的所有测试。如果该选项卡存在,您应该能够在测试通过率报告中看到数据。 enter image description here

如果

Tests
选项卡不存在,请进入测试任务日志,检查是否有实际执行的测试。

enter image description here

如果测试是在测试任务中执行的,请检查您是否发布了测试结果。假设您正在使用

DotNetCoreCLI@2
任务(如果没有,则使用它),该任务将默认自动发布测试结果,并自动在命令中附加
--results-directory {{Agent.TempDirectory}}
。因此,需要删除命令中的
--results-directory
以避免冲突,示例如下:

jobs:
- job: job1
  steps:
  - task: DotNetCoreCLI@2
    displayName: dotnet test
    inputs:
      command: 'test'
      arguments: '--configuration Release --collect:"XPlat Code Coverage" --logger "trx;logfilename=testresults.trx"'
      publishTestResults: true                    #<- default is true
      testRunTitle: 'testruntitletest'
      #workingDirectory: '$(System.DefaultWorkingDirectory)\XUnit.Coverlet.Collector'

  - task: PublishTestResults@2
    displayName: Publishing test results
    inputs:
      testResultsFiles: '$(Agent.TempDirectory)/**/*.trx'
      testResultsFormat: 'XUnit'
      failTaskOnFailedTests: true

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.