Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TFS 2015 Api获取构建信息_C#_Tfs - Fatal编程技术网

C# TFS 2015 Api获取构建信息

C# TFS 2015 Api获取构建信息,c#,tfs,C#,Tfs,对于我们新的TFS 2015服务器,我想创建一个网页,您可以在其中查看每个版本的警告计数和代码覆盖率的历史记录。如何获取发生了多少警告以及单元测试覆盖了多少构建代码的信息?我曾尝试通过BuildHttpClient获取构建来查找此信息,但在通过构建类进行调试时,我没有找到任何包含该信息的属性。以下是我如何获得构建的代码: public static Build[] GetRunningBuilds(this BuildHttpClient buildServer, string coll

对于我们新的TFS 2015服务器,我想创建一个网页,您可以在其中查看每个版本的警告计数和代码覆盖率的历史记录。如何获取发生了多少警告以及单元测试覆盖了多少构建代码的信息?我曾尝试通过
BuildHttpClient
获取构建来查找此信息,但在通过构建类进行调试时,我没有找到任何包含该信息的属性。以下是我如何获得构建的代码:

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

要获得代码覆盖率,需要使用
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);
您需要使用Microsoft.TeamFoundation.TestManagement.WebApi中的“GetBuildCodeCoverageAsync”方法来获取代码覆盖率信息

ITestManagementHttpClient.GetBuildCodeCoverageAsync(string, int, int, object, System.Threading.CancellationToken)
System.Threading.Tasks.Task> GetBuildCodeCoverageAsync(字符串项目、int buildId、int标志、, [object userState=null],[System.Threading.CancellationToken cancellationToken=null]) Microsoft.TeamFoundation.TestManagement.WebApi.ITestManagement HttpClient的成员

摘要:将基于REST的消息发送到服务器以获取代码覆盖率 基于buildId和此API可使用的标志的生成的对象 在获取过程中


有关标志信息,请参阅此链接以了解详细信息:。

您使用的是XAML版本还是新的版本系统?新的版本系统。TFS门户会显示结果,但来自
GetBuildCodeCoverageAsync
的响应将是空列表,这有什么原因吗?