2002-10-19 Rachel Hestilow <hestilow@ximian.com>
[mono.git] / mcs / nunit / RunTests.cs
1 using System;\r
2 using System.IO;\r
3 using System.Threading;\r
4 using System.Globalization;\r
5 \r
6 using NUnit.Framework;\r
7 \r
8 namespace MonoTests {\r
9 \r
10 public class MyTestRunner {\r
11 \r
12         static TextWriter fWriter = Console.Out;\r
13 \r
14         protected static TextWriter Writer {\r
15                 get { return fWriter; }\r
16         }\r
17 \r
18         public static void Print(TestResult result) {\r
19                 PrintErrors(result);\r
20                 PrintFailures(result);\r
21                 PrintHeader(result);\r
22         }\r
23 \r
24         /// <summary>Prints the errors to the standard output.</summary>\r
25         public static void PrintErrors(TestResult result) {\r
26                 if (result.ErrorCount != 0) {\r
27                         if (result.ErrorCount == 1)\r
28                                 Writer.WriteLine("There was "+result.ErrorCount+" error:");\r
29                         else\r
30                                 Writer.WriteLine("There were "+result.ErrorCount+" errors:");\r
31                         \r
32                         int i= 1;\r
33                         foreach (TestFailure failure in result.Errors) {\r
34                                 Writer.WriteLine(i++ + ") "+failure+"("+failure.ThrownException.GetType().ToString()+")");\r
35                                 Writer.Write(failure.ThrownException);\r
36                         }\r
37                 }\r
38         }\r
39 \r
40         /// <summary>Prints failures to the standard output.</summary>\r
41         public static void PrintFailures(TestResult result) {\r
42                 if (result.FailureCount != 0) {\r
43                         if (result.FailureCount == 1)\r
44                                 Writer.WriteLine("There was " + result.FailureCount + " failure:");\r
45                         else\r
46                                 Writer.WriteLine("There were " + result.FailureCount + " failures:");\r
47                         int i = 1;\r
48                         foreach (TestFailure failure in result.Failures) {\r
49                                 Writer.Write(i++ + ") " + failure.FailedTest);\r
50                                 Exception t= failure.ThrownException;\r
51                                 if (t.Message != "")\r
52                                         Writer.WriteLine(" \"" + t.Message + "\"");\r
53                                 else {\r
54                                         Writer.WriteLine();\r
55                                         Writer.Write(failure.ThrownException);\r
56                                 }\r
57                         }\r
58                 }\r
59         }\r
60 \r
61         /// <summary>Prints the header of the report.</summary>\r
62         public static void PrintHeader(TestResult result) {\r
63                 if (result.WasSuccessful) {\r
64                         Writer.WriteLine();\r
65                         Writer.Write("OK");\r
66                         Writer.WriteLine (" (" + result.RunCount + " tests)");\r
67                         \r
68                 } else {\r
69                         Writer.WriteLine();\r
70                         Writer.WriteLine("FAILURES!!!");\r
71                         Writer.WriteLine("Tests Run: "+result.RunCount+ \r
72                                          ", Failures: "+result.FailureCount+\r
73                                          ", Errors: "+result.ErrorCount);\r
74                 }\r
75         }\r
76 \r
77 }\r
78 \r
79 }\r