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 });
        }
示例#5
0
        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[&#8734;link]
Toggle: Features Scenarios
Filter: Passed Bypassed Failed Ignored Not Run
[&#8734;filtered link]
My feature[&#8734;link]
Passed scenario1 (5s)[&#8734;link]
Passed &lt;gr&gt;1. ty&lt;p&gt;e ste&lt;p&gt; (20ms)
Passed 2. ste&lt;p&gt;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))));
        }
示例#9
0
 public IFeatureResult Build()
 {
     return(TestResults.CreateFeatureResult(Name, "descr", "label", _scenarios.Select(s => s.Build()).ToArray()));
 }