在哪里可以找到 azure 构建管道的测试结果?

Mig*_*Slv 5 unit-testing azure visual-studio azure-pipelines visual-studio-2019

我找不到适合我的构建管道的正确路径配置。

发布测试结果任务始终以无文件匹配警告结束。

这是 yaml 文件的相关部分:

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    testFiltercriteria: 'TestCategory!=Local'

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'VSTest'
    testResultsFiles: '**/TestResults/*.trx'
Run Code Online (Sandbox Code Playgroud)

在此更新 VSTest 输出:

**************** Completed test execution *********************
Test results files: D:\a\_temp\TestResults\VssAdministrator_fv-az111_2020-07-10_11_01_10.trx
Created test run: 38
Publishing test results: 155
Publishing test results to test run '38'.
TestResults To Publish 155, Test run id:38
Test results publishing 155, remaining: 0. Test run id: 38
Published test results: 155
Publishing Attachments: 1
Completed TestExecution Model...
Finishing: VSTest
Run Code Online (Sandbox Code Playgroud)

掩码应捕获 trx 文件。

Lev*_*SFT 5

如果您检查VSTest任务的构建日志,您会发现测试结果文件的存储位置。

在此输入图像描述

默认情况下,结果存储在$(Agent.TempDirectory)/TestResults.

因此,您可以将searchFolderPublishTestResults 任务的属性设置为$(Agent.TempDirectory)/TestResults。见下文:

- task: PublishTestResults@2
  displayName: 'Publish Test Results'
  inputs:
    testResultsFormat: VSTest
    testResultsFiles: '**/*.trx'
    searchFolder: '$(Agent.TempDirectory)\TestResults'
Run Code Online (Sandbox Code Playgroud)

另一种方法是设置resultsFolderVSTest 任务的属性来自定义测试结果输出位置。见下文:

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    testFiltercriteria: 'TestCategory!=Local'
    resultsFolder: '$(System.DefaultWorkingDirectory)\TestResults'

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'VSTest'
    testResultsFiles: '**/TestResults/*.trx'   
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我将resultsFoldervstest 任务指定到文件夹$(System.DefaultWorkingDirectory)\TestResults。因此测试结果文件将存储在该文件夹中。

最简单的方法是,如果测试用例运行 Vstest 任务,则不要使用 PublishTestResults 任务,如上面评论中提到的线程。Vstest任务会自动发布测试结果。

其他内置任务(例如 Visual Studio Test 任务和 Dot NetCore CLI 任务)会自动将测试结果发布到管道,而 Ant、Maven、Gulp、Grunt、.Net Core 和 Xcode 等任务则将发布结果作为任务中的选项提供。如果您正在使用其中任何任务,则不需要在管道中单独的发布测试结果任务。