Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix output
  • Loading branch information
nohwnd committed Mar 27, 2024
commit 47438637e87352a0596b1233c7f99a3eac8f405c
40 changes: 18 additions & 22 deletions src/vstest.console/Internal/MSBuildLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,24 @@ private void TestResultHandler(object? sender, TestResultEventArgs e)
var result = e.Result;
Debug.WriteLine(">>>>ERR:" + result.ErrorMessage);
Debug.WriteLine(">>>>STK:" + result.ErrorStackTrace);

var formattedError = new StringBuilder();

formattedError.Append(result.TestCase.DisplayName);
formattedError.Append(" (");
formattedError.Append(GetFormattedDurationString(e.Result.Duration));
formattedError.Append("): ");

formattedError.Append(Resources.Resources.ErrorMessageBanner);
formattedError.Append(' ');
formattedError.AppendLine(result.ErrorMessage);

string? line = null;
string? file = null;

if (!StringUtils.IsNullOrWhiteSpace(result.ErrorStackTrace))
{
var stackFrames = Regex.Split(result.ErrorStackTrace, Environment.NewLine);
string? line = null;
string? file = null;
if (stackFrames.Length > 0)
{
foreach (var frame in stackFrames.Take(20))
Expand Down Expand Up @@ -196,29 +209,13 @@ private void TestResultHandler(object? sender, TestResultEventArgs e)
}
}

var formattedError = new StringBuilder();

formattedError.Append(result.TestCase.DisplayName);
formattedError.Append('(');
formattedError.Append(GetFormattedDurationString(e.Result.Duration));
formattedError.Append("): ");

formattedError.Append(Resources.Resources.ErrorMessageBanner);
formattedError.Append(' ');
formattedError.AppendLine(result.ErrorMessage);

formattedError.AppendLine(Resources.Resources.StacktraceBanner);
formattedError.AppendLine(result.ErrorStackTrace);

AppendOutputs(result, formattedError);
SendMessage("test-failed", result.DisplayName, formattedError.ToString(), file ?? string.Empty, line ?? "0");
return;
}
else
{
SendMessage("test-failed", result.DisplayName, result.ErrorMessage, string.Empty, "0");
}

AppendOutputs(result, formattedError);
SendMessage("test-failed", formattedError.ToString().TrimEnd(), file ?? string.Empty, line ?? "0");

break;
}
}
Expand Down Expand Up @@ -287,7 +284,6 @@ private static void AppendOutputs(TestResult result, StringBuilder stringBuilder
{
stringBuilder.AppendLine(testResultPrefix + CommandLineResources.StdErrMessagesBanner);
AddFormattedOutput(stdErrMessagesCollection, stringBuilder);

}

var dbgTrcMessagesCollection = GetTestMessages(result.Messages, TestResultMessage.DebugTraceCategory);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ public void MSBuildLoggerCanBeEnabledByBuildPropertyAndDoesNotEatSpecialChars(Ru
// C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\UnitTest1.cs(41): error VSTEST1: (FailingTest) SampleUnitTestProject.UnitTest1.FailingTest() Assert.AreEqual failed. Expected:<2>. Actual:<3>. [C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\SimpleTestProject.csproj::TargetFramework=net462]
// C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\UnitTest1.cs(41): error VSTEST1: (FailingTest) SampleUnitTestProject.UnitTest1.FailingTest() Assert.AreEqual failed. Expected:<2>. Actual:<3>. [C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\SimpleTestProject.csproj::TargetFramework=netcoreapp3.1]

StdOutputContains("TerminalLoggerUnitTests.UnitTest1.FailingTest() Assert.AreEqual failed. Expected:<ğğğ𦮙我們剛才從𓋴𓅓𓏏𓇏𓇌𓀀 (System.String)>. Actual:<3 (System.Int32)>.");
StdOutputContains("SimpleTestProject.dll FailingTest(");
StdOutputContains("): Error Message: Assert.AreEqual failed. Expected:<ğğğ𦮙我們剛才從𓋴𓅓𓏏𓇏𓇌𓀀 (System.String)>. Actual:<3 (System.Int32)>. Stack Trace: at TerminalLoggerUnitTests.UnitTest1.FailingTest() in");
// We are sending those as low prio messages, they won't show up on screen but will be in binlog.
//StdOutputContains("passed PassingTest");
//StdOutputContains("skipped SkippingTest");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -428,12 +428,12 @@ public void StdErrorDoesNotContains(string substring)

public void StdOutputContains(string substring)
{
Assert.IsTrue(_standardTestOutput.Contains(substring), $"StdOutput:{Environment.NewLine} Expected substring: {substring}{Environment.NewLine}Actual string: {_standardTestOutput}");
Assert.IsTrue(_standardTestOutput.Contains(substring), $"{Environment.NewLine}StdOutput:{Environment.NewLine}{Environment.NewLine}Expected substring: {substring}{Environment.NewLine}{Environment.NewLine}Actual string: {_standardTestOutput}");
}

public void StdOutputDoesNotContains(string substring)
{
Assert.IsFalse(_standardTestOutput.Contains(substring), $"StdOutput:{Environment.NewLine} Not expected substring: {substring}{Environment.NewLine}Actual string: {_standardTestOutput}");
Assert.IsFalse(_standardTestOutput.Contains(substring), $"{Environment.NewLine}StdOutput:{Environment.NewLine}{Environment.NewLine}Not expected substring: {substring}{Environment.NewLine}{Environment.NewLine}Actual string: {_standardTestOutput}");
}

public void ExitCodeEquals(int exitCode)
Expand Down