internal static void StopRecordingInternal() { bool isRunning = CoverageRunData.instance.isRunning; if (isRunning) { if (CoverageRunData.instance.isRecording) { if (CoverageRunData.instance.isRecordingPaused) { Coverage.ResetAll(); } if (s_CoverageReporterManager == null) { s_CoverageReporterManager = CoverageReporterStarter.CoverageReporterManager; } ICoverageReporter coverageReporter = s_CoverageReporterManager.CoverageReporter; if (coverageReporter != null) { coverageReporter.OnRunFinished(null); } CoverageRunData.instance.StopRecording(); s_CoverageReporterManager.GenerateReport(); } } }
/// <summary> /// Call this to pause the recording on the current coverage recording session. /// </summary> public static void PauseRecording() { CoverageAnalytics.instance.CurrentCoverageEvent.useAPI_PauseRec = true; bool isRunning = CoverageRunData.instance.isRunning; if (isRunning) { if (CoverageRunData.instance.isRecording && !CoverageRunData.instance.isRecordingPaused) { if (s_CoverageReporterManager == null) { s_CoverageReporterManager = CoverageReporterStarter.CoverageReporterManager; } ICoverageReporter coverageReporter = s_CoverageReporterManager.CoverageReporter; if (coverageReporter != null) { coverageReporter.OnCoverageRecordingPaused(); } CoverageRunData.instance.PauseRecording(); } } }
internal static void StartRecordingInternal() { bool isRunning = CoverageRunData.instance.isRunning; if (!isRunning) { Coverage.ResetAll(); CoverageRunData.instance.StartRecording(); if (s_CoverageReporterManager == null) { s_CoverageReporterManager = CoverageReporterStarter.CoverageReporterManager; } s_CoverageReporterManager.CreateCoverageReporter(); ICoverageReporter coverageReporter = s_CoverageReporterManager.CoverageReporter; if (coverageReporter != null) { coverageReporter.OnRunStarted(null); } } }
static CoverageReporterStarter() { #if NO_COV_EDITORPREF if (!CommandLineManager.instance.runFromCommandLine) { bool localCoverageEnabled = CoveragePreferences.instance.GetBool("EnableCodeCoverage", false); if (localCoverageEnabled != Coverage.enabled) { Coverage.enabled = localCoverageEnabled; } PackageManager.Events.registeringPackages += OnRegisteringPackages; } #endif if (!Coverage.enabled) { return; } #if CONDITIONAL_IGNORE_SUPPORTED ConditionalIgnoreAttribute.AddConditionalIgnoreMapping("IgnoreForCoverage", true); #endif CoverageReporterListener listener = ScriptableObject.CreateInstance <CoverageReporterListener>(); #if TEST_FRAMEWORK_1_2_OR_NEWER TestRunnerApi.RegisterTestCallback(listener); #else TestRunnerApi api = ScriptableObject.CreateInstance <TestRunnerApi>(); api.RegisterCallbacks(listener); #endif CoverageSettings coverageSettings = new CoverageSettings() { resultsPathFromCommandLine = CommandLineManager.instance.coverageResultsPath, historyPathFromCommandLine = CommandLineManager.instance.coverageHistoryPath }; CoverageReporterManager = new CoverageReporterManager(coverageSettings); listener.CoverageReporterManager = CoverageReporterManager; AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; AssemblyReloadEvents.afterAssemblyReload += OnAfterAssemblyReload; // Generate a report if running from the command line, // generateHTMLReport or generateBadgeReport is passed to -coverageOptions // and -runTests has not been passed to the command line, // regardless if AutoGenerate is selected in the UI if (CommandLineManager.instance.runFromCommandLine && CoverageReporterManager.ShouldAutoGenerateReport(false) && !CommandLineManager.instance.runTests && !CoverageRunData.instance.reportWasGenerated) { // Start the timer for analytics for Report only CoverageAnalytics.instance.StartTimer(); CoverageAnalytics.instance.CurrentCoverageEvent.actionID = ActionID.ReportOnly; coverageSettings.rootFolderPath = CoverageUtils.GetRootFolderPath(coverageSettings); coverageSettings.historyFolderPath = CoverageUtils.GetHistoryFolderPath(coverageSettings); CoverageReporterManager.ReportGenerator.Generate(coverageSettings); } }