public static int RunMenu(IList <Pair <string, Func <int> > > menu, IEnumerator <char> input = null) { var reader = input ?? ConsoleChars(); int errorCount = 0; for (;;) { Console.WriteLine(); Console.WriteLine("What do you want to do? (Esc to quit)"); for (int i = 0; i < menu.Count; i++) { Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key); } Console.WriteLine("Space. Run all tests"); if (!reader.MoveNext()) { break; } char c = reader.Current; if (c == ' ') { errorCount = 0; for (int i = 0; i < menu.Count; i++) { Console.WriteLine(); ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key); errorCount += menu[i].Value(); } if (errorCount == 0) { ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, null, "All test(s) passed (except known failures, if any)."); } else { ConsoleMessageSink.WriteColoredMessage(ConsoleColor.Red, null, "{0} test(s) unexpectedly failed in total.".Localized(errorCount)); } } else { int i = ParseHelpers.HexDigitValue(c); if (i > 0 && i <= menu.Count) { errorCount += menu[i - 1].Value(); } } } return(errorCount); }
private static void TestAssembly(Assembly assembly) { var messageSink = new ConsoleMessageSink(); var assemblyInfo = new ReflectionAssemblyInfo(assembly); var framework = new XunitTestFramework(messageSink); var executor = new XunitTestFrameworkExecutor(assembly.GetName(), new NullSourceInformationProvider(), messageSink); var executionOptions = TestFrameworkOptions.ForExecution(); var discoveryOptions = TestFrameworkOptions.ForDiscovery(); executor.RunAll(messageSink, discoveryOptions, executionOptions); messageSink.Finished.WaitOne(); }
public static int RunMenu(IList <Pair <string, Func <int> > > menu, IEnumerable <char> input) { var reader = (input ?? ConsoleChars()).GetEnumerator(); int errorCount = 0; for (;;) { Console.WriteLine(); Console.WriteLine("What do you want to do? (Esc to quit)"); for (int i = 0; i < menu.Count; i++) { Console.WriteLine(PrintHelpers.HexDigitChar(i + 1) + ". " + menu[i].Key); } Console.WriteLine("Space. Run all tests"); if (!reader.MoveNext()) { break; } char c = reader.Current; if (c == ' ') { for (int i = 0; i < menu.Count; i++) { Console.WriteLine(); ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key); errorCount += menu[i].Value(); } } else { int i = ParseHelpers.HexDigitValue(c); if (i > 0 && i <= menu.Count) { errorCount += menu[i - 1].Value(); } } } return(errorCount); }
public static void RunMenu(IList <Pair <string, Action> > menu) { for (;;) { Console.WriteLine(); Console.WriteLine("What do you want to do? (Esc to quit)"); for (int i = 0; i < menu.Count; i++) { Console.WriteLine(G.HexDigitChar(i + 1) + ". " + menu[i].Key); } Console.WriteLine("Space. Run all tests"); ConsoleKeyInfo k; Console.WriteLine((k = Console.ReadKey(true)).KeyChar); if (k.Key == ConsoleKey.Escape || k.Key == ConsoleKey.Enter) { break; } else if (k.KeyChar == ' ') { for (int i = 0; i < menu.Count; i++) { Console.WriteLine(); ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key); menu[i].Value(); } } else { int i = G.HexDigitValue(k.KeyChar); if (i > 0 && i <= menu.Count) { menu[i - 1].Value(); } } } }
private static void RunOne(IList <Pair <string, Action> > menu, int i) { Console.WriteLine(); ConsoleMessageSink.WriteColoredMessage(ConsoleColor.White, i + 1, menu[i].Key); menu[i].Value(); }