2016-08-26 12 views
1

새로운 TFS 2015 서버의 경우 각 빌드에 대한 경고 수 및 코드 적용 내역을 볼 수있는 웹 페이지를 만들고 싶습니다. 얼마나 많은 경고가 발생했으며 유닛 테스트로 덮여 있던 코드의 코드가 얼마나 많은지 정보를 얻는 방법은 무엇입니까? BuildHttpClient을 통해 빌드를 가져옴으로써이를 찾으려고 시도했지만 Build 클래스를 통해 디버깅 할 때 해당 정보가있는 속성을 찾지 못했습니다. 여기에 내가 빌드 얼마나 코드입니다 :TFS 2015 Api 빌드 정보 얻기

public static Build[] GetRunningBuilds(this BuildHttpClient buildServer, string collectionName) 
    { 
     return buildServer.GetBuildsAsync(collectionName, statusFilter: BuildStatus.InProgress).Result.ToArray(); 
    } 

    public static Build[] GetFailedBuilds(this BuildHttpClient buildServer, string collectionName) 
    { 
     var builds = buildServer.GetBuildsAsync(collectionName, statusFilter: BuildStatus.Completed, resultFilter: BuildResult.Failed).Result.ToList(); 
     builds.AddRange(buildServer.GetBuildsAsync(collectionName, statusFilter: BuildStatus.Completed, resultFilter: BuildResult.PartiallySucceeded).Result); 

     return builds.OrderBy(b=>b.FinishTime).ToArray(); 
    } 

    public static DefinitionReference[] GetBuildDefinitions(this BuildHttpClient buildServer, string collectionName) 
    { 
     var buildDefinitions = buildServer.GetDefinitionsAsync(project: collectionName).Result.ToList(); 
     return buildDefinitions.ToArray(); 
    } 
+0

XAML 빌드 또는 새 빌드 시스템을 사용하고 있습니까? –

+0

새로운 빌드 시스템. – CheesusCrust

답변

0

코드 커버리지를 얻으려면, 당신은 CoverageAnalysisManager를 사용해야합니다. 이처럼

:

TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs_server_here:8080/tfs/something_here")); 
ITestManagementService tcm = (ITestManagementService) tfs.GetService(typeof(ITestManagementService)); 
ITestManagementTeamProject testManagementTeamProject = tcm.GetTeamProject("team_name_here"); 
ICoverageAnalysisManager coverageAnalysisManager = testManagementTeamProject.CoverageAnalysisManager; 
IBuildCoverage[] queryBuildCoverage = coverageAnalysisManager.QueryBuildCoverage(build.Uri.ToString(), CoverageQueryFlags.Modules); 
1

당신은 코드 커버리지 정보를 얻을 수 Microsoft.TeamFoundation.TestManagement.WebApi에서 "GetBuildCodeCoverageAsync"방법을 사용해야합니다. System.Threading.Tasks.Task> GetBuildCodeCoverageAsync

ITestManagementHttpClient.GetBuildCodeCoverageAsync(string, int, int, object, System.Threading.CancellationToken) 

(문자열 프로젝트, 플래그 [개체 userState = NULL], [System.Threading.CancellationToken cancellationToken = NULL]를 INT, buildId를 INT) Microsoft.TeamFoundation.TestManagement.WebApi.ITestManagementHttpClient의 회원

요약 : 코드 검사에게 buildId 및 플래그이 API를 기반으로 빌드 객체를 얻기 위해 서버에 REST 기반의 MSG를 전송 GET proc 디렉토리에 소비 할 수있는 ess.

플래그 정보는 Get code coverage data for a build 링크를 참조하십시오.

관련 문제