Ejemplo n.º 1
0
 private Task InitializeIsCollectingAsync(ITestOperation testOperation)
 {
     collectionStatus  = MsCodeCoverageCollectionStatus.NotCollecting;
     runMsCodeCoverage = appOptionsProvider.Get().RunMsCodeCoverage;
     useMsCodeCoverage = runMsCodeCoverage == RunMsCodeCoverage.Yes;
     userRunSettingsProjectDetailsLookup = null;
     return(CleanUpAsync(testOperation));
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
            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
                });
            }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        private async Task CleanUpAsync(ITestOperation testOperation)
        {
            coverageProjectsByType = await CoverageProjectsByType.CreateAsync(testOperation);

            await templatedRunSettingsService.CleanUpAsync(coverageProjectsByType.RunSettings);
        }
Ejemplo n.º 7
0
 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);
     }
 }