Output failure info to textbox

Fixes #11
This commit is contained in:
Kevin Pilch-Bisson
2015-08-15 22:04:50 -07:00
parent 12c1d4b36d
commit cd16b674bc
3 changed files with 29 additions and 4 deletions
+23 -1
View File
@@ -14,6 +14,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Text;
namespace xunit.runner.wpf.ViewModel
{
@@ -134,6 +135,13 @@ namespace xunit.runner.wpf.ViewModel
set { Set(ref currentRunState, value); }
}
private string output = string.Empty;
public string Output
{
get { return output; }
set { Set(ref output, value); }
}
public string FilterString
{
get { return searchQuery.SearchString; }
@@ -295,7 +303,19 @@ namespace xunit.runner.wpf.ViewModel
{
var testCase = testCases.Single(tc => tc.DisplayName == testFailed.TestCase.DisplayName);
testCase.State = TestState.Failed;
TestFinished?.Invoke(this, TestStateEventArgs.Failed);
var resultString = new StringBuilder(testFailed.TestCase.DisplayName);
resultString.AppendLine(" FAILED:");
for (int i = 0; i < testFailed.ExceptionTypes.Length; i++)
{
resultString.AppendLine($"\tException type: '{testFailed.ExceptionTypes[i]}', number: '{i}', parent: '{testFailed.ExceptionParentIndices[i]}'");
resultString.AppendLine($"\tException message:");
resultString.AppendLine(testFailed.Messages[i]);
resultString.AppendLine($"\tException stacktrace");
resultString.AppendLine(testFailed.StackTraces[i]);
}
resultString.AppendLine();
TestFinished?.Invoke(this, TestStateEventArgs.Failed(resultString.ToString()));
return !isCancelRequested();
}
@@ -390,6 +410,7 @@ namespace xunit.runner.wpf.ViewModel
TestsFailed = 0;
TestsSkipped = 0;
CurrentRunState = TestState.NotRun;
Output = string.Empty;
await Task.Run(() => RunTestsInBackground());
}
catch (Exception ex)
@@ -440,6 +461,7 @@ namespace xunit.runner.wpf.ViewModel
break;
case TestState.Failed:
TestsFailed++;
Output = Output + e.Results;
break;
case TestState.Skipped:
TestsSkipped++;