From 9d387f36fab279f8270784b97516db9696e1b886 Mon Sep 17 00:00:00 2001 From: Jamie Cansdale Date: Tue, 4 Oct 2016 00:14:51 +0100 Subject: [PATCH] Add support for immediate test output #3. --- .../Expected/TestOutputLines.cs | 7 +++++++ src/NUnitTDNet.Adapter/EngineTestRunner.cs | 20 +++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/NUnitTDNet.Adapter.Examples/Expected/TestOutputLines.cs b/src/NUnitTDNet.Adapter.Examples/Expected/TestOutputLines.cs index 0eeea53..c7ba671 100644 --- a/src/NUnitTDNet.Adapter.Examples/Expected/TestOutputLines.cs +++ b/src/NUnitTDNet.Adapter.Examples/Expected/TestOutputLines.cs @@ -9,6 +9,13 @@ public class TestOutputLines { const string ClassName = "NUnitTDNet.Adapter.Examples.Expected.OutputLineTests"; + [Test] + [ExpectOutputLine("__TestContext_Progress_WriteLine__")] + public void TestContext_Progress_WriteLine() + { + TestContext.Progress.WriteLine("__TestContext_Progress_WriteLine__"); + } + [Test] [ExpectOutputLine("Hello, World!")] public void HelloWorld() diff --git a/src/NUnitTDNet.Adapter/EngineTestRunner.cs b/src/NUnitTDNet.Adapter/EngineTestRunner.cs index 768a06e..9efb34d 100644 --- a/src/NUnitTDNet.Adapter/EngineTestRunner.cs +++ b/src/NUnitTDNet.Adapter/EngineTestRunner.cs @@ -24,15 +24,15 @@ public class EngineTestRunner : TDF.ITestRunner public EngineTestRunner() { engine = new TestEngineClass(); - engine.Services.Add(new SettingsService(false)); + engine.Services.Add(new SettingsService(false)); // Might not be required. engine.Services.Add(new ExtensionService()); engine.Services.Add(new InProcessTestRunnerFactory()); engine.Services.Add(new DriverService()); - engine.Services.Add(new TestFilterService()); // + - engine.Services.Add(new ProjectService()); // + - engine.Services.Add(new RuntimeFrameworkService()); // + + engine.Services.Add(new TestFilterService()); + engine.Services.Add(new ProjectService()); + engine.Services.Add(new RuntimeFrameworkService()); engine.Services.ServiceManager.StartServices(); } @@ -120,7 +120,7 @@ internal int TotalTests get; private set; } - public TestEventListener(TDF.ITestListener testListener, /* int totalTests, */ string testRunnerName) + public TestEventListener(TDF.ITestListener testListener, string testRunnerName) { this.testListener = testListener; this.testRunnerName = testRunnerName; @@ -157,6 +157,9 @@ public void OnTestEvent(string report) processOutput(element); processTest(element, report, false); break; + case "test-output": + processTestOutput(element); + break; case "test-run": // Don't process output. break; @@ -208,7 +211,6 @@ void processTest(XmlElement element, string report, bool isTestCase) TDF.TestState state; switch (result) { - // What about Error? case "Failed": state = TDF.TestState.Failed; TestRunState = TDF.TestRunState.Failure; @@ -252,6 +254,12 @@ void processOutput(XmlElement element) } } + void processTestOutput(XmlElement element) + { + var text = trimNewLine(element.InnerText); + testListener.WriteLine(text, TDF.Category.Output); + } + static string trimNewLine(string text) { var newLine = Environment.NewLine;