123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- using UnityEngine;
- using UnityEditor.TestTools.CodeCoverage.OpenCover;
- using UnityEditor.TestTools.CodeCoverage.Analytics;
- namespace UnityEditor.TestTools.CodeCoverage
- {
- internal class CoverageReporterManager
- {
- private CoverageSettings m_CoverageSettings = null;
- private ICoverageReporter m_CoverageReporter = null;
- CoverageReportGenerator m_ReportGenerator = null;
- public CoverageReporterManager(CoverageSettings coverageSettings)
- {
- m_CoverageSettings = coverageSettings;
- }
- public ICoverageReporter CoverageReporter
- {
- get
- {
- if (m_CoverageReporter == null)
- {
- CreateCoverageReporter();
- }
- return m_CoverageReporter;
- }
- }
- public void CreateCoverageReporter()
- {
- m_CoverageReporter = null;
- // Use OpenCover format as currently this is the only one supported
- CoverageFormat coverageFormat = CoverageFormat.OpenCover;
- switch (coverageFormat)
- {
- case CoverageFormat.OpenCover:
- m_CoverageSettings.resultsFileExtension = "xml";
- m_CoverageSettings.resultsFolderSuffix = "-opencov";
- m_CoverageSettings.resultsFileName = CoverageRunData.instance.isRecording ? "RecordingCoverageResults" : "TestCoverageResults";
- m_CoverageReporter = new OpenCoverReporter();
- break;
- }
- if (m_CoverageReporter != null)
- {
- m_CoverageReporter.OnInitialise(m_CoverageSettings);
- }
- }
- public void GenerateReport()
- {
- bool autoGenerateReport, generateHTMLReport, generateBadge;
- if (CommandLineManager.instance.batchmode)
- {
- generateHTMLReport = CommandLineManager.instance.generateHTMLReport;
- generateBadge = CommandLineManager.instance.generateBadgeReport;
- autoGenerateReport = generateHTMLReport || generateBadge;
- }
- else
- {
- generateHTMLReport = CoveragePreferences.instance.GetBool("GenerateHTMLReport", true);
- generateBadge = CoveragePreferences.instance.GetBool("GenerateBadge", true);
- autoGenerateReport = CoveragePreferences.instance.GetBool("AutoGenerateReport", true) && (generateHTMLReport || generateBadge);
- bool commandLineAutoGenerateReport = CommandLineManager.instance.runFromCommandLine && (CommandLineManager.instance.generateHTMLReport || CommandLineManager.instance.generateBadgeReport);
- autoGenerateReport = autoGenerateReport || commandLineAutoGenerateReport;
- }
- if (!autoGenerateReport)
- {
- // Clear ProgressBar left from saving results to file,
- // otherwise continue on the same ProgressBar
- EditorUtility.ClearProgressBar();
- // Send Analytics event (Data Only)
- CoverageAnalytics.instance.SendCoverageEvent(true);
- return;
- }
- if (m_CoverageSettings != null)
- {
- CoverageAnalytics.instance.CurrentCoverageEvent.actionID = ActionID.DataReport;
- ReportGenerator.Generate(m_CoverageSettings);
- }
- }
- public CoverageReportGenerator ReportGenerator
- {
- get
- {
- if (m_ReportGenerator == null)
- m_ReportGenerator = new CoverageReportGenerator();
- return m_ReportGenerator;
- }
- }
- }
- }
|