TFS 查询或 SQL 查询以识别空测试计划或空测试套件

TFS Query or SQL Query to Identify Empty Test Plans or Empty Test Suites

我们对 TFS 还很陌生,我一直在尝试清理一些区域。我可以通过一个简单的 TFS 查询看到有超过 180 个名称为 "New suite" 的测试套件...我不想尝试打开每个测试套件并查看是否有分配给它的测试用例。

有没有办法获得空测试套件的报告,也许还有空测试计划?

谢谢

帕特

您可以使用 REST API 获取测试套件列表,"testCaseCount" 将包含在响应中。请参见以下示例:

GET https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/fabrikam-fiber-tfvc/_apis/test/plans/1/suites?api-version=1.0

更多信息请参考https://www.visualstudio.com/en-us/docs/integrate/api/test/suites

此外,您还可以通过 运行在 SQL 服务器中查询 sql 来获取空的测试套件或测试计划,请参见下面的示例。

  SELECT 
       [SuiteId]
      ,[PlanId]
      ,[ParentSuiteId]
      ,[Title]
      ,[TestCaseCountFromMtm]
      ,[TestCaseCountFromWeb]

  FROM [Tfs_CollectionLC].[dbo].[tbl_Suite]

  WHERE  [TestCaseCountFromMtm]='0' and [TestCaseCountFromWeb]='0'

更新:

如果你想得到Plan和Parent Suite名称,在上面的查询中“Title”列将显示包括Parent Suite名称在内的所有套件名称。我没有找到确切的 table 来获取计划名称,但我们可以通过 REST API 获取它,您可以使用下面的示例 PowerShell 脚本来获取所有测试计划名称。只需 copy/paste 脚本并将其作为 .ps1 文件保存到客户端上的 运行。

$project = "TFVC-Scrum" # Change to your team project name here
$baseUrl = "http://12r2:8080/tfs/CollectionLC"  # Change to your TFS Collection URL         
$testplanUrl = "{0}/{1}/_apis/test/plans?api-version=1.0" -f $baseUrl, $project 
$TestPlans = (Invoke-RestMethod -Uri $testplanUrl -Method Get -UseDefaultCredential).value

$TestPlanResults = @()

foreach($TestPlan in $TestPlans){
    $testplanitemUrl = "{0}/{1}/_apis/test/plans/{2}?api-version=1.0&includeDetails=true" -f $baseUrl,$project, $TestPlan.id

    $TestPlanItem = Invoke-RestMethod -Uri $testplanitemUrl -Method Get -UseDefaultCredential

    $customObject = new-object PSObject -property @{
          "TestPlanid"= $TestPlanItem.id
          "TestPlanName"= $TestPlanItem.name
        } 

    $TestPlanResults += $customObject       
}

$TestPlanResults | Select `
                TestPlanid,
                TestPlanName