Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        /// <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();
                }
            }
        }
Пример #3
0
        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);
            }
        }