250 lines
6.2 KiB
C#
250 lines
6.2 KiB
C#
using System;
|
|
using UnityEditor.TestTools.CodeCoverage.Analytics;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.TestTools.CodeCoverage
|
|
{
|
|
[Serializable]
|
|
internal class CoverageRunDataImplementation
|
|
{
|
|
[SerializeField]
|
|
private bool m_IsRunning = false;
|
|
|
|
[SerializeField]
|
|
private int m_TestRunCount = 0;
|
|
|
|
[SerializeField]
|
|
private string m_LastIgnoredSuite = string.Empty;
|
|
|
|
[SerializeField]
|
|
private bool m_IsRecording = false;
|
|
|
|
[SerializeField]
|
|
private bool m_IsRecordingPaused = false;
|
|
|
|
[SerializeField]
|
|
private bool m_ReportWasGenerated = false;
|
|
|
|
[SerializeField]
|
|
private bool m_IsGeneratingReport = false;
|
|
|
|
public void Start(bool setupEvents = true)
|
|
{
|
|
m_LastIgnoredSuite = string.Empty;
|
|
m_IsRunning = true;
|
|
m_TestRunCount = 0;
|
|
|
|
if (setupEvents)
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.actionID = ActionID.DataOnly;
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.coverageModeId = CoverageModeID.TestRunner;
|
|
CoverageAnalytics.instance.StartTimer();
|
|
|
|
CoverageEventData.instance.StartSession(SessionMode.TestRunner);
|
|
}
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
m_LastIgnoredSuite = string.Empty;
|
|
m_IsRunning = false;
|
|
}
|
|
|
|
public void StartRecording(bool setupEvents = true)
|
|
{
|
|
Start(setupEvents);
|
|
IncrementTestRunCount();
|
|
m_IsRecording = true;
|
|
m_IsRecordingPaused = false;
|
|
|
|
if (setupEvents)
|
|
{
|
|
CoverageAnalytics.instance.CurrentCoverageEvent.coverageModeId = CoverageModeID.Recording;
|
|
CoverageEventData.instance.StartSession(SessionMode.Recording);
|
|
}
|
|
}
|
|
|
|
public void PauseRecording()
|
|
{
|
|
m_IsRecordingPaused = true;
|
|
}
|
|
|
|
public void UnpauseRecording()
|
|
{
|
|
m_IsRecordingPaused = false;
|
|
}
|
|
|
|
public void StopRecording()
|
|
{
|
|
Stop();
|
|
m_IsRecording = false;
|
|
m_IsRecordingPaused = false;
|
|
}
|
|
|
|
public bool isRunning
|
|
{
|
|
get { return m_IsRunning; }
|
|
}
|
|
|
|
public bool isRecording
|
|
{
|
|
get { return m_IsRecording; }
|
|
}
|
|
|
|
public bool isRecordingPaused
|
|
{
|
|
get { return m_IsRecordingPaused; }
|
|
}
|
|
|
|
public bool isGeneratingReport
|
|
{
|
|
get { return m_IsGeneratingReport; }
|
|
}
|
|
|
|
public bool reportWasGenerated
|
|
{
|
|
get { return m_ReportWasGenerated; }
|
|
}
|
|
|
|
public void ReportGenerationStart()
|
|
{
|
|
m_IsGeneratingReport = true;
|
|
m_ReportWasGenerated = false;
|
|
}
|
|
|
|
public void ReportGenerationEnd(bool success)
|
|
{
|
|
m_IsGeneratingReport = false;
|
|
m_ReportWasGenerated = success;
|
|
}
|
|
|
|
public void IncrementTestRunCount()
|
|
{
|
|
m_TestRunCount++;
|
|
}
|
|
|
|
public bool DidTestsRun()
|
|
{
|
|
return m_TestRunCount > 0;
|
|
}
|
|
|
|
public void SetLastIgnoredSuiteID(string id)
|
|
{
|
|
m_LastIgnoredSuite = id;
|
|
}
|
|
|
|
public bool HasLastIgnoredSuiteID()
|
|
{
|
|
return m_LastIgnoredSuite.Length > 0;
|
|
}
|
|
|
|
public string GetLastIgnoredSuiteID()
|
|
{
|
|
return m_LastIgnoredSuite;
|
|
}
|
|
}
|
|
|
|
[Serializable]
|
|
internal class CoverageRunData : ScriptableSingleton<CoverageRunData>
|
|
{
|
|
[SerializeField]
|
|
private CoverageRunDataImplementation m_CoverageRunDataImplementation = null;
|
|
|
|
protected CoverageRunData() : base()
|
|
{
|
|
m_CoverageRunDataImplementation = new CoverageRunDataImplementation();
|
|
}
|
|
|
|
public bool isRunning
|
|
{
|
|
get { return m_CoverageRunDataImplementation.isRunning; }
|
|
}
|
|
|
|
public bool isRecording
|
|
{
|
|
get { return m_CoverageRunDataImplementation.isRecording; }
|
|
}
|
|
|
|
public bool isRecordingPaused
|
|
{
|
|
get { return m_CoverageRunDataImplementation.isRecordingPaused; }
|
|
}
|
|
|
|
public bool reportWasGenerated
|
|
{
|
|
get { return m_CoverageRunDataImplementation.reportWasGenerated; }
|
|
}
|
|
|
|
public void IncrementTestRunCount()
|
|
{
|
|
m_CoverageRunDataImplementation.IncrementTestRunCount();
|
|
}
|
|
|
|
public bool DidTestsRun()
|
|
{
|
|
return m_CoverageRunDataImplementation.DidTestsRun();
|
|
}
|
|
|
|
public void SetLastIgnoredSuiteID(string id)
|
|
{
|
|
m_CoverageRunDataImplementation.SetLastIgnoredSuiteID(id);
|
|
}
|
|
|
|
public bool HasLastIgnoredSuiteID()
|
|
{
|
|
return m_CoverageRunDataImplementation.HasLastIgnoredSuiteID();
|
|
}
|
|
|
|
public string GetLastIgnoredSuiteID()
|
|
{
|
|
return m_CoverageRunDataImplementation.GetLastIgnoredSuiteID();
|
|
}
|
|
|
|
public void Start()
|
|
{
|
|
m_CoverageRunDataImplementation.Start();
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
m_CoverageRunDataImplementation.Stop();
|
|
}
|
|
|
|
public void StartRecording()
|
|
{
|
|
m_CoverageRunDataImplementation.StartRecording();
|
|
}
|
|
|
|
public void StopRecording()
|
|
{
|
|
m_CoverageRunDataImplementation.StopRecording();
|
|
}
|
|
|
|
public void PauseRecording()
|
|
{
|
|
m_CoverageRunDataImplementation.PauseRecording();
|
|
Events.InvokeOnCoverageSessionPaused();
|
|
}
|
|
|
|
public void UnpauseRecording()
|
|
{
|
|
m_CoverageRunDataImplementation.UnpauseRecording();
|
|
Events.InvokeOnCoverageSessionUnpaused();
|
|
}
|
|
|
|
public bool isGeneratingReport
|
|
{
|
|
get { return m_CoverageRunDataImplementation.isGeneratingReport; }
|
|
}
|
|
|
|
public void ReportGenerationStart()
|
|
{
|
|
m_CoverageRunDataImplementation.ReportGenerationStart();
|
|
}
|
|
|
|
public void ReportGenerationEnd(bool success)
|
|
{
|
|
m_CoverageRunDataImplementation.ReportGenerationEnd(success);
|
|
}
|
|
}
|
|
} |