【问题标题】:How to get test plan results from a TFS server如何从 TFS 服务器获取测试计划结果
【发布时间】:2015-03-12 03:57:54
【问题描述】:

我创建了一个连接到服务器然后获取测试计划的项目,但我在获取测试计划结果(通过、失败和活动测试用例的数量)方面遇到了困难。 下面的代码是我用来获取测试计划的代码。有关如何获得这些计划的测试结果的任何建议?或者如何获得单个测试用例的测试运行结果。我可以过滤掉我想要的测试计划、套件和案例,但我在任何地方都找不到结果。

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)
        {
            if (plan.Name.Contains("C600 Update"))
            {
                TreeViewItem plan_tree = new TreeViewItem();
                string header = plan.Id + "\t" + plan.Name;
                plan_tree.Header = ImageHelpers.CreateHeader(header, ItemTypes.TestPlan);


                if (plan.RootSuite != null && plan.RootSuite.Entries.Count > 0)
                    GetPlanSuites(plan.RootSuite.Entries, plan_tree);

                root.Items.Add(plan_tree);

            }
        }

    }


    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);

            }
        }
    }

    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;

        //Will bring only the Test Case under a specific Test Suite.
        ITestSuiteEntryCollection suiteentrys = suite.TestCases;

        foreach (ITestSuiteEntry testcase in suiteentrys)
        {
            ITestCase testCase = testcase.TestCase as ITestCase;
            TreeViewItem test = new TreeViewItem();
            string header = testcase.Id + "\t" + testcase.Title;
            test.Header = ImageHelpers.CreateHeader(header, ItemTypes.TestCase);
            tree_item.Items.Add(test);
            GetResults(testCase);
        }
    }


    void GetResults(ITestCase testCase)
    {
        // Would like to get the results for each test case here
        // If there are several test runs, only the latest counts


    }

【问题讨论】:

  • 也许我弄错了,但计划不是可以执行零次、一次或多次吗?每次执行都会有自己的结果,不是吗?
  • 先获取测试计划运行,然后在每次运行中获取结果
  • 我想获得测试计划中每个测试用例的测试结果。如果一个测试用例还没有运行,它的状态将是“活动的”。否则,它是我感兴趣的上次运行测试的结果。

标签: c# tfs


【解决方案1】:

试试:

testProject.TestResults.ByTestId(testCase.Id);

【讨论】:

  • 请解释为什么尝试这种方法会有好处。
  • 在提问者的代码sn-p中,有一个方法叫做:void GetResults(ITestCase testCase) 这是对该方法的响应。
猜你喜欢
  • 1970-01-01
  • 2018-07-04
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
相关资源
最近更新 更多