示例#1
0
        private async Task WriteBuildDetails(Build build, List <TestRun> testRuns, CodeCoverageSummary coverage, ISink sink)
        {
            CodeCoverageStatistics linesCovered = coverage?.CoverageData?.FirstOrDefault()?.CoverageStats?.FirstOrDefault(s => s.Label == LinesCoverageStatsLabel);

            int totalTests   = testRuns?.Sum(r => r.TotalTests) ?? 0;
            int passedTests  = testRuns?.Sum(r => r.PassedTests) ?? 0;
            int ignoredTests = testRuns?.Sum(r => r.IncompleteTests + r.NotApplicableTests + r.UnanalyzedTests) ?? 0;

            await sink.Write(
                new string[]
            {
                build.Id.ToString(),
                build.BuildNumber,
                build.Definition?.Name,
                build.RequestedBy?.DisplayName,
                build.RequestedFor?.DisplayName,
                build.Repository?.Name,
                build.QueueTime?.ToString("s"),
                build.StartTime?.ToString("s"),
                build.FinishTime?.ToString("s"),
                build.SourceBranch,
                build.SourceVersion,
                build.Result.ToString(),
                totalTests.ToString(),
                passedTests.ToString(),
                ignoredTests.ToString(),
                linesCovered?.Covered.ToString(),
                linesCovered?.Total.ToString()
            });
        }
示例#2
0
        private async Task WriteBuildDetailsForRepository(string projectName, ISink sink)
        {
            IPagedList <Build> builds = await buildClient.GetBuildsAsync2(projectName, null, null, null, null, null, null, null, BuildStatus.Completed);

            foreach (Build build in builds)
            {
                CodeCoverageSummary coverage = await testManagementClient.GetCodeCoverageSummaryAsync(projectName, build.Id);

                List <TestRun> testRuns = await testManagementClient.GetTestRunsAsync(projectName, build.Uri.ToString());

                await WriteBuildDetails(build, testRuns, coverage, sink);
            }
        }