PageRenderTime 48ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/src/NUnit/util/ResultSummarizer.cs

#
C# | 193 lines | 130 code | 24 blank | 39 comment | 6 complexity | 15d16e0af6ed83e2ad423e8e78372be5 MD5 | raw file
Possible License(s): GPL-2.0
  1. // ****************************************************************
  2. // This is free software licensed under the NUnit license. You
  3. // may obtain a copy of the license as well as information regarding
  4. // copyright ownership at http://nunit.org.
  5. // ****************************************************************
  6. namespace NUnit.Util
  7. {
  8. using System;
  9. using NUnit.Core;
  10. /// <summary>
  11. /// Summary description for ResultSummarizer.
  12. /// </summary>
  13. public class ResultSummarizer
  14. {
  15. private int resultCount = 0;
  16. private int testsRun = 0;
  17. private int failureCount = 0;
  18. private int errorCount = 0;
  19. private int successCount = 0;
  20. private int inconclusiveCount = 0;
  21. private int skipCount = 0;
  22. private int ignoreCount = 0;
  23. private int notRunnable = 0;
  24. private double time = 0.0d;
  25. private string name;
  26. public ResultSummarizer() { }
  27. public ResultSummarizer(TestResult result)
  28. {
  29. Summarize(result);
  30. }
  31. public ResultSummarizer(TestResult[] results)
  32. {
  33. foreach( TestResult result in results )
  34. Summarize(result);
  35. }
  36. public void Summarize( TestResult result )
  37. {
  38. if (this.name == null )
  39. {
  40. this.name = result.Name;
  41. this.time = result.Time;
  42. }
  43. if (!result.Test.IsSuite)
  44. {
  45. resultCount++;
  46. switch (result.ResultState)
  47. {
  48. case ResultState.Success:
  49. successCount++;
  50. testsRun++;
  51. break;
  52. case ResultState.Failure:
  53. failureCount++;
  54. testsRun++;
  55. break;
  56. case ResultState.Error:
  57. case ResultState.Cancelled:
  58. errorCount++;
  59. testsRun++;
  60. break;
  61. case ResultState.Inconclusive:
  62. inconclusiveCount++;
  63. testsRun++;
  64. break;
  65. case ResultState.NotRunnable:
  66. notRunnable++;
  67. //errorCount++;
  68. break;
  69. case ResultState.Ignored:
  70. ignoreCount++;
  71. break;
  72. case ResultState.Skipped:
  73. default:
  74. skipCount++;
  75. break;
  76. }
  77. }
  78. if ( result.HasResults )
  79. foreach (TestResult childResult in result.Results)
  80. Summarize( childResult );
  81. }
  82. public string Name
  83. {
  84. get { return name; }
  85. }
  86. public bool Success
  87. {
  88. get { return failureCount == 0; }
  89. }
  90. /// <summary>
  91. /// Returns the number of test cases for which results
  92. /// have been summarized. Any tests excluded by use of
  93. /// Category or Explicit attributes are not counted.
  94. /// </summary>
  95. public int ResultCount
  96. {
  97. get { return resultCount; }
  98. }
  99. /// <summary>
  100. /// Returns the number of test cases actually run, which
  101. /// is the same as ResultCount, less any Skipped, Ignored
  102. /// or NonRunnable tests.
  103. /// </summary>
  104. public int TestsRun
  105. {
  106. get { return testsRun; }
  107. }
  108. /// <summary>
  109. /// Returns the number of tests that passed
  110. /// </summary>
  111. public int Passed
  112. {
  113. get { return successCount; }
  114. }
  115. /// <summary>
  116. /// Returns the number of test cases that had an error.
  117. /// </summary>
  118. public int Errors
  119. {
  120. get { return errorCount; }
  121. }
  122. /// <summary>
  123. /// Returns the number of test cases that failed.
  124. /// </summary>
  125. public int Failures
  126. {
  127. get { return failureCount; }
  128. }
  129. /// <summary>
  130. /// Returns the number of test cases that failed.
  131. /// </summary>
  132. public int Inconclusive
  133. {
  134. get { return inconclusiveCount; }
  135. }
  136. /// <summary>
  137. /// Returns the number of test cases that were not runnable
  138. /// due to errors in the signature of the class or method.
  139. /// Such tests are also counted as Errors.
  140. /// </summary>
  141. public int NotRunnable
  142. {
  143. get { return notRunnable; }
  144. }
  145. /// <summary>
  146. /// Returns the number of test cases that were skipped.
  147. /// </summary>
  148. public int Skipped
  149. {
  150. get { return skipCount; }
  151. }
  152. public int Ignored
  153. {
  154. get { return ignoreCount; }
  155. }
  156. public double Time
  157. {
  158. get { return time; }
  159. }
  160. public int TestsNotRun
  161. {
  162. get { return skipCount + ignoreCount + notRunnable; }
  163. }
  164. public int ErrorsAndFailures
  165. {
  166. get { return errorCount + failureCount; }
  167. }
  168. }
  169. }