public static string WriteSummaryReport(ResultSummary summary) { var writer = new StringBuilder(); writer.AppendLine($"Overall result: {summary.OverallResult}"); writer.AppendUICultureFormattedNumber(" Test Count: ", summary.TestCount); writer.AppendUICultureFormattedNumber(", Passed: ", summary.PassCount); writer.AppendUICultureFormattedNumber(", Failed: ", summary.FailedCount); writer.AppendUICultureFormattedNumber(", Warnings: ", summary.WarningCount); writer.AppendUICultureFormattedNumber(", Inconclusive: ", summary.InconclusiveCount); writer.AppendUICultureFormattedNumber(", Skipped: ", summary.TotalSkipCount); writer.AppendLine(); if (summary.FailedCount > 0) { writer.AppendUICultureFormattedNumber(" Failed Tests - Failures: ", summary.FailureCount); writer.AppendUICultureFormattedNumber(", Errors: ", summary.ErrorCount); writer.AppendUICultureFormattedNumber(", Invalid: ", summary.InvalidCount); writer.AppendLine(); } if (summary.TotalSkipCount > 0) { writer.AppendUICultureFormattedNumber(" Skipped Tests - Ignored: ", summary.IgnoreCount); writer.AppendUICultureFormattedNumber(", Explicit: ", summary.ExplicitCount); writer.AppendUICultureFormattedNumber(", Other: ", summary.SkipCount); writer.AppendLine(); } writer.AppendLine($" Start time: {summary.StartTime:u}"); writer.AppendLine($" End time: {summary.EndTime:u}"); writer.AppendUICultureFormattedNumber(" Duration: ", summary.Duration); return(writer.ToString()); }
private static void Summarize(XmlNodeList nodes, ResultSummary summary) { foreach (XmlNode childResult in nodes) { Summarize(childResult, summary); } }
public void ReportWithDifferentUICultureFormatsNumbersAccordingToUICulture() { var summary = new ResultSummary { PassCount = 10000, WarningCount = 10000, InconclusiveCount = 10000, SkipCount = 10000, TestCount = 10000, FailureCount = 10000, ErrorCount = 10000, InvalidCount = 10000, IgnoreCount = 10000, ExplicitCount = 10000, Duration = 123.456789, OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Contain("Test Count: 10.000")); Assert.That(report, Does.Contain("Passed: 10.000")); Assert.That(report, Does.Contain("Failed: 30.000")); Assert.That(report, Does.Contain("Warnings: 10.000")); Assert.That(report, Does.Contain("Inconclusive: 10.000")); Assert.That(report, Does.Contain("Skipped: 30.000")); Assert.That(report, Does.Contain("Failed Tests - Failures: 10.000")); Assert.That(report, Does.Contain("Errors: 10.000")); Assert.That(report, Does.Contain("Invalid: 10.000")); Assert.That(report, Does.Contain("Skipped Tests - Ignored: 10.000")); Assert.That(report, Does.Contain("Explicit: 10.000")); Assert.That(report, Does.Contain("Other: 10.000")); Assert.That(report, Does.Contain("Duration: 123,457")); }
public void ReportAlwaysStartsWithOveralResult() { var summary = new ResultSummary { OverallResult = "Passed" }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.StartWith("Overall result: Passed")); }
private static void SummarizeTestCase(ResultSummary summary, string status, string label) { switch (status) { case "Passed": summary.PassCount++; break; case "Failed": if (label == null) { summary.FailureCount++; } else if (label == "Invalid") { summary.InvalidCount++; } else { summary.ErrorCount++; } break; case "Warning": summary.WarningCount++; break; case "Inconclusive": summary.InconclusiveCount++; break; case "Skipped": if (label == "Ignored") { summary.IgnoreCount++; } else if (label == "Explicit") { summary.ExplicitCount++; } else { summary.SkipCount++; } break; default: summary.SkipCount++; break; } }
public void ReportContainsStartAndEndDate() { var summary = new ResultSummary { StartTime = new DateTime(2015, 10, 21, 7, 28, 30), EndTime = new DateTime(2015, 10, 21, 16, 20, 45), OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Contain("Start time: 2015-10-21 07:28:30Z")); Assert.That(report, Does.Contain("End time: 2015-10-21 16:20:45Z")); }
public void ReportDoesNotContainExtendedSkipInformationWhenNoTestsAreSkipped() { var summary = new ResultSummary { IgnoreCount = 0, ExplicitCount = 0, SkipCount = 0, OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Not.Contain("Skipped Tests - Ignored:")); Assert.That(report, Does.Not.Contain("Explicit:")); Assert.That(report, Does.Not.Contain("Other:")); }
public void ReportContainsExtendedFailureInformationWhenItHasFailures(int failureCount, int errorCount, int invalidCount) { var summary = new ResultSummary { FailureCount = failureCount, ErrorCount = errorCount, InvalidCount = invalidCount, OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Contain("Failed Tests - Failures: " + failureCount)); Assert.That(report, Does.Contain("Errors: " + errorCount)); Assert.That(report, Does.Contain("Invalid: " + invalidCount)); }
public void ReportDoesNotContainExtendedFailureInformationWhenNoTestsFailed() { var summary = new ResultSummary { FailureCount = 0, ErrorCount = 0, InvalidCount = 0, OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Not.Contain("Failed Tests - Failures:")); Assert.That(report, Does.Not.Contain("Errors:")); Assert.That(report, Does.Not.Contain("Invalid:")); }
public void ReportContainsExtendedSkipInformationWhenItHasSkips(int ignoreCount, int explicitCount, int skipCount) { var summary = new ResultSummary { IgnoreCount = ignoreCount, ExplicitCount = explicitCount, SkipCount = skipCount, OverallResult = String.Empty }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Contain("Skipped Tests - Ignored: " + ignoreCount)); Assert.That(report, Does.Contain("Explicit: " + explicitCount)); Assert.That(report, Does.Contain("Other: " + skipCount)); }
public static ResultSummary FromResultNode(ResultNode resultNode) { var result = resultNode.Xml; if (result.Name != "test-run") { throw new InvalidOperationException("Expected <test-run> as top-level element but was <" + result.Name + ">"); } var summary = new ResultSummary(); summary.OverallResult = resultNode.Outcome.Status.ToString(); summary.Duration = result.GetAttribute("duration", 0.0); summary.StartTime = result.GetAttribute("start-time", DateTime.MinValue); summary.EndTime = result.GetAttribute("end-time", DateTime.MaxValue); Summarize(result, summary); return(summary); }
private static void SummarizeTestSuite(XmlNodeList childNodes, ResultSummary summary, string type, string status, string label) { if (status == "Failed" && label == "Invalid") { if (type == "Assembly") { summary.InvalidAssemblies++; } else { summary.InvalidTestFixtures++; } } if (type == "Assembly" && status == "Failed" && label == "Error") { summary.InvalidAssemblies++; summary.UnexpectedError = true; } Summarize(childNodes, summary); }
public void ReportContainsAllCountsOfEachTestResult() { var summary = new ResultSummary { PassCount = 1, FailureCount = 2, WarningCount = 3, InconclusiveCount = 4, SkipCount = 5, TestCount = 15, OverallResult = String.Empty, }; var report = ResultSummaryReporter.WriteSummaryReport(summary); Assert.That(report, Does.Contain("Test Count: 15")); Assert.That(report, Does.Contain("Passed: 1")); Assert.That(report, Does.Contain("Failed: 2")); Assert.That(report, Does.Contain("Warnings: 3")); Assert.That(report, Does.Contain("Inconclusive: 4")); Assert.That(report, Does.Contain("Skipped: 5")); }
private static void Summarize(XmlNode node, ResultSummary summary) { string type = node.GetAttribute("type"); string status = node.GetAttribute("result"); string label = node.GetAttribute("label"); switch (node.Name) { case "test-case": summary.TestCount++; SummarizeTestCase(summary, status, label); break; case "test-suite": SummarizeTestSuite(node.ChildNodes, summary, type, status, label); break; case "test-run": Summarize(node.ChildNodes, summary); break; } }