Freigeben über


Query Test Run Results by Build

Here is the piece of code to query test run results from MTM 2010 for given build:

Step 1: Get the Build Uri for given Build Name

 

public Uri GetBuildUri(string BuildName)

{

    Uri buildUri = null;

    if (string.IsNullOrEmpty(BuildName))

        return null;

IBuildServer buildServer = (IBuildServer)(((TfsTeamProjectCollection) <<TeamProjectCollection>> ).GetService(typeof(IBuildServer)));

// create spec instance and apply the filter like build name, date time

   IBuildDetailSpec spec = buildServer.CreateBuildDetailSpec(GetProject().Name);

    spec.BuildNumber = <<BuildName>>; //Example - "Daily_20110502.4";

    IBuildQueryResult buildDetails = buildServer.QueryBuilds(spec);

    if (buildDetails != null)

        buildUri = (buildDetails.Builds[0]).Uri;

    return buildUri;

}

Step 2: Get the TestRun for the given BuildUri

 

public IEnumerable<ITestRun> GetTestResultsByBuild(ITestManagementTeamProject testManagementTeamProject, Uri BuildUri)

{

if (testManagementTeamProject == null)

    return null;

    IEnumerable<ITestRun> testRuns = testManagementTeamProject.TestRuns.ByBuild(BuildUri);

    return testRuns;

}

Step 3: Loop through the TestRuns to display the Test Case output.

  

foreach (ITestRun testRun in testRuns)

{

    foreach (ITestCaseResult result in testRun.QueryResults())

    {

System.Console.WriteLine(string.Format("TestCaseID:{0}",result.TestCaseId.ToString()));

System.Console.WriteLine(string.Format("TestCaseID:{0}",result. Priority.ToString()));

System.Console.WriteLine(string.Format("TestCaseID:{0}",result. TestCaseTitle.ToString()));

System.Console.WriteLine(string.Format("TestCaseID:{0}",result. Outcome.ToString()));

System.Console.WriteLine(string.Format("TestCaseID:{0}",result. DateStarted.ToString()));

System.Console.WriteLine(string.Format("TestCaseID:{0}",result. DateCompleted.ToString()));

    }

}