diff --git a/src/vstest.console/Internal/ConsoleLogger.cs b/src/vstest.console/Internal/ConsoleLogger.cs
index 40eaabe21c..4174183fb3 100644
--- a/src/vstest.console/Internal/ConsoleLogger.cs
+++ b/src/vstest.console/Internal/ConsoleLogger.cs
@@ -263,6 +263,19 @@ private static void DisplayFullInformation(TestResult result)
}
}
+ var DbgTrcMessagesCollection = GetTestMessages(result.Messages, TestResultMessage.DebugTraceCategory);
+ if (DbgTrcMessagesCollection.Count > 0)
+ {
+ addAdditionalNewLine = false;
+ var dbgTrcMessages = GetFormattedOutput(DbgTrcMessagesCollection);
+
+ if (!string.IsNullOrEmpty(dbgTrcMessages))
+ {
+ Output.Information(CommandLineResources.DbgTrcMessagesBanner);
+ Output.Information(dbgTrcMessages);
+ }
+ }
+
var addnlInfoMessagesCollection = GetTestMessages(result.Messages, TestResultMessage.AdditionalInfoCategory);
if (addnlInfoMessagesCollection.Count > 0)
{
@@ -275,6 +288,7 @@ private static void DisplayFullInformation(TestResult result)
Output.Information(addnlInfoMessages);
}
}
+
if (addAdditionalNewLine)
{
Output.WriteLine(String.Empty, OutputLevel.Information);
@@ -354,6 +368,7 @@ private void TestResultHandler(object sender, TestResultEventArgs e)
{
var output = string.Format(CultureInfo.CurrentCulture, CommandLineResources.PassedTestIndicator, name);
Output.Information(output);
+ DisplayFullInformation(e.Result);
}
this.testsPassed++;
}
diff --git a/src/vstest.console/Resources/Resources.Designer.cs b/src/vstest.console/Resources/Resources.Designer.cs
index eb7f27b97f..101f81b179 100644
--- a/src/vstest.console/Resources/Resources.Designer.cs
+++ b/src/vstest.console/Resources/Resources.Designer.cs
@@ -1453,6 +1453,17 @@ public static string StdOutMessagesBanner
}
}
+ ///
+ /// Looks up a localized string similar to Debug Traces Messages:.
+ ///
+ public static string DbgTrcMessagesBanner
+ {
+ get
+ {
+ return ResourceManager.GetString("DbgTrcMessagesBanner", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true.
///
diff --git a/src/vstest.console/Resources/Resources.resx b/src/vstest.console/Resources/Resources.resx
index 66d6914ac4..ca40f7e946 100644
--- a/src/vstest.console/Resources/Resources.resx
+++ b/src/vstest.console/Resources/Resources.resx
@@ -652,4 +652,7 @@
The Data Collector friendly name '{0}' is not valid. The Data Collector will be ignored.
+
+ Debug Traces Messages:
+
\ No newline at end of file
diff --git a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs
index 7ed71f56f8..ec16a179bd 100644
--- a/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs
+++ b/test/vstest.console.UnitTests/Internal/ConsoleLoggerTests.cs
@@ -314,6 +314,59 @@ public void TestResultHandlerShouldWriteToConsoleShouldShowPassedTestsForNormalV
this.mockOutput.Verify(o => o.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.NotRunTestIndicator, "TestName"), OutputLevel.Information), Times.Exactly(2));
}
+ [TestMethod]
+ public void TestResultHandlerShouldShowStdOutMsgOfPassedTestIfVerbosityIsNormal()
+ {
+ var parameters = new Dictionary();
+ parameters.Add("verbosity", "normal");
+ this.consoleLogger.Initialize(this.events.Object, parameters);
+
+ var testcase = new TestCase("TestName", new Uri("some://uri"), "TestSource");
+
+ string message = "Dummy message";
+ TestResultMessage testResultMessage = new TestResultMessage(TestResultMessage.StandardOutCategory, message);
+
+ var testresult = new ObjectModel.TestResult(testcase);
+ testresult.Outcome = TestOutcome.Passed;
+ testresult.Messages.Add(testResultMessage);
+
+ var eventArgs = new TestRunChangedEventArgs(null, new List { testresult }, null);
+
+ // Raise an event on mock object
+ this.testRunRequest.Raise(m => m.OnRunStatsChange += null, eventArgs);
+ this.FlushLoggerMessages();
+
+ this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.StdOutMessagesBanner, OutputLevel.Information), Times.Once());
+ this.mockOutput.Verify(o => o.WriteLine(" " + message, OutputLevel.Information), Times.Once());
+ }
+
+ [TestMethod]
+ public void TestResultHandlerShouldShowDbgTrcMsg()
+ {
+ var parameters = new Dictionary();
+ parameters.Add("verbosity", "normal");
+ this.consoleLogger.Initialize(this.events.Object, parameters);
+
+ var testcase = new TestCase("TestName", new Uri("some://uri"), "TestSource");
+
+ string message = "Dummy message";
+ TestResultMessage testResultMessage = new TestResultMessage(TestResultMessage.DebugTraceCategory, message);
+
+ var testresult = new ObjectModel.TestResult(testcase);
+ testresult.Outcome = TestOutcome.Passed;
+ testresult.Messages.Add(testResultMessage);
+
+ var eventArgs = new TestRunChangedEventArgs(null, new List { testresult }, null);
+
+ // Raise an event on mock object
+ this.testRunRequest.Raise(m => m.OnRunStatsChange += null, eventArgs);
+ this.FlushLoggerMessages();
+
+ this.mockOutput.Verify(o => o.WriteLine(CommandLineResources.DbgTrcMessagesBanner, OutputLevel.Information), Times.Once());
+ this.mockOutput.Verify(o => o.WriteLine(" " + message, OutputLevel.Information), Times.Once());
+ }
+
+
[TestMethod]
public void TestResultHandlerShouldWriteToConsoleButSkipPassedTestsForMinimalVerbosity()
{