2017-06-20 35 views
0

我们对TFS相当陌生,我一直在尝试清理一些区域。我可以看到一个简单的TFS查询,其中有超过180个测试套件,名称为“New suite”...我不想尝试打开每个测试套件,并查看是否有测试用例分配给它。TFS查询或SQL查询来识别空测试计划或空测试套件

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

感谢

帕特

回答

0

您可以使用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 Server中的SQL查询得到空测试套件或测试计划,请参阅下面的样本。

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

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

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

enter image description here

更新:

如果你想获得的计划和家长套房名称,在上面查询“标题”一栏将显示所有套件名称包括家长套房名称。我没有找到确切的表格来获取计划名称,但我们可以通过REST API得到它,您可以使用下面的示例PowerShell脚本获取所有测试计划名称。只需复制/粘贴脚本并将其保存为.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 

enter image description here

+0

我喜欢的SQL的想法,但我应该连接到TFS SQL服务器或报表服务器,和我连接到哪个数据库的鞋?对不起,这样一个基本的问题... Pat –

+0

@PatDelaney是的,你需要连接到TFS SQL服务器,只需在您的TFS SQL Server机器中打开SSMS(Sql Server Management Studio),然后连接到SQL Server,然后新建查询>复制并粘贴上面的sql查询(更改为您的集合数据库)>执行查询,您将获得结果。 –

+0

所以我最终得到了DBA的只读权限。我已经剪切并粘贴了上面的查询。我还从新查询窗口顶部的下拉列表中选择了我想要访问的数据库。 (我正在使用SSDT)当我运行我得到的查询:消息208,级别16,状态1,行1我必须改变TFS_CollectionLC到别的东西吗? 无效的对象名称'Tfs_CollectionLC.dbo.tbl_Suite'。 –