1 // ****************************************************************
\r
2 // This is free software licensed under the NUnit license. You
\r
3 // may obtain a copy of the license as well as information regarding
\r
4 // copyright ownership at http://nunit.org/?p=license&r=2.4.
\r
5 // ****************************************************************
\r
13 /// SummaryVisitor examines a set of results and calculates
\r
14 /// summary statistics for the run. Note that a test run
\r
15 /// will only produce results for tests that were selected
\r
16 /// to be run. Curently, tests excluded by the Explicit
\r
17 /// attribute produce a result, while those excluded by
\r
18 /// the Platform attribute do not. This anomaly will be
\r
19 /// corrected in a later version.
\r
21 public class SummaryVisitor : ResultVisitor
\r
23 private int resultCount;
\r
24 private int failureCount;
\r
25 private int skipCount;
\r
26 private int ignoreCount;
\r
27 private int suitesNotRun;
\r
29 private double time;
\r
30 private string name;
\r
31 private bool initialized;
\r
33 public SummaryVisitor()
\r
36 initialized = false;
\r
39 public void Visit(TestCaseResult caseResult)
\r
41 SetNameandTime(caseResult.Name, caseResult.Time);
\r
43 switch( caseResult.RunState )
\r
45 case RunState.Executed:
\r
47 if(caseResult.IsFailure)
\r
50 case RunState.Ignored:
\r
53 case RunState.Explicit:
\r
54 case RunState.NotRunnable:
\r
55 case RunState.Runnable:
\r
56 case RunState.Skipped:
\r
63 public void Visit(TestSuiteResult suiteResult)
\r
65 SetNameandTime(suiteResult.Name, suiteResult.Time);
\r
69 foreach (TestResult result in suiteResult.Results)
\r
71 result.Accept(this);
\r
74 if(!suiteResult.Executed)
\r
80 get { return time; }
\r
83 private void SetNameandTime(string name, double time)
\r
95 get { return (failureCount == 0); }
\r
98 public int ResultCount
\r
100 get { return resultCount; }
\r
103 public int FailureCount
\r
105 get { return failureCount; }
\r
108 public int SkipCount
\r
110 get { return skipCount; }
\r
113 public int IgnoreCount
\r
115 get { return ignoreCount; }
\r
118 public int TestsNotRun
\r
120 get { return skipCount + ignoreCount; }
\r
123 public int SuitesNotRun
\r
125 get { return suitesNotRun; }
\r
130 get { return name; }
\r