From 03cb97c1e7a57dfed561a872e5797110524a1d70 Mon Sep 17 00:00:00 2001 From: Zoltan Csizmadia Date: Thu, 8 Aug 2019 09:29:39 -0500 Subject: [PATCH] Add noprogress parameter to disable progress indicator (#2117) * Add noprogress parameter to disable progress indicator * Add test for setting noprogress parameter --- src/vstest.console/Internal/ConsoleLogger.cs | 18 +++++++++++++++++- .../Internal/ConsoleLoggerTests.cs | 15 +++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/vstest.console/Internal/ConsoleLogger.cs b/src/vstest.console/Internal/ConsoleLogger.cs index 2162ec0770..de6e74da9b 100644 --- a/src/vstest.console/Internal/ConsoleLogger.cs +++ b/src/vstest.console/Internal/ConsoleLogger.cs @@ -55,6 +55,11 @@ internal class ConsoleLogger : ITestLoggerWithParameters /// internal static bool AppendPrefix; + /// + /// Bool to decide whether progress indicator should be disabled. + /// + internal static bool DisableProgress; + /// /// Uri used to uniquely identify the console logger. /// @@ -75,6 +80,11 @@ internal class ConsoleLogger : ITestLoggerWithParameters /// public const string PrefixParam = "prefix"; + /// + /// Parameter for disabling progress + /// + public const string NoProgressParam = "noprogress"; + #endregion internal enum Verbosity @@ -166,7 +176,7 @@ public void Initialize(TestLoggerEvents events, string testRunDirectory) ConsoleLogger.Output = ConsoleOutput.Instance; } - if (this.progressIndicator == null && !Console.IsOutputRedirected) + if (this.progressIndicator == null && !Console.IsOutputRedirected && !DisableProgress) { // Progress indicator needs to be displayed only for cli experience. this.progressIndicator = new ProgressIndicator(Output, new ConsoleHelper()); @@ -209,6 +219,12 @@ public void Initialize(TestLoggerEvents events, Dictionary param bool.TryParse(prefix, out AppendPrefix); } + var noprogressExists = parameters.TryGetValue(ConsoleLogger.NoProgressParam, out string noprogress); + if (noprogressExists) + { + bool.TryParse(noprogress, out DisableProgress); + } + Initialize(events, String.Empty); } #endregion diff --git a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs index 0773f9d24d..ea4b011ec1 100644 --- a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs +++ b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs @@ -128,6 +128,21 @@ public void InitializeWithParametersShouldSetPrefixValue() ConsoleLogger.AppendPrefix = false; } + [TestMethod] + public void InitializeWithParametersShouldSetNoProgress() + { + var parameters = new Dictionary(); + + Assert.IsFalse(ConsoleLogger.DisableProgress); + + parameters.Add("noprogress", "true"); + this.consoleLogger.Initialize(new Mock().Object, parameters); + + Assert.IsTrue(ConsoleLogger.DisableProgress); + + ConsoleLogger.DisableProgress = false; + } + [TestMethod] public void TestMessageHandlerShouldThrowExceptionIfEventArgsIsNull() {