diff --git a/src/ServiceControl.AcceptanceTesting/NServiceBusAcceptanceTest.cs b/src/ServiceControl.AcceptanceTesting/NServiceBusAcceptanceTest.cs index 35a82c7ece..f286b76f66 100644 --- a/src/ServiceControl.AcceptanceTesting/NServiceBusAcceptanceTest.cs +++ b/src/ServiceControl.AcceptanceTesting/NServiceBusAcceptanceTest.cs @@ -1,10 +1,14 @@ namespace ServiceControl.AcceptanceTesting { + using System; using System.Linq; using System.Threading; + using NServiceBus.AcceptanceTesting; using NServiceBus.AcceptanceTesting.Customization; using NServiceBus.Logging; using NUnit.Framework; + using NUnit.Framework.Interfaces; + using NUnit.Framework.Internal; /// /// Base class for all the NSB test that sets up our conventions @@ -35,5 +39,34 @@ public void SetUp() return testName + "." + endpointBuilder; }; } + + [TearDown] + public void TearDown() + { + if (!TestExecutionContext.CurrentContext.TryGetRunDescriptor(out var runDescriptor)) + { + return; + } + + var scenarioContext = runDescriptor.ScenarioContext; + + TestContext.Out.WriteLine($@"Test settings: +{string.Join(Environment.NewLine, runDescriptor.Settings.Select(setting => $" {setting.Key}: {setting.Value}"))}"); + + TestContext.Out.WriteLine($@"Context: +{string.Join(Environment.NewLine, scenarioContext.GetType().GetProperties().Select(p => $"{p.Name} = {p.GetValue(scenarioContext, null)}"))}"); + + if (TestExecutionContext.CurrentContext.CurrentResult.ResultState == ResultState.Failure || TestExecutionContext.CurrentContext.CurrentResult.ResultState == ResultState.Error) + { + TestContext.Out.WriteLine(string.Empty); + TestContext.Out.WriteLine($"Log entries (log level: {scenarioContext.LogLevel}):"); + TestContext.Out.WriteLine("--- Start log entries ---------------------------------------------------"); + foreach (var logEntry in scenarioContext.Logs) + { + TestContext.Out.WriteLine($"{logEntry.Timestamp:T} {logEntry.Level} {logEntry.Endpoint ?? TestContext.CurrentContext.Test.Name}: {logEntry.Message}"); + } + TestContext.Out.WriteLine("--- End log entries ---------------------------------------------------"); + } + } } } \ No newline at end of file