Tfs sdk 使用TFSAPI从测试套件中显示测试结果

Tfs sdk 使用TFSAPI从测试套件中显示测试结果,tfs-sdk,microsoft-test-manager,test-suite,Tfs Sdk,Microsoft Test Manager,Test Suite,我正在参与一个学校项目,我将分析一个公司缺陷数据库。 他们正在使用微软基金会服务器(TFS)。 我对TFS和TFSAPI都是新手 我在使用TFS客户机对象模型从TFS获取正确的数据时遇到了一些问题 . 我可以检索所有的测试计划、它们各自的测试套件以及特定测试套件使用的每个测试用例,但是当我想查看哪个测试套件中有来自测试用例的特定测试结果时,问题就出现了。因为不止一个套件可以使用相同的测试用例,所以我看不出结果来自哪个套件 我这样做是为了从套件中获取测试用例: foreach (ITestSuit

我正在参与一个学校项目,我将分析一个公司缺陷数据库。 他们正在使用微软基金会服务器(TFS)。 我对TFS和TFSAPI都是新手

我在使用TFS客户机对象模型从TFS获取正确的数据时遇到了一些问题 . 我可以检索所有的测试计划、它们各自的测试套件以及特定测试套件使用的每个测试用例,但是当我想查看哪个测试套件中有来自测试用例的特定测试结果时,问题就出现了。因为不止一个套件可以使用相同的测试用例,所以我看不出结果来自哪个套件

我这样做是为了从套件中获取测试用例:

foreach (ITestSuiteEntry testcase in suiteEntrys)
{
    Console.WriteLine("\t \t Test Case: {0}", testcase.Title+", "+"Test case priority: "+ testcase.TestCase.Priority+"Test case Id: "+testcase.TestCase.Id);
    //Console.Write(", Test Case: {0}", testcase.ToString());

    //get each test result:
    getTestResult(testcase,proj);
}

private void getTestResult(ITestSuiteEntry testcase, ITestManagementTeamProject proj)
{
    var testResults = proj.TestResults.ByTestId(testcase.TestCase.Id);
    foreach (ITestCaseResult result in testResults)
    {
        Console.WriteLine("\t \t \t"+result.DateCreated+","+result.Outcome);
    }
}

因此,我的问题是,如何查看用于执行测试的测试套件?

请查看以下代码片段。
它向您展示了如何使用测试点ID获取特定测试套件的测试结果。
您可以使用类似的方法来实现您的目标

var tfscolection=new TfsTeamProjectCollection(
新Uri(tfsUrl),
新系统.Net.NetworkCredential(,);
tfsCollection.EnsureAuthenticated();
var testManagementService=tfscolection.GetService();
var teamProject=testManagementService.GetTeamProject(projectName);
var testPlan=teamProject.TestPlans.Find(testPlanId);
//获取属于特定测试套件的所有测试用例。
//(如果您使用多个测试配置,并且只想考虑其中一个,
//您必须在WHERE子句中添加'AND ConfigurationId='
字符串queryForTestPointsForSpecificTestSuite=string.Format(“从测试点中选择*,其中SuiteId={0}”,SuiteId);
var testPoints=testPlan.QueryTestPoints(queryForTestPointsForSpecificTestSuite);
//我们将在分析测试结果时使用这些ID
List testPointsIds=(从testPoints中的testPoint选择testPoint.Id);
var testResults=teamProject.testResults.ByTestId(testCaseId);
var testResultsForSpecificTestSuite=testResults.Where(testResult=>testPointsIds.Contains(testResult.TestPointId));

这篇博文将帮助您创建查询:

我不完全确定,因为我最近几天没有深入研究API的这一部分,但我记得,
ITestPoint
/
TestPointId
实际上将测试结果链接到测试套件。这篇博文可能也会帮助您转发:我在testManagementService上获得nullpointerexception。有什么想法吗?@mosaad请提供更多信息。你的意思是你得到了一个空引用异常?你什么时候得到它?我修复了它,以防有人遇到同样的问题,我忘记将url从基本url更改为一个集合,因此它找不到测试管理服务