Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/Unity/Landmass Generation/Library/PackageCache/com.unity.testtools.codecoverage@1.0.1/Editor/CoverageReporterManager.cs
2022-11-12 13:10:03 +01:00

104 lines
3.7 KiB
C#

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;
}
}
}
}