如何使用PowerShell& amp ;;从TFS 2017u2获取最新版本的代码覆盖百分比REST API

时间:2017-11-03 13:45:12

标签: rest api powershell tfs tfs2017

使用PowerShell,如何查询Team Foundation Server 2017 Update 2(内部部署)以获取最新完成的gated check-in中的代码覆盖百分比指标?

我没有在MS参考文档中找到明确的API调用。在Web界面中,我可以在仪表板中看到给定的已完成构建的百分比值以及下载整个Visual Studio coverage文件的链接。不过,我不想要这个文件。我只是想进行API调用并获得给定定义的最后一次成功构建的百分比覆盖率值。

1 个答案:

答案 0 :(得分:2)

不幸的是,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