using System; using System.IO; using System.Threading; using System.Globalization; using NUnit.Framework; namespace MonoTests { public class MyTestRunner { static TextWriter fWriter = Console.Out; protected static TextWriter Writer { get { return fWriter; } } public static void Print(TestResult result) { PrintErrors(result); PrintFailures(result); PrintHeader(result); } /// Prints the errors to the standard output. public static void PrintErrors(TestResult result) { if (result.ErrorCount != 0) { if (result.ErrorCount == 1) Writer.WriteLine("There was "+result.ErrorCount+" error:"); else Writer.WriteLine("There were "+result.ErrorCount+" errors:"); int i= 1; foreach (TestFailure failure in result.Errors) { Writer.WriteLine(i++ + ") "+failure+"("+failure.ThrownException.GetType().ToString()+")"); Writer.Write(failure.ThrownException); } } } /// Prints failures to the standard output. public static void PrintFailures(TestResult result) { if (result.FailureCount != 0) { if (result.FailureCount == 1) Writer.WriteLine("There was " + result.FailureCount + " failure:"); else Writer.WriteLine("There were " + result.FailureCount + " failures:"); int i = 1; foreach (TestFailure failure in result.Failures) { Writer.Write(i++ + ") " + failure.FailedTest); Exception t= failure.ThrownException; if (t.Message != "") Writer.WriteLine(" \"" + t.Message + "\""); else { Writer.WriteLine(); Writer.Write(failure.ThrownException); } } } } /// Prints the header of the report. public static void PrintHeader(TestResult result) { if (result.WasSuccessful) { Writer.WriteLine(); Writer.Write("OK"); Writer.WriteLine (" (" + result.RunCount + " tests)"); } else { Writer.WriteLine(); Writer.WriteLine("FAILURES!!!"); Writer.WriteLine("Tests Run: "+result.RunCount+ ", Failures: "+result.FailureCount+ ", Errors: "+result.ErrorCount); } } } }