CoverageRunData.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. using System;
  2. using UnityEditor.TestTools.CodeCoverage.Analytics;
  3. using UnityEngine;
  4. namespace UnityEditor.TestTools.CodeCoverage
  5. {
  6. [Serializable]
  7. internal class CoverageRunDataImplementation
  8. {
  9. [SerializeField]
  10. private bool m_IsRunning = false;
  11. [SerializeField]
  12. private int m_FileIndex = 0;
  13. [SerializeField]
  14. private int m_TestRunCount = 0;
  15. [SerializeField]
  16. private string m_LastIgnoredSuite = string.Empty;
  17. [SerializeField]
  18. private bool m_IsRecording = false;
  19. [SerializeField]
  20. private bool m_IsRecordingPaused = false;
  21. [SerializeField]
  22. private bool m_ReportWasGenerated = false;
  23. [SerializeField]
  24. private bool m_IsGeneratingReport = false;
  25. public void Start(bool initAnalytics = true)
  26. {
  27. m_LastIgnoredSuite = string.Empty;
  28. m_IsRunning = true;
  29. m_FileIndex = 0;
  30. m_TestRunCount = 0;
  31. if (initAnalytics)
  32. {
  33. CoverageAnalytics.instance.CurrentCoverageEvent.actionID = ActionID.DataOnly;
  34. CoverageAnalytics.instance.CurrentCoverageEvent.coverageModeId = CoverageModeID.TestRunner;
  35. CoverageAnalytics.instance.StartTimer();
  36. }
  37. }
  38. public void Stop()
  39. {
  40. m_LastIgnoredSuite = string.Empty;
  41. m_IsRunning = false;
  42. }
  43. public void StartRecording()
  44. {
  45. Start();
  46. IncrementTestRunCount();
  47. m_IsRecording = true;
  48. m_IsRecordingPaused = false;
  49. CoverageAnalytics.instance.CurrentCoverageEvent.coverageModeId = CoverageModeID.Recording;
  50. }
  51. public void PauseRecording()
  52. {
  53. m_IsRecordingPaused = true;
  54. }
  55. public void UnpauseRecording()
  56. {
  57. m_IsRecordingPaused = false;
  58. }
  59. public void StopRecording()
  60. {
  61. Stop();
  62. m_IsRecording = false;
  63. m_IsRecordingPaused = false;
  64. }
  65. public bool isRunning
  66. {
  67. get { return m_IsRunning; }
  68. }
  69. public bool isRecording
  70. {
  71. get { return m_IsRecording; }
  72. }
  73. public bool isRecordingPaused
  74. {
  75. get { return m_IsRecordingPaused; }
  76. }
  77. public bool isGeneratingReport
  78. {
  79. get { return m_IsGeneratingReport; }
  80. }
  81. public bool reportWasGenerated
  82. {
  83. get { return m_ReportWasGenerated; }
  84. }
  85. public void ReportGenerationStart()
  86. {
  87. m_IsGeneratingReport = true;
  88. m_ReportWasGenerated = false;
  89. }
  90. public void ReportGenerationEnd(bool success)
  91. {
  92. m_IsGeneratingReport = false;
  93. m_ReportWasGenerated = success;
  94. }
  95. public int GetNextFileIndex()
  96. {
  97. return m_FileIndex++;
  98. }
  99. public void IncrementTestRunCount()
  100. {
  101. m_TestRunCount++;
  102. }
  103. public bool DidTestsRun()
  104. {
  105. return m_TestRunCount > 0;
  106. }
  107. public void SetLastIgnoredSuiteID(string id)
  108. {
  109. m_LastIgnoredSuite = id;
  110. }
  111. public bool HasLastIgnoredSuiteID()
  112. {
  113. return m_LastIgnoredSuite.Length > 0;
  114. }
  115. public string GetLastIgnoredSuiteID()
  116. {
  117. return m_LastIgnoredSuite;
  118. }
  119. }
  120. [Serializable]
  121. internal class CoverageRunData : ScriptableSingleton<CoverageRunData>
  122. {
  123. [SerializeField]
  124. private CoverageRunDataImplementation m_CoverageRunDataImplementation = null;
  125. protected CoverageRunData() : base()
  126. {
  127. m_CoverageRunDataImplementation = new CoverageRunDataImplementation();
  128. }
  129. public bool isRunning
  130. {
  131. get { return m_CoverageRunDataImplementation.isRunning; }
  132. }
  133. public bool isRecording
  134. {
  135. get { return m_CoverageRunDataImplementation.isRecording; }
  136. }
  137. public bool isRecordingPaused
  138. {
  139. get { return m_CoverageRunDataImplementation.isRecordingPaused; }
  140. }
  141. public bool reportWasGenerated
  142. {
  143. get { return m_CoverageRunDataImplementation.reportWasGenerated; }
  144. }
  145. public int GetNextFileIndex()
  146. {
  147. return m_CoverageRunDataImplementation.GetNextFileIndex();
  148. }
  149. public void IncrementTestRunCount()
  150. {
  151. m_CoverageRunDataImplementation.IncrementTestRunCount();
  152. }
  153. public bool DidTestsRun()
  154. {
  155. return m_CoverageRunDataImplementation.DidTestsRun();
  156. }
  157. public void SetLastIgnoredSuiteID(string id)
  158. {
  159. m_CoverageRunDataImplementation.SetLastIgnoredSuiteID(id);
  160. }
  161. public bool HasLastIgnoredSuiteID()
  162. {
  163. return m_CoverageRunDataImplementation.HasLastIgnoredSuiteID();
  164. }
  165. public string GetLastIgnoredSuiteID()
  166. {
  167. return m_CoverageRunDataImplementation.GetLastIgnoredSuiteID();
  168. }
  169. public void Start()
  170. {
  171. m_CoverageRunDataImplementation.Start();
  172. }
  173. public void Stop()
  174. {
  175. m_CoverageRunDataImplementation.Stop();
  176. }
  177. public void StartRecording()
  178. {
  179. m_CoverageRunDataImplementation.StartRecording();
  180. }
  181. public void StopRecording()
  182. {
  183. m_CoverageRunDataImplementation.StopRecording();
  184. }
  185. public void PauseRecording()
  186. {
  187. m_CoverageRunDataImplementation.PauseRecording();
  188. }
  189. public void UnpauseRecording()
  190. {
  191. m_CoverageRunDataImplementation.UnpauseRecording();
  192. }
  193. public bool isGeneratingReport
  194. {
  195. get { return m_CoverageRunDataImplementation.isGeneratingReport; }
  196. }
  197. public void ReportGenerationStart()
  198. {
  199. m_CoverageRunDataImplementation.ReportGenerationStart();
  200. }
  201. public void ReportGenerationEnd(bool success)
  202. {
  203. m_CoverageRunDataImplementation.ReportGenerationEnd(success);
  204. }
  205. }
  206. }