public void It_should_aggregate_all_results_and_save_them_on_dispose() { var summaryWriters = new[] { Mock.Of <IReportWriter>(), Mock.Of <IReportWriter>() }; var generator = new FeatureReportGenerator(summaryWriters); var results = new[] { TestResults.CreateFeatureResult("name2", "desc", "label1"), TestResults.CreateFeatureResult("name1", "desc", "label1"), TestResults.CreateFeatureResult("name4", "desc", "label1"), TestResults.CreateFeatureResult("name3", "desc", "label1") }; foreach (var result in results) { generator.Aggregate(result); } foreach (var summaryWriter in summaryWriters) { Mock.Get(summaryWriter).Verify(w => w.Save(It.IsAny <IFeatureResult[]>()), Times.Never); } generator.Dispose(); foreach (var summaryWriter in summaryWriters) { Mock.Get(summaryWriter).Verify(w => w.Save(It.Is <IFeatureResult[]>(f => f.SequenceEqual(results.OrderBy(r => r.Info.Name.ToString()).ToArray())))); } }
public static IFeatureResult GetFeatureResultWithoutDescriptionNorLabelNorDetails() { return(TestResults.CreateFeatureResult("My feature", null, null, TestResults.CreateScenarioResult("name", null, _startDate.AddSeconds(1), TimeSpan.FromMilliseconds(25), null, TestResults.CreateStepResult(1, "step1", ExecutionStatus.Passed, _startDate.AddSeconds(2), TimeSpan.FromMilliseconds(20)), TestResults.CreateStepResult(2, "step2", ExecutionStatus.Ignored, _startDate.AddSeconds(3), TimeSpan.FromMilliseconds(5))))); }
public static IFeatureResult GetFeatureWithUnsortedScenarios() { return(TestResults.CreateFeatureResult("My Feature", null, null, TestResults.CreateScenarioResult("scenario C", "lab A", _startDate, TimeSpan.FromSeconds(2), null, TestResults.CreateStepResult(1, "step", ExecutionStatus.Passed)), TestResults.CreateScenarioResult("scenario A", "lab B", _startDate.AddMilliseconds(2), TimeSpan.FromSeconds(2), null, TestResults.CreateStepResult(1, "step", ExecutionStatus.Passed)), TestResults.CreateScenarioResult("scenario B", "lab C", _startDate, TimeSpan.FromSeconds(5), null, TestResults.CreateStepResult(1, "step", ExecutionStatus.Passed)))); }
public static IFeatureResult[] GetMultipleFeatureResults() { var feature1 = TestResults.CreateFeatureResult("My feature", null, null, TestResults.CreateScenarioResult("scenario1", null, _startDate.AddSeconds(1), TimeSpan.FromMilliseconds(20), new[] { "categoryA" }, TestResults.CreateStepResult(1, "step1", ExecutionStatus.Passed, _startDate.AddSeconds(2), TimeSpan.FromMilliseconds(20)))); var feature2 = TestResults.CreateFeatureResult("My feature2", null, null, TestResults.CreateScenarioResult("scenario1", null, _startDate.AddSeconds(4), TimeSpan.FromMilliseconds(20), new[] { "categoryB" }, TestResults.CreateStepResult(1, "step1", ExecutionStatus.Passed, _startDate.AddSeconds(5), TimeSpan.FromMilliseconds(20)))); return(new[] { feature1, feature2 }); }
public void SetUp() { _formatter = new Mock <IReportFormatter>(); _feature = TestResults.CreateFeatureResult("name", "description", "label", TestResults.CreateScenarioResult("abc", "def", _expectedExecutionStartOffset, TimeSpan.Zero, new string[0], TestResults.CreateStepResult(ExecutionStatus.Passed))); _formatter.Setup(f => f.Format(It.IsAny <Stream>(), It.Is <IFeatureResult[]>(l => l.Contains(_feature)))).Callback( (Stream s, IFeatureResult[] results) => { using (var writer = new StreamWriter(s)) writer.Write(ExpectedContentText); }); _realDirPath = _dirPath = null; }
public void Should_escape_html_characters_in_step_name() { var date = new DateTimeOffset(2019, 10, 21, 05, 06, 07, TimeSpan.Zero); var feature = TestResults.CreateFeatureResult("My feature", null, null, TestResults.CreateScenarioResult("scenario1", null, date, TimeSpan.FromSeconds(5), new string[0], TestResults.CreateStepResult(ExecutionStatus.Passed) .WithStepNameDetails(1, "ste<p>", "ste<p>", "ty<p>e") .WithGroupPrefix("<gr>") .WithExecutionTime(date, TimeSpan.FromMilliseconds(20)), TestResults.CreateStepResult(ExecutionStatus.Passed) .WithStepNameDetails(2, "ste<p>2", "ste<p>2") .WithExecutionTime(date.AddMilliseconds(50), TimeSpan.FromMilliseconds(20)))); var text = FormatAndExtractText(feature); TestContext.WriteLine(text); var expectedText = $@"Execution summary Test execution start time: 2019-10-21 05:06:07 UTC Test execution end time: 2019-10-21 05:06:12 UTC Test execution time: 5s Test execution time (aggregated): 5s Number of features: 1 Number of scenarios: 1 Passed scenarios: 1 Bypassed scenarios: 0 Failed scenarios: 0 Ignored scenarios: 0 Number of steps: 2 Passed steps: 2 Bypassed steps: 0 Failed steps: 0 Ignored steps: 0 Not Run steps: 0 Feature summary Feature Scenarios Passed Bypassed Failed Ignored Steps Passed Bypassed Failed Ignored Not Run Duration Aggregated Average My feature 1 1 0 0 0 2 2 0 0 0 0 5s 50000000 5s 50000000 5s 50000000 Feature details[∞link] Toggle: Features Scenarios Filter: Passed Bypassed Failed Ignored Not Run [∞filtered link] My feature[∞link] Passed scenario1 (5s)[∞link] Passed <gr>1. ty<p>e ste<p> (20ms) Passed 2. ste<p>2 (20ms) Generated with LightBDD v{GetExpectedLightBddVersion()} initialize();"; Assert.That(text.NormalizeNewLine(), Is.EqualTo(expectedText.NormalizeNewLine())); }
public static IFeatureResult GetFeatureResultWithDescription() { return(TestResults.CreateFeatureResult("My feature", $"My feature{Environment.NewLine}long description", "Label 1", TestResults.CreateScenarioResult("name", "Label 2", _startDate.AddSeconds(1), new TimeSpan(0, 0, 1, 2, 100), new[] { "categoryA" }, TestResults.CreateStepResult(ExecutionStatus.Passed) .WithExecutionTime(_startDate.AddSeconds(2), new TimeSpan(0, 1, 1)) .WithStepNameDetails(1, "call step1 \"arg1\"", "step1 \"{0}\"", "call", "arg1") .WithComments($"multiline{Environment.NewLine}comment", "comment 2"), TestResults.CreateStepResult(2, "step2", ExecutionStatus.Ignored, _startDate.AddSeconds(3), new TimeSpan(0, 0, 0, 1, 100), "Not implemented yet")), TestResults.CreateScenarioResult(TestResults.CreateNameInfo("name2 \"arg1\"", "name2 \"{0}\"", "arg1"), null, _startDate.AddSeconds(4), new TimeSpan(0, 0, 0, 2, 157), new[] { "categoryB", "categoryC" }, TestResults.CreateStepResult(1, "step3", ExecutionStatus.Bypassed, _startDate.AddSeconds(5), new TimeSpan(0, 0, 0, 2, 107), "bypass reason"), TestResults.CreateStepResult(2, "step4", ExecutionStatus.Failed, _startDate.AddSeconds(6), new TimeSpan(0, 0, 0, 0, 50), $" Expected: True{Environment.NewLine} But was: False"), TestResults.CreateStepResult(3, "step5", ExecutionStatus.NotRun)))); }
public static IFeatureResult GetFeatureResultWithDescription() { return(TestResults.CreateFeatureResult("My feature", $"My feature{Environment.NewLine}long description", "Label 1", TestResults.CreateScenarioResult("name", "Label 2", _startDate.AddSeconds(1), new TimeSpan(0, 0, 1, 2, 100), new[] { "categoryA" }, TestResults.CreateStepResult(ExecutionStatus.Passed) .WithExecutionTime(_startDate.AddSeconds(2), new TimeSpan(0, 1, 1)) .WithStepNameDetails(1, "call step1 \"arg1\"", "step1 \"{0}\"", "call", "arg1") .WithComments($"multiline{Environment.NewLine}comment", "comment 2"), TestResults.CreateStepResult(2, "step2", ExecutionStatus.Ignored, _startDate.AddSeconds(3), new TimeSpan(0, 0, 0, 1, 100), "Not implemented yet") .WithSubSteps( TestResults.CreateStepResult(1, "substep 1", ExecutionStatus.Passed, _startDate.AddSeconds(3), new TimeSpan(0, 0, 0, 0, 100)).WithGroupPrefix("2."), TestResults.CreateStepResult(2, "substep 2", ExecutionStatus.Passed, _startDate.AddSeconds(3).AddMilliseconds(100), new TimeSpan(0, 0, 0, 1, 0)).WithGroupPrefix("2."), TestResults.CreateStepResult(3, "substep 3", ExecutionStatus.Ignored, _startDate.AddSeconds(4).AddMilliseconds(100), TimeSpan.Zero, "Not implemented yet").WithGroupPrefix("2.").WithComments("sub-comment") .WithSubSteps(TestResults.CreateStepResult(1, "sub-substep 1", ExecutionStatus.Failed) .WithGroupPrefix("2.3.") .WithComments($"sub-sub-multiline{Environment.NewLine}comment") .WithStepParameters( TestResults.CreateTestParameter("table1", TestResults.CreateTabularParameterDetails(ParameterVerificationStatus.Failure) .WithKeyColumns("Key") .WithValueColumns("X", "Y") .AddRow(TableRowType.Matching, ParameterVerificationStatus.Success, TestResults.CreateValueResult("Key1"), TestResults.CreateValueResult("1"), TestResults.CreateValueResult("2")) .AddRow(TableRowType.Matching, ParameterVerificationStatus.Failure, TestResults.CreateValueResult("Key2"), TestResults.CreateValueResult("2", "1", ParameterVerificationStatus.Failure), TestResults.CreateValueResult("4")) .AddRow(TableRowType.Missing, ParameterVerificationStatus.Failure, TestResults.CreateValueResult("Key3"), TestResults.CreateValueResult("3", "<none>", ParameterVerificationStatus.Failure), TestResults.CreateValueResult("6", "<none>", ParameterVerificationStatus.Failure)) .AddRow(TableRowType.Surplus, ParameterVerificationStatus.Failure, TestResults.CreateValueResult("Key4"), TestResults.CreateValueResult("<none>", "3", ParameterVerificationStatus.Failure), TestResults.CreateValueResult("<none>", "6", ParameterVerificationStatus.Failure))), TestResults.CreateTestParameter("table2", TestResults.CreateTabularParameterDetails(ParameterVerificationStatus.NotApplicable) .WithKeyColumns("Key") .WithValueColumns("X", "Y") .AddRow(TableRowType.Matching, ParameterVerificationStatus.NotApplicable, TestResults.CreateValueResult("Key1"), TestResults.CreateValueResult("1"), TestResults.CreateValueResult("2")) .AddRow(TableRowType.Matching, ParameterVerificationStatus.NotApplicable, TestResults.CreateValueResult("Key2"), TestResults.CreateValueResult("2"), TestResults.CreateValueResult("4")) .AddRow(TableRowType.Matching, ParameterVerificationStatus.NotApplicable, TestResults.CreateValueResult("Key3"), TestResults.CreateValueResult("3"), TestResults.CreateValueResult("6"))), TestResults.CreateTestParameter("inline", TestResults.CreateInlineParameterDetails("foo"))), TestResults.CreateStepResult(2, "sub-substep 2", ExecutionStatus.NotRun).WithGroupPrefix("2.3.")) )), TestResults.CreateScenarioResult(TestResults.CreateNameInfo("name2 \"arg1\"", "name2 \"{0}\"", "arg1"), null, _startDate.AddSeconds(4), new TimeSpan(0, 0, 0, 2, 157), new[] { "categoryB", "categoryC" }, TestResults.CreateStepResult(1, "step3", ExecutionStatus.Bypassed, _startDate.AddSeconds(5), new TimeSpan(0, 0, 0, 2, 107), "bypass reason"), TestResults.CreateStepResult(2, "step4", ExecutionStatus.Failed, _startDate.AddSeconds(6), new TimeSpan(0, 0, 0, 0, 50), $" Expected: True{Environment.NewLine} But was: False"), TestResults.CreateStepResult(3, "step5", ExecutionStatus.NotRun)))); }
public IFeatureResult Build() { return(TestResults.CreateFeatureResult(Name, "descr", "label", _scenarios.Select(s => s.Build()).ToArray())); }