c# - 如何从 TFS 测试计划中解析树

标签 c# tfs tree test-plan

美好的一天!

我尝试在测试计划 tfs 2010 上解析树。

所以,我可以获得测试计划:

var planOld = helperOldProject.GetTestPlan("TestProject", 10); // 10- id of test plan
ITestManagementTeamProject project1 = helperNewProject.GetProject(sourceserverurl,    sourceproject);

然后我以编程方式创建新的测试计划:

//Create a Test Plan Programmatically
 ITestPlan planNew = project1.TestPlans.Create();
        planNew.Name = planOld.Name;
        planNew.StartDate = DateTime.Now;
        planNew.EndDate = DateTime.Now.AddMonths(2);
        planNew.AreaPath = "TestArea";
        planNew.Description = planOld.Description;
        planNew.State = planOld.State;
        // other attributes: plan.AreaPath, plan.Description,plan.State
        planNew.Save();

        And then i need to parse RootSuite tree:

        var suiteOld = planOld.RootSuite;

        // Parse Root:

        IStaticTestSuite suiteNew = project1.TestSuites.CreateStatic();
         suiteNew.Title = suiteOld.Title;
         planNew.RootSuite.Entries.Add(suiteNew);

         foreach (var tcc in suiteOld.TestCases)
         {
             var tc = helperOldProject.teamProject.TestCases.Find(tcc.Id);
             var tc2 = helperNewProject.teamProject.TestCases.Create();

             tc2.Description = tc.Description;
             tc2.Owner = tc.Owner;
             tc2.Title = tc.Title;
             tc2.Save();
             suiteNew0.Entries.Add(tc2);
             planNew.Save();
         }

然后我需要解析子树:

          CreateSubTree(ref project1,ref planOld,ref planNew,ref helperOldProject,ref helperNewProject);

           public static void CreateSubTree(ref ITestManagementTeamProject project1,ref ITestPlan planOld, 
       ref ITestPlan planNew,ref Helper helperOldProject,ref Helper helperNewProject)
    {


        Console.WriteLine("SubSuites.Count: " + planOld.RootSuite.SubSuites.Count);
        foreach (ITestSuiteBase suiteOld in planOld.RootSuite.SubSuites)
        {
            IStaticTestSuite suiteNew = project1.TestSuites.CreateStatic();

            // planNew.RootSuite.SubSuites.Add(suiteNew);

            IStaticTestSuite staticSuiteOld = suiteOld as IStaticTestSuite;


            foreach (ITestSuiteEntry tccOld in staticSuiteOld.TestCases)
            {
                suiteNew.Title = suiteOld.Title;
                planNew.RootSuite.Entries.Add(suiteNew);

                //planNew.RootSuite.SubSuites.Add(suiteNew);

                var tc = helperOldProject.teamProject.TestCases.Find(tccOld.Id);
                var tc2 = helperNewProject.teamProject.TestCases.Create();

                tc2.Description = tc.Description;
                tc2.Owner = tc.Owner;
                tc2.Title = tc.Title;
                tc2.Save();
                suiteNew.Entries.Add(tc2);

            }

            Console.WriteLine(suiteOld.TestSuiteEntry);
        }
    }

所以,我解析了新的一个子树元素,但我知道,在该节点之后我还有另一个节点。就像这样:

根:元素1,元素2,元素3 ...

--- 节点1:元素1,元素2....

-------- 节点2:元素1,元素2...

但是 planOld.RootSuite.SubSuites.Count==1;我只看到 Root 和 Node1 的元素。

另一个问题是创建新的子树: 此代码不起作用:

planNew.RootSuite.SubSuites.Add(suiteNew);  // cannot add,remove item  error.

请帮我解析一下! 为什么我不能在树上添加子节点?

谢谢!

最佳答案

这是您在测试计划下创建新测试套件的方法

        ITestManagementTeamProject teamProject = testManagementService.GetTeamProject(projectId);
        ITestPlan testplan= teamProject.TestPlans.Find(testplanId);
        IStaticTestSuite newSuite = teamProject.TestSuites.CreateStatic();
        newSuite.Title = "new title";

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

第一个问题我不太明白,也许你可以解释一下。

关于c# - 如何从 TFS 测试计划中解析树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23267960/

相关文章:

tfs - 如何从 TFS 命令行命令获取包含合并候选的变更集注释?

java - 在树中查找父节点时出现 NullPointerExceptions

c# - Task.Delay 超过 int.MaxValue 毫秒

c# - 当某些单元格值为空时对单元格值求和并显示在 asp.net gridview 的页脚中

TFS 2013 查询具有多个级别的工作项层次结构

javafx - 将项目从 TreeView 拖放到文本区域中

graph - 树/图,如何表示多个父子?

c# - 调整检查并转换为值

c# - 在不使用 foreach 的情况下从数据库对象获取数据

tfs - 有没有可以托管项目的免费 Team Foundation Server?