In this earlier post, I discussed how to create a test case via the TFS API. For my next trick, I’m going to create some test case steps.
The first thing you need is the TestManagement Client:
Once this is installed, the rest is quite straightforward; here’s the method to create the steps:
private static void AddTestCaseSteps(string uri, Project project, int testCaseId, string[] steps) { TfsTeamProjectCollection tfs; tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(uri)); // https://mytfs.visualstudio.com/DefaultCollection tfs.Authenticate(); ITestManagementService service = (ITestManagementService)tfs.GetService(typeof(ITestManagementService)); ITestManagementTeamProject testProject = service.GetTeamProject(project); ITestCase testCase = testProject.TestCases.Find(testCaseId); foreach (string step in steps) { ITestStep newStep = testCase.CreateTestStep(); newStep.Title = step; // newStep.ExpectedResult = "Expected result"; testCase.Actions.Add(newStep); } testCase.Save(); }
As you can see, the ITestManagementService does a lot of the work for you, and once you have the test case, the rest is straightforward. Here’s what the CreateNewTestCase looks like now:
private static ActionResult CreateNewTestCase(string uri, Project project, WorkItem testedWorkItem, string description, string assignee, string[] reproductionSteps) { WorkItemType workItemType = project.WorkItemTypes["Test Case"]; // Create the work item. WorkItem newTestCase = new WorkItem(workItemType); newTestCase.Title = $"Test {testedWorkItem.Title}"; newTestCase.Description = description; newTestCase.AreaPath = testedWorkItem.AreaPath; newTestCase.IterationPath = testedWorkItem.IterationPath; newTestCase.Fields["Assigned To"].Value = assignee; // Copy tags newTestCase.Fields["Tags"].Value = testedWorkItem.Fields["Tags"].Value; ActionResult result = CheckValidationResult(newTestCase); if (result.Success) { CreateTestedByLink(uri, testedWorkItem, result.Id); AddTestCaseSteps(uri, project, result.Id, reproductionSteps); } return result; }
Finally, here’s the test case:
References
http://blogs.microsoft.co.il/shair/2013/10/07/tfs-api-part-51-adding-test-step-amp-shared-step/