使用 PowerShell,如何查询 Team Foundation Server 2017 Update 2(本地)以从最新完成的门控 checkin 中获取代码覆盖率百分比指标?
我在 MS 引用文档中没有找到可以使用的明确的 API 调用。在 Web 界面中,我可以在仪表板中看到给定的已完成构建的百分比值以及下载整个 Visual Studio 覆盖文件的链接。不过我不想要这个文件。我只想进行 API 调用并获取给定定义的最后一次成功构建的百分比覆盖率值。
最佳答案
不幸的是,VSTS 的 REST API 的文档现在已关闭,但这应该可以帮助您入门 ( pulled from Google's Cache )。
此端点处理与测试和代码覆盖率相关的所有内容。
https://{instance}/DefaultCollection/{project}/_apis/test/codeCoverage?api-version={version}[&buildId={int}&flags={int}]
提供以下值,然后运行此 Invoke-RestMethod
以取回数据。
$Instance = 'fabrikam-fiber-inc.visualstudio.com' #your URL here
$ProjectName = #YourProjectNameHere
$buildID = #YourBuildIDHere
$version = '2.0-preview'
Invoke-RestMethod -uri https://$Instance/DefaultCollection/$ProjectName/_apis/test/codeCoverage?api-version=$version
以下是您可以获得的响应示例:
Status code: 200
{
"value": [
{
"configuration": {
"id": 51,
"flavor": "Debug",
"platform": "Any CPU",
"uri": "vstfs:///Build/Build/363",
"project": {}
},
"state": "0",
"lastError": "",
"modules": [
{
"blockCount": 2,
"blockData": "Aw==",
"name": "fabrikamunittests.dll",
"signature": "c27c5315-b4ec-3748-9751-2a20280c37d5",
"signatureAge": 1,
"statistics": {
"blocksCovered": 2,
"linesCovered": 4
},
"functions": []
}
],
"codeCoverageFileUrl": "..."
}
],
"count": 1
}
看起来blocksCovered 和livesCovered 可能是您从API 中获得的最接近的。如果您需要帮助或遇到困难,请告诉我。最终,docs will be back online at this URL .
关于rest - 如何使用 PowerShell 和 REST API 从 TFS 2017u2 获取最新版本的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097276/