public void It_should_notify_execution_progress() { var progressNotifier = new CapturingProgressNotifier(); var feature = new TestableFeatureRunnerRepository(progressNotifier, fixture => progressNotifier).GetRunnerFor(GetType()); var runner = feature.GetBddRunner(this); try { runner.Test().TestScenario( Given_step_one, When_step_two_with_comment, Then_step_three_should_throw_exception); } catch { } feature.Dispose(); string[] expected = { "Feature Start: CoreBddRunner progress notification tests [label1, label2]: feature description", "Scenario Start: It should notify execution progress [lab1, lab2] <category 1, category 2>", "Step Start: 1/3 GIVEN step one", "Step Finish: 1/3 GIVEN step one | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 2/3 WHEN step two with comment", "Step 2/3 Comment: some comment", "Step Finish: 2/3 WHEN step two with comment | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 3/3 THEN step three should throw exception", "Step Finish: 3/3 THEN step three should throw exception | Status:Failed | ExecutionTimePresent:True | Details:Step 3: exception reason", "Scenario Finish: It should notify execution progress [lab1, lab2] <category 1, category 2> | Status:Failed | ExecutionTimePresent:True | Steps:3 | Details:Step 3: exception reason", "Feature Finish: CoreBddRunner progress notification tests [label1, label2]: feature description | Scenarios:1" }; Assert.That(progressNotifier.Notifications, Is.EqualTo(expected), "Expected:\r\n{0}\r\n\r\nGot:\r\n{1}\r\n\r\n", string.Join("\r\n", expected), string.Join("\r\n", progressNotifier.Notifications)); }
public void It_should_notify_execution_progress_for_parameterized_steps() { var progressNotifier = new CapturingProgressNotifier(); var feature = new TestableFeatureRunnerRepository(progressNotifier, fixture => progressNotifier).GetRunnerFor(GetType()); var runner = feature.GetBddRunner(this); try { runner.Test().TestScenario( TestStep.CreateAsync(Given_step_with_parameter, () => "abc"), TestStep.CreateAsync(When_step_with_parameter, ThrowingParameterInvocation), TestStep.CreateAsync(Then_step_with_parameter, () => 2.22)); } catch { } feature.Dispose(); string[] expected = { "Feature Start: CoreBddRunner progress notification tests [label1, label2]: feature description", "Scenario Start: It should notify execution progress for parameterized steps [lab1, lab2] <category 1, category 2>", "Step Start: 1/3 GIVEN step with parameter \"abc\"", "Step Finish: 1/3 GIVEN step with parameter \"abc\" | Status:Passed | ExecutionTimePresent:True | Details:", "Scenario Finish: It should notify execution progress for parameterized steps [lab1, lab2] <category 1, category 2> | Status:Failed | ExecutionTimePresent:True | Steps:3 | Details:Step 2: parameter exception", "Feature Finish: CoreBddRunner progress notification tests [label1, label2]: feature description | Scenarios:1" }; Assert.That(progressNotifier.Notifications, Is.EqualTo(expected), "Expected:\r\n{0}\r\n\r\nGot:\r\n{1}\r\n\r\n", string.Join("\r\n", expected), string.Join("\r\n", progressNotifier.Notifications)); }
public void It_should_notify_execution_progress_of_composite_steps() { var progressNotifier = new CapturingProgressNotifier(); var feature = new TestableFeatureRunnerRepository(progressNotifier, fixture => progressNotifier).GetRunnerFor(GetType()); var runner = feature.GetBddRunner(this); try { runner.Test().TestGroupScenario(Composite_group); } catch { } feature.Dispose(); string[] expected = { "Feature Start: CoreBddRunner progress notification tests [label1, label2]: feature description", "Scenario Start: It should notify execution progress of composite steps [lab1, lab2] <category 1, category 2>", "Step Start: 1/1 Composite group", "Step Start: 1.1/1.2 Passing step group with comment", "Step Start: 1.1.1/1.1.3 GIVEN step one", "Step Finish: 1.1.1/1.1.3 GIVEN step one | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 1.1.2/1.1.3 WHEN step two with comment", "Step 1.1.2/1.1.3 Comment: some comment", "Step Finish: 1.1.2/1.1.3 WHEN step two with comment | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 1.1.3/1.1.3 THEN step three", "Step Finish: 1.1.3/1.1.3 THEN step three | Status:Passed | ExecutionTimePresent:True | Details:", "Step Finish: 1.1/1.2 Passing step group with comment | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 1.2/1.2 Bypassed step group", "Step Start: 1.2.1/1.2.3 GIVEN step one", "Step Finish: 1.2.1/1.2.3 GIVEN step one | Status:Passed | ExecutionTimePresent:True | Details:", "Step Start: 1.2.2/1.2.3 WHEN step two is bypassed", "Step Finish: 1.2.2/1.2.3 WHEN step two is bypassed | Status:Bypassed | ExecutionTimePresent:True | Details:Step 1.2.2: bypass reason", "Step Start: 1.2.3/1.2.3 THEN step three", "Step Finish: 1.2.3/1.2.3 THEN step three | Status:Passed | ExecutionTimePresent:True | Details:", "Step Finish: 1.2/1.2 Bypassed step group | Status:Bypassed | ExecutionTimePresent:True | Details:Step 1.2.2: bypass reason", "Step Finish: 1/1 Composite group | Status:Bypassed | ExecutionTimePresent:True | Details:Step 1.2.2: bypass reason", "Scenario Finish: It should notify execution progress of composite steps [lab1, lab2] <category 1, category 2> | Status:Bypassed | ExecutionTimePresent:True | Steps:1 | Details:Step 1.2.2: bypass reason", "Feature Finish: CoreBddRunner progress notification tests [label1, label2]: feature description | Scenarios:1" }; Assert.That(progressNotifier.Notifications, Is.EqualTo(expected), "Expected:\r\n{0}\r\n\r\nGot:\r\n{1}\r\n\r\n", string.Join("\r\n", expected), string.Join("\r\n", progressNotifier.Notifications)); }
public void It_should_instantiate_new_scenario_progress_notifier_for_each_scenario() { var notifiers = new List <CapturingProgressNotifier>(); Func <object, IScenarioProgressNotifier> captureNotifierCreation = fixture => { var notifier = new CapturingProgressNotifier(); notifiers.Add(notifier); return(notifier); }; var runner = new TestableFeatureRunnerRepository(NoProgressNotifier.Default, captureNotifierCreation).GetRunnerFor(GetType()).GetBddRunner(this); runner.Test().TestNamedScenario("scenario1", TestStep.CreateSync(Given_step_one)); runner.Test().TestNamedScenario("scenario2", TestStep.CreateSync(Given_step_one)); runner.Test().TestNamedScenario("scenario3", TestStep.CreateSync(Given_step_one)); Assert.That(notifiers.Count, Is.EqualTo(3)); Assert.That(notifiers[0].Notifications.Count(n => n.StartsWith("Scenario Start: scenario1")), Is.EqualTo(1), "scenario1"); Assert.That(notifiers[1].Notifications.Count(n => n.StartsWith("Scenario Start: scenario2")), Is.EqualTo(1), "scenario2"); Assert.That(notifiers[2].Notifications.Count(n => n.StartsWith("Scenario Start: scenario3")), Is.EqualTo(1), "scenario3"); }