private Task InitializeIsCollectingAsync(ITestOperation testOperation) { collectionStatus = MsCodeCoverageCollectionStatus.NotCollecting; runMsCodeCoverage = appOptionsProvider.Get().RunMsCodeCoverage; useMsCodeCoverage = runMsCodeCoverage == RunMsCodeCoverage.Yes; userRunSettingsProjectDetailsLookup = null; return(CleanUpAsync(testOperation)); }
public async Task CollectAsync(IOperation operation, ITestOperation testOperation) { await CleanUpAsync(testOperation); var coberturaFiles = GetCoberturaFiles(operation); if (coberturaFiles.Length == 0) { await CombinedLogAsync("No cobertura files for ms code coverage."); } fccEngine.RunAndProcessReport(coberturaFiles); }
public static async Task <CoverageProjectsByType> CreateAsync(ITestOperation testOperation) { var coverageProjects = await testOperation.GetCoverageProjectsAsync(); var coverageProjectsWithRunSettings = coverageProjects.Where(coverageProject => coverageProject.RunSettingsFile != null).ToList(); var coverageProjectsWithoutRunSettings = coverageProjects.Except(coverageProjectsWithRunSettings).ToList(); return(new CoverageProjectsByType { All = coverageProjects, RunSettings = coverageProjectsWithRunSettings, Templated = coverageProjectsWithoutRunSettings }); }
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 bool CoverageConditionsMet(ITestOperation testOperation) { if (!settings.RunWhenTestsFail && testOperation.FailedTests > 0) { CombinedLog($"Skipping coverage due to failed tests. Option {nameof(AppOptions.RunWhenTestsFail)} is false"); reportGeneratorUtil.EndOfCoverageRun(); return(false); } var totalTests = testOperation.TotalTests; var runWhenTestsExceed = settings.RunWhenTestsExceed; if (totalTests > 0) // in case this changes to not reporting total tests { if (totalTests <= runWhenTestsExceed) { CombinedLog($"Skipping coverage as total tests ({totalTests}) <= {nameof(AppOptions.RunWhenTestsExceed)} ({runWhenTestsExceed})"); reportGeneratorUtil.EndOfCoverageRun(); return(false); } } return(true); }
private async Task CleanUpAsync(ITestOperation testOperation) { coverageProjectsByType = await CoverageProjectsByType.CreateAsync(testOperation); await templatedRunSettingsService.CleanUpAsync(coverageProjectsByType.RunSettings); }
public Task TestExecutionNotFinishedAsync(ITestOperation testOperation) { return(CleanUpAsync(testOperation)); }
private async Task TestExecutionFinishedCollectionAsync(IOperation operation, ITestOperation testOperation) { if (msCodeCoverageCollectionStatus == MsCodeCoverageCollectionStatus.Collecting) { await msCodeCoverageRunSettingsService.CollectAsync(operation, testOperation); } else { fccEngine.ReloadCoverage(testOperation.GetCoverageProjectsAsync); } }