2016-11-15 93 views
4

我试图用测试套件和测试案例以编程方式创建测试计划。问题是将测试步骤添加到我的测试用例。此代码在测试用例中创建了正确的测试计划,其中包含测试套件和测试用例,但不包括测试步骤。我错在哪里?TFS 2015:将测试步骤添加到测试案例

static void Main(string[] args) 
    { 
     try 
     { 
      var tfs = TfsHelper.TryToAutenticated(); 
      var wis = tfs.GetService<WorkItemStore>(); 


      //TEST PLAN 
      // Let's create a new Test Plan from scratch 
      // Only the Name property is required to be set before 
      // you can save, but we'll set a few extras here as well. 
      ITestManagementService service = (ITestManagementService)tfs.GetService(typeof(ITestManagementService)); 
      ITestManagementTeamProject myTestManagementTeamProject = service.GetTeamProject("GammaEnterprise"); 
      ITestPlan newTestPlan = myTestManagementTeamProject.TestPlans.Create(); 
      newTestPlan.Name = "My Test Plan";     
      newTestPlan.Save(); 


      //TEST SUITE 
      // Next let's add a new Test Suite to our plan 
      // First, create a static suite (I'll cover Dynamic Suites 
      // in a future post) 
      IStaticTestSuite newSuite = myTestManagementTeamProject.TestSuites.CreateStatic(); 
      newSuite.Title = "My Suite"; 

      newTestPlan.RootSuite.Entries.Add(newSuite); 
      newTestPlan.Save(); 


      //TEST CASE 
      // Let's find the default configuration that was created when 
      // we created our Team Project. We'll need this to add some 
      // tests to our new suite (or we could create a new one, but 
      // I'll keep things simple and just get the default one for now) 
      ITestConfiguration defaultConfig = null; 

      foreach (ITestConfiguration config in myTestManagementTeamProject.TestConfigurations.Query(
       "Select * from TestConfiguration")) 
      { 
       defaultConfig = config; 
       break; 
      } 

      // I would typically check that defaultConfig is not null here 
      // but for brevity sake will skip that. 

      // Next we'll create a Testcase to add to our Test Suite 
      ITestCase tc = myTestManagementTeamProject.TestCases.Create(); 
      tc.Title = "Verify X";    


      //HERE THE PROBLEM---------------------- 
      ITestStep ts = tc.CreateTestStep(); 
      ts.TestStepType = TestStepType.ActionStep; 
      ts.Description = "Description"; 
      ts.Title = "Title"; 
      //--------------------------------------- 
      tc.Save(); 

      // Now let's add it to your suite, we still have our reference 
      // to the static suite around so we'll use that 
      // First we need an "IdAndName" object for our config 
      IdAndName defaultConfigIdAndName = new IdAndName(defaultConfig.Id, defaultConfig.Name); 

      // Now we'll set the default configs for our suite 
      newSuite.SetDefaultConfigurations(new IdAndName[] { defaultConfigIdAndName }); 

      // Now let's add that testcase 
      newSuite.Entries.Add(tc); 

      // Now let's save the plan (don't need to explicitly 
      // save test suites). 
      newTestPlan.Save(); 
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      Console.ReadLine(); 
     } 
    } 

回答

1

您可以使用命名空间:Microsoft.TeamFoundation.TestManagement.Client

例如:

var step = testCase.CreateTestStep(); 
    step.Title = "Step 1 @param1"; 
    step.ExpectedResult = "Expect 1 @param2"; 
    testCase.Actions.Add(step); 
    testCase.Save(); 

所以我认为你只需要添加步骤操作。

更多细节:

https://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.testmanagement.client.itestbase.actions.aspx

+0

非常感谢。有用。 –

+1

@LucaF。如果有效,您可以将其标记为答案。这将有助于人们稍后浏览网站。 –