2
我正在嘗試使用TestPlan的TFS API獲取特定的TestSuite。使用TFS API通過Id獲取特定的TestSuite
TestSuite可以存在於TestSuite層次結構中的任何位置,所以我當然可以編寫遞歸函數。然而,我想要更高效的東西。
有沒有我缺少的方法,或者我可以寫一個查詢?
我正在嘗試使用TestPlan的TFS API獲取特定的TestSuite。使用TFS API通過Id獲取特定的TestSuite
TestSuite可以存在於TestSuite層次結構中的任何位置,所以我當然可以編寫遞歸函數。然而,我想要更高效的東西。
有沒有我缺少的方法,或者我可以寫一個查詢?
如果你已經知道testSuiteId
事情很簡單。你只需要知道你的TeamProject teamProjectName
名稱:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.TestManagement.Client;
namespace GetTestSuite
{
class Program
{
static void Main()
{
int testSuiteId = 555;
const string teamProjectName = "myTeamProjectName";
var tpc =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
new Uri("http://tfsURI"));
var tstService = (ITestManagementService)tpc.GetService(typeof(ITestManagementService));
var tProject = tstService.GetTeamProject(teamProjectName);
var myTestSuite = tProject.TestSuites.Find(testSuiteId);
}
}
}
如果你不這樣做,你可能需要去一個類似的解決方案呈現here(這是一個S.Raiten後),遞歸的確出現在圖片中。假定訪問testPlanId
:
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.TestManagement.Client;
namespace GetTestSuite
{
class Program
{
static void Main()
{
int testPlanId = 555;
const string teamProjectName = "myTeamProjectName";
var tpc =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(
new Uri("http://tfsURI"));
var tstService = (ITestManagementService)tpc.GetService(typeof(ITestManagementService));
var tProject = tstService.GetTeamProject(teamProjectName);
var myTestPlan = tProject.TestPlans.Find(testPlanId);
GetPlanSuites(myTestPlan.RootSuite.Entries);
}
public static void GetPlanSuites(ITestSuiteEntryCollection suites)
{
foreach (ITestSuiteEntry suiteEntry in suites)
{
Console.WriteLine(suiteEntry.Id);
var suite = suiteEntry.TestSuite as IStaticTestSuite;
if (suite != null)
{
if (suite.Entries.Count > 0)
GetPlanSuites(suite.Entries);
}
}
}
}
}