/// <summary> /// Sets the test suite status. /// </summary> /// <param name="status">The status.</param> void SetTestSuiteStatus(TestSuiteStatus status) { string txt; Color color; switch (status) { case TestSuiteStatus.Pass: txt = "All tests passed! NetGore should be set up correctly and ready to use."; color = Color.Green; break; case TestSuiteStatus.Failure: txt = "A test has failed! Select the test to view the details."; color = Color.Red; break; case TestSuiteStatus.Running: txt = "Running tests..."; color = SystemColors.WindowText; break; case TestSuiteStatus.Waiting: txt = "Waiting testing to start..."; color = SystemColors.WindowText; break; default: throw new ArgumentOutOfRangeException("status"); } lblStatus.ForeColor = color; lblStatus.Text = txt; }
public static int GetTestSuiteStatusCount(TestSuiteStatus status) { if (!tsStatus2count.ContainsKey(status)) { UpdateTestSuiteStatusCount(status); } return(tsStatus2count[status]); }
public static void UpdateTestSuiteStatusCount(TestSuiteStatus status) { int value = FilteredExplorer .GetFilteredTestSuites() .Where((Type ts) => TestSuiteExplorer.GetTestSuiteStatus(ts) == status) .Count(); if (tsStatus2count.ContainsKey(status)) { tsStatus2count[status] = value; } else { tsStatus2count.Add(status, value); } }
/// <summary> /// Value to string symbol converter /// </summary> /// <param name="status"></param> /// <returns>user friendly string representation</returns> public static string StatusSymbol(TestSuiteStatus status) { switch (status) { case TestSuiteStatus.UNKNOWN: return "??"; case TestSuiteStatus.SKIP: return "➥"; case TestSuiteStatus.PASS: return "✓"; case TestSuiteStatus.WARNING: return "!!"; case TestSuiteStatus.ERROR: return "✘"; default: return ""; } }
static void LogDetailledErrors(ICollection <Assembly> asms) { foreach (Assembly asm in asms) { AssemblyStatus asmStatus = GetAssemblyStatus(asm); string asmName = asm.GetName().Name; switch (asmStatus) { case AssemblyStatus.WARNING: Warn($"[{StatusSymbol(asmStatus)}] {asmName} > {GetAssemblyError(asm).Message}"); break; case AssemblyStatus.ERROR: Err($"[{StatusSymbol(asmStatus)}] {asmName} > {GetAssemblyError(asm)}"); break; case AssemblyStatus.UNKNOWN: Info($"[{StatusSymbol(asmStatus)}] {asmName} > Not Run Yet"); break; default: break; } //Errored tests display foreach (Type testSuite in GetTestSuites(asm)) { TestSuiteStatus tsStatus = GetTestSuiteStatus(testSuite); if (tsStatus is TestSuiteStatus.PASS) { continue; } switch (tsStatus) { case TestSuiteStatus.WARNING: case TestSuiteStatus.SKIP: Warn($" [{StatusSymbol(tsStatus)}] {testSuite.Name} > {GetTestSuiteError(testSuite)}"); break; case TestSuiteStatus.ERROR: Err($" [{StatusSymbol(tsStatus)}] {testSuite.Name} > {GetTestSuiteError(testSuite)}"); break; case TestSuiteStatus.UNKNOWN: Info($" [{StatusSymbol(tsStatus)}] {testSuite.Name} > Not Run Yet"); break; default: break; } foreach (MethodInfo test in GetTests(testSuite)) { TestStatus tStatus = GetTestStatus(test); switch (tStatus) { case TestStatus.SKIP: Warn($" [{StatusSymbol(tStatus)}] {testSuite.Name}.{test.Name} > {GetTestError(test)}"); continue; case TestStatus.ERROR: Err($" [{StatusSymbol(tStatus)}] {testSuite.Name}.{test.Name} > {GetTestError(test)}"); continue; case TestStatus.UNKNOWN: Info($" [{StatusSymbol(tStatus)}] {testSuite.Name}.{test.Name} > Not Run Yet"); continue; default: break; } } } } }
/// <summary> /// </summary> /// <param name="testSuite"></param> /// <param name="status"></param> public static void SetTestSuiteStatus(Type testSuite, TestSuiteStatus status) { testSuite2Status[testSuite] = status; }