Azure devops 如何在VSTS VsTest任务中引用覆盖率文件路径?

Azure devops 如何在VSTS VsTest任务中引用覆盖率文件路径?,azure-devops,code-coverage,azure-pipelines,Azure Devops,Code Coverage,Azure Pipelines,我在构建定义中有一个VsTest任务,它生成一个.coverage文件,可以使用“下载代码覆盖率结果”链接下载该文件。然后我使用它创建HTML报告。效果很好 现在我想添加一个脚本任务来在服务器上运行ReportGenerator,但我还没有弄清楚如何实际引用.coverage文件。每次运行都是不同的,路径如下: "C:\agent\_work\1\s\TestResults\0195053f-05f0-40a5-bfae-a0215dd0af80\WIN-JQJJSGM4KOU$_WIN-JQJ

我在构建定义中有一个VsTest任务,它生成一个.coverage文件,可以使用“下载代码覆盖率结果”链接下载该文件。然后我使用它创建HTML报告。效果很好

现在我想添加一个脚本任务来在服务器上运行ReportGenerator,但我还没有弄清楚如何实际引用.coverage文件。每次运行都是不同的,路径如下:

"C:\agent\_work\1\s\TestResults\0195053f-05f0-40a5-bfae-a0215dd0af80\WIN-JQJJSGM4KOU$_WIN-JQJJSGM4KOU 2018-04-13 06_50_42.coverage"
路径的第一部分似乎是
$(Common.TestResultsDirectory)
,但什么是
0195053f-05f0-40a5-bfae-a0215dd0af80
?可能是身份,但是哪一个


微软有一个很好的解决方案,我稍后会详细介绍,但希望有人已经解决了这个问题。

VSTS build没有内置变量来获取代码覆盖率结果,它搜索文件。因此,您可以通过PowerShell(例如Get Childitem:)搜索TestResults文件夹(每个文件后缀)中的文件,
$(Build.SourcesDirectory)
变量的值为
C:\agent\\u work\1\s

您应该能够使用RESTAPI为每个构建获取此文件的路径。如果你这样做,动态部分就不重要了。您可以获取路径,然后将其传递给报表生成器。我会从那里开始。@Tehbeardone不知道怎么做,但听起来很有希望。我会试一试的。谢谢。如果我有更多的时间,我会举个例子。您可能需要首先发布结果,然后才能使用RESTAPI获取构建工件。我不记得怎么做了,但我知道这是可以做到的。我已经有一段时间没有这样做了,但我曾经使用dotcover生成覆盖率报告,然后我会使用API将该文件拉下来,并将其转换为我需要的格式。我很有信心这是可以做到的。你可能需要仔细研究一下才能弄清楚。你解决了这个问题吗?部分解决了。写了一些ps,了解了更多关于VST的知识,但还没有时间将其整合到一个工作解决方案中,以便在VST构建定义中生成覆盖率报告。我确实使用ps查找了最新的.coverage文件,并生成了报告,但是还没来得及弄清楚如何在构建结果中提供报告。似乎需要自定义vsts扩展。但这确实回答了如何访问.coverage文件的具体问题,所以我要将其标记为已接受。