public async Task <MsCodeCoverageCollectionStatus> IsCollectingAsync(ITestOperation testOperation) { await InitializeIsCollectingAsync(testOperation); if (runMsCodeCoverage == RunMsCodeCoverage.No) { logger.Log($"See option {nameof(IAppOptions.RunMsCodeCoverage)} for a better ( Beta ) experience. {FCCGithub.Readme}"); reportGeneratorUtil.LogCoverageProcess($"See option {nameof(IAppOptions.RunMsCodeCoverage)} for a better ( Beta ) experience. View readme."); } else { await TrySetUpForCollectionAsync(testOperation.SolutionDirectory); } ReportEndOfCoverageRunIfError(); return(collectionStatus); }
private async System.Threading.Tasks.Task <string[]> RunCoverageAsync(List <ICoverageProject> coverageProjects, CancellationToken vsShutdownLinkedCancellationToken) { // process pipeline await PrepareCoverageProjectsAsync(coverageProjects, vsShutdownLinkedCancellationToken); foreach (var coverageProject in coverageProjects) { await coverageProject.StepAsync("Run Coverage Tool", async (project) => { var start = DateTime.Now; var coverageTool = coverageUtilManager.CoverageToolName(project); var runCoverToolMessage = $"Run {coverageTool} ({project.ProjectName})"; logger.Log(runCoverToolMessage); reportGeneratorUtil.LogCoverageProcess(runCoverToolMessage); await coverageUtilManager.RunCoverageAsync(project, vsShutdownLinkedCancellationToken); var duration = DateTime.Now - start; var durationMessage = $"Completed coverage for ({coverageProject.ProjectName}) : {duration}"; logger.Log(durationMessage); reportGeneratorUtil.LogCoverageProcess(durationMessage); }); if (coverageProject.HasFailed) { var coverageStagePrefix = String.IsNullOrEmpty(coverageProject.FailureStage) ? "" : $"{coverageProject.FailureStage} "; var failureMessage = $"{coverageProject.FailureStage}({coverageProject.ProjectName}) Failed."; logger.Log(failureMessage, coverageProject.FailureDescription); reportGeneratorUtil.LogCoverageProcess(failureMessage + " See the FCC Output Pane"); } } var passedProjects = coverageProjects.Where(p => !p.HasFailed); return(passedProjects .Select(x => x.CoverageOutputFile) .ToArray()); }
private void CombinedLog(string message) { reportGeneratorUtil.LogCoverageProcess(message); logger.Log(message); }