TFS API Part 27 – Test Plans, Test Suites, Test Cases Mapping






4.91/5 (3 votes)
In this post, I’ll show how to get all Test Suites hierarchy Test Cases and more.
In my last post TFS API Part 26 – Add/Remove Test Plans, I showed how to Add remove Test Plan using MTM API.
Picture - A
Now when we know how to use work with Test Plan, let's deep dive to all items under each Test Plan. In this post, I'll show how to get all Test Suites hierarchy Test Cases and more.
As a QA manager, it will be awesome to get a view of all Team Projects and all Test Plans under one window.
Step 1: Create Project and Add Reference
Create an WPF/WinForm application and add the following references:
- Microsoft.TeamFoundation.WorkItemTracking.Client.dll
- Microsoft.TeamFoundation.Client.dll
- Microsoft.TeamFoundation.dll
- Microsoft.TeamFoundation.TestManagement.Client
All files are located under - c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\
Step 2: Connect to Team Foundation Server
private TfsTeamProjectCollection _tfs;
private ITestManagementTeamProject _testproject;
TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, false);
tpp.ShowDialog();
if (tpp.SelectedTeamProjectCollection != null)
{
this._tfs = tpp.SelectedTeamProjectCollection;
ITestManagementService test_service =
(ITestManagementService)_tfs.GetService(typeof(ITestManagementService));
this._testproject = test_service.GetTeamProject(tpp.SelectedProjects[0].Name);
GetTestPlans();
btn_add.IsEnabled = true;
btn_remove_plan.IsEnabled = true;
}
Step 3: Get Test Plans
void GetTestPlans(ITestManagementTeamProject testproject)
{
ITestPlanCollection plans = testproject.TestPlans.Query("Select * From TestPlan");
TreeViewItem root = null;
root = new TreeViewItem();
root.Header = ImageHelpers.CreateHeader
(testproject.WitProject.Name, ItemTypes.TeamProject);
TreeMain.Items.Add(root);
foreach (ITestPlan plan in plans)
{
TreeViewItem plan_tree = new TreeViewItem();
plan_tree.Header = ImageHelpers.CreateHeader(plan.Name, ItemTypes.TestPlan);
if (plan.RootSuite != null && plan.RootSuite.Entries.Count > 0)
GetPlanSuites(plan.RootSuite.Entries, plan_tree);
root.Items.Add(plan_tree);
}
}
Step 4: Get Test Suites
void GetPlanSuites(ITestSuiteEntryCollection suites, TreeViewItem tree_item)
{
foreach (ITestSuiteEntry suite_entry in suites)
{
IStaticTestSuite suite = suite_entry.TestSuite as IStaticTestSuite;
if (suite != null)
{
TreeViewItem suite_tree = new TreeViewItem();
suite_tree.Header = ImageHelpers.CreateHeader
(suite.Title, ItemTypes.TestSuite);
GetTestCases(suite, suite_tree);
tree_item.Items.Add(suite_tree);
if (suite.Entries.Count > 0)
GetPlanSuites(suite.Entries, suite_tree);
}
}
}
Step 5: Get Test Cases
void GetTestCases(IStaticTestSuite suite, TreeViewItem tree_item)
{
//AllTestCases - Will show all the Test Cases under that Suite even in sub suites.
//ITestCaseCollection testcases = suite.AllTestCases; – See Picture B
//Will bring only the Test Case under a specific Test Suite. – See Picture A
ITestSuiteEntryCollection suiteentrys = suite.TestCases;
foreach (ITestSuiteEntry testcase in suiteentrys)
{
TreeViewItem test = new TreeViewItem();
test.Header = ImageHelpers.CreateHeader(testcase.Title, ItemTypes.TestCase);
tree_item.Items.Add(test);
}
}
Picture - B