2016-04-07 1 views
0

J'essaie de créer des cas de test et de les ajouter à une suite existante basée sur les exigences.L'API C# TFS ajoute des cas de test à la suite basée sur les exigences

ci-dessous le code que je suis en train avec, mais je suis en mesure de créer des cas de test, mais pas en mesure de les ajouter à la suite

namespace ConsoleApplication1 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 

     Uri tfsUri = new Uri("http://tfsint:8080/tfs/sandbox/"); 
     string teamProjectName = "Scrum Custom"; 
     TfsTeamProjectCollection Tfs = new TfsTeamProjectCollection(tfsUri); 

     ITestManagementService service = (ITestManagementService)Tfs.GetService(typeof(ITestManagementService)); 
     ITestManagementTeamProject TestProject = (ITestManagementTeamProject)service.GetTeamProject(teamProjectName); 
     //ITestPlanCollection testPlanCollection = TestProject.TestPlans.Query("SELECT * FROM TestPlan"); 
     int myPlansId = 2009; 

     ITestPlan foundPlan = TestProject.TestPlans.Find(myPlansId); 
     Console.WriteLine("Got Plan {0} with Id {1}", 
      foundPlan.Name, foundPlan.Id); 

     //ITestSuiteBase newSuite = TestProject.TestSuites.Find(myTestSuiteId); 

base Exigence que je suis confronté à des problèmes ici avec IRequirementTestSuite, peut être la syntaxe est différente

 int myTestSuiteId = 2037; 
     IRequirementTestSuite newSuite = TestProject.TestSuites.Find(myTestSuiteId); 



     ITestConfiguration defaultConfig = null; 

     foreach (ITestConfiguration config in TestProject.TestConfigurations.Query(
      "Select * from TestConfiguration")) 
     { 
      defaultConfig = config; 
      break; 
     } 
     ITestCase tc = TestProject.TestCases.Create(); 
     tc.Title = "SAF test"; 
     tc.Area = "Scrum Custom\\Selenium Integration POC"; 
     //tc.Links.Add 
     tc.Save(); 
     System.Windows.Forms.MessageBox.Show("test case id = " + tc.Id); 

     IdAndName defaultConfigIdAndName = new IdAndName(
      defaultConfig.Id, defaultConfig.Name); 

comment ajouter cas de test à IRequirementTestSuite ici

 foundPlan.Save(); 
    } 
} 

}

+0

si vous utilisez TFS2015 vous pouvez utiliser l'API REST pour ajouter un test à une suite de tests: [lien] (https: // www. visualstudio.com/integrate/api/test/suites#Addtestcasestoasuite) – ds19

Répondre

0

Vérifiez this cas:

Suites de test à base Requirement sont dynamiques. La relation entre un test élémentaire et une exigence est déterminée par la présence d'un lien Tests/Testé par un élément de travail approprié. Vous devez donc ajouter un tel lien.

testCase = CreateTestCase(this.TestProject, tci.Title, tci.Description); 
if (this.BaseWorkingSuite is IRequirementTestSuite) 
    TFS_API.AddTestCaseToRequirementSuite(this.BaseWorkingSuite as IRequirementTestSuite, testCase); 
else if (this.BaseWorkingSuite is IStaticTestSuite) 
    (this.BaseWorkingSuite as IStaticTestSuite).Entries.Add(testCase); 
this.Plan.Save(); 

Et la méthode importante:

public static void AddTestCaseToRequirementSuite(IRequirementTestSuite reqSuite, ITestCase testCase) 
{ 
    WorkItemStore store = reqSuite.Project.WitProject.Store; 
    WorkItem tfsRequirement = store.GetWorkItem(reqSuite.RequirementId); 

    tfsRequirement.Links.Add(new RelatedLink(store.WorkItemLinkTypes.LinkTypeEnds["Tested By"], testCase.WorkItem.Id)); 
    tfsRequirement.Save(); 

    reqSuite.Repopulate(); 
}