From 25ab30605b8c0e909e165e81dc7081e457fab2ee Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Fri, 13 Sep 2019 14:23:01 +0200 Subject: [PATCH] Additional logging in case of integration test startup failures Closes #1231 --- src/NzbDrone.Test.Common/NzbDroneRunner.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Test.Common/NzbDroneRunner.cs b/src/NzbDrone.Test.Common/NzbDroneRunner.cs index 600758638..81f538f96 100644 --- a/src/NzbDrone.Test.Common/NzbDroneRunner.cs +++ b/src/NzbDrone.Test.Common/NzbDroneRunner.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Threading; @@ -6,6 +7,7 @@ using System.Xml.Linq; using NLog; using NUnit.Framework; using NzbDrone.Common.EnvironmentInfo; +using NzbDrone.Common.Extensions; using NzbDrone.Common.Processes; using NzbDrone.Core.Configuration; using RestSharp; @@ -17,6 +19,7 @@ namespace NzbDrone.Test.Common private readonly IProcessProvider _processProvider; private readonly IRestClient _restClient; private Process _nzbDroneProcess; + private List _startupLog; public string AppData { get; private set; } public string ApiKey { get; private set; } @@ -48,6 +51,7 @@ namespace NzbDrone.Test.Common lidarrConsoleExe = "Lidarr"; } + _startupLog = new List(); if (BuildInfo.IsDebug) { var frameworkFolder = PlatformInfo.IsNetCore ? "netcoreapp3.1" : "net462"; @@ -66,7 +70,8 @@ namespace NzbDrone.Test.Common { TestContext.Progress.WriteLine("Lidarr has exited unexpectedly"); Thread.Sleep(2000); - Assert.Fail("Process has exited: ExitCode={0}", _nzbDroneProcess.ExitCode); + var output = _startupLog.Join(Environment.NewLine); + Assert.Fail("Process has exited: ExitCode={0} Output={1}", _nzbDroneProcess.ExitCode, output); } var request = new RestRequest("system/status"); @@ -77,6 +82,7 @@ namespace NzbDrone.Test.Common if (statusCall.ResponseStatus == ResponseStatus.Completed) { + _startupLog = null; TestContext.Progress.WriteLine("Lidarr is started. Running Tests"); return; } @@ -119,6 +125,11 @@ namespace NzbDrone.Test.Common { TestContext.Progress.WriteLine(" > " + data); + if (_startupLog != null) + { + _startupLog.Add(data); + } + if (data.Contains("Press enter to exit")) { _nzbDroneProcess.StandardInput.WriteLine(" ");