private static void RunTests(string assemblyPath) { var package = new TestPackage(assemblyPath); var engine = new TestEngine(); var runner = engine.GetRunner(package); XmlNode result = runner.Run(new TestListener(), TestFilter.Empty); string overallResult = result.GetAttribute("result"); Console.WriteLine("Test Run for {0} {1}", assemblyPath, result.GetAttribute("result")); Console.WriteLine(" Passing Tests: {0}", result.GetAttribute("passed")); Console.WriteLine(" Failing Tests: {0}", result.GetAttribute("failed")); Console.WriteLine(" Inconclusive Tests: {0}", result.GetAttribute("inconclusive")); Console.WriteLine(" Skipped Tests: {0}", result.GetAttribute("skipped")); Console.WriteLine(); }
private void ExecuteNUnitTestRunner(IServer server, BuildInstructions instructions) { log.Log(LogSeverity.Information, "Executing NUnit Test Runner"); XmlNode result2; using (var r = new TestEngine()) { r.Initialize(); var pkg = new TestPackage(instructions.TargetUnitTestingAssembly); using (var runner = r.GetRunner(pkg)) { var filter = TestFilter.Empty; var tests = runner.CountTestCases(filter); log.Log(LogSeverity.Information, $"Found {tests} tests"); result2 = runner.Run(null, filter); } } Func<string, TestStatus> parse = x => { if(x == "Passed") return TestStatus.Passed; return TestStatus.Failed; }; ClientInformation status; try { var root = XDocument.Parse(result2.OuterXml); var testResults = from el in root.Descendants("test-case") select new TestResult(el.Attribute("name").Value, parse(el.Attribute("result").Value)); status = new ClientInformation(Environment.MachineName, instructions.Session, BuildStatus.Successful, testResults.ToArray()); } catch (Exception e) { var msg = "Error parsing test result XML document, check version of NUnit"; log.Log(LogSeverity.Error, msg); throw new ApplicationException(msg, e); } server.UpdateClientStatus(status); log.Log(LogSeverity.Information, "Test fixtures execution complete"); }