/// <summary> /// Notifies that scenario has started. /// </summary> /// <param name="scenario">Scenario info.</param> public void NotifyScenarioStart(IScenarioInfo scenario) { foreach (var notifier in _notifiers) { notifier.NotifyScenarioStart(scenario); } }
public RunnableScenario(RunnableScenarioContext scenarioContext, IScenarioInfo scenarioInfo, IEnumerable <StepDescriptor> stepDescriptors, ExecutionContextDescriptor contextDescriptor, IEnumerable <IScenarioDecorator> scenarioDecorators) { _scenarioContext = scenarioContext; _stepDescriptors = stepDescriptors; _contextDescriptor = contextDescriptor; _decoratedScenarioMethod = DecoratingExecutor.DecorateScenario(this, RunScenarioAsync, scenarioDecorators); _result = new ScenarioResult(scenarioInfo); }
public async Task ExecuteAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation) { try { ScenarioExecutionContext.Current = new ScenarioExecutionContext(); await scenarioInvocation(); } finally { ScenarioExecutionContext.Current = null; } }
/// <summary> /// Notifies that scenario has started. /// </summary> /// <param name="scenario">Scenario info.</param> public void NotifyScenarioStart(IScenarioInfo scenario) { _onNotify($"SCENARIO: {FormatLabels(scenario.Labels)}{scenario.Name}"); }
public ScenarioResult(IScenarioInfo info) { Info = info; Status = ExecutionStatus.NotRun; }
public void NotifyScenarioStart(IScenarioInfo scenario) { _currentScenarioNumber = _manager.StartNewScenario(); _notifier.NotifyScenarioStart(scenario); }
private string FormatScenario(IScenarioInfo scenario) { return($"{scenario.Name} [{string.Join(", ", scenario.Labels)}] <{string.Join(", ", scenario.Categories)}>"); }
public void NotifyScenarioStart(IScenarioInfo scenario) { _notifications.Add($"Scenario Start: {FormatScenario(scenario)}"); }
public void It_should_wire_steps_scenario_and_feature_infos() { IFeatureInfo featureInfo = null; IFeatureResult featureResult = null; IScenarioInfo scenarioInfo = null; IScenarioResult scenarioResult = null; var stepInfos = new List <IStepInfo>(); var stepResults = new List <IStepResult>(); var featureNotifier = new Mock <IFeatureProgressNotifier>(); var scenarioNotifier = new Mock <IScenarioProgressNotifier>(); featureNotifier.Setup(x => x.NotifyFeatureStart(It.IsAny <IFeatureInfo>())) .Callback((IFeatureInfo x) => featureInfo = x); featureNotifier.Setup(x => x.NotifyFeatureFinished(It.IsAny <IFeatureResult>())) .Callback((IFeatureResult x) => featureResult = x); scenarioNotifier.Setup(x => x.NotifyScenarioStart(It.IsAny <IScenarioInfo>())) .Callback((IScenarioInfo x) => scenarioInfo = x); scenarioNotifier.Setup(x => x.NotifyScenarioFinished(It.IsAny <IScenarioResult>())) .Callback((IScenarioResult x) => scenarioResult = x); scenarioNotifier.Setup(x => x.NotifyStepStart(It.IsAny <IStepInfo>())) .Callback((IStepInfo x) => stepInfos.Add(x)); scenarioNotifier.Setup(x => x.NotifyStepFinished(It.IsAny <IStepResult>())) .Callback((IStepResult x) => stepResults.Add(x)); var feature = new TestableFeatureRunnerRepository(featureNotifier.Object, fixture => scenarioNotifier.Object) .GetRunnerFor(GetType()); var runner = feature.GetBddRunner(this); try { runner.Test().TestGroupScenario(Composite_group); } catch { } feature.Dispose(); Assert.That(featureInfo, Is.Not.Null); Assert.That(featureInfo.RuntimeId, Is.Not.EqualTo(Guid.Empty), "Feature should have unique RuntimeId"); Assert.That(featureResult.Info, Is.SameAs(featureInfo)); Assert.That(scenarioInfo, Is.Not.Null); Assert.That(scenarioInfo.RuntimeId, Is.Not.EqualTo(Guid.Empty), "Scenario should have unique RuntimeId"); Assert.That(scenarioResult.Info, Is.SameAs(scenarioInfo)); Assert.That(scenarioInfo.Parent, Is.SameAs(featureInfo)); Assert.That(stepInfos.Select(x => x.RuntimeId).Distinct().Count(), Is.EqualTo(9), "Each step should have unique RuntimeId"); Assert.That(stepInfos[0].Parent, Is.SameAs(scenarioInfo)); Assert.That(stepInfos[1].Parent, Is.SameAs(stepInfos[0])); Assert.That(stepInfos[2].Parent, Is.SameAs(stepInfos[1])); Assert.That(stepInfos[3].Parent, Is.SameAs(stepInfos[1])); Assert.That(stepInfos[4].Parent, Is.SameAs(stepInfos[1])); Assert.That(stepInfos[5].Parent, Is.SameAs(stepInfos[0])); Assert.That(stepInfos[6].Parent, Is.SameAs(stepInfos[5])); Assert.That(stepInfos[7].Parent, Is.SameAs(stepInfos[5])); Assert.That(stepInfos[8].Parent, Is.SameAs(stepInfos[5])); Assert.That(stepResults[0].Info, Is.SameAs(stepInfos[2]), "1.1.1"); Assert.That(stepResults[1].Info, Is.SameAs(stepInfos[3]), "1.1.2"); Assert.That(stepResults[2].Info, Is.SameAs(stepInfos[4]), "1.1.3"); Assert.That(stepResults[3].Info, Is.SameAs(stepInfos[1]), "1.1"); Assert.That(stepResults[4].Info, Is.SameAs(stepInfos[6]), "1.2.1"); Assert.That(stepResults[5].Info, Is.SameAs(stepInfos[7]), "1.2.2"); Assert.That(stepResults[6].Info, Is.SameAs(stepInfos[8]), "1.2.3"); Assert.That(stepResults[7].Info, Is.SameAs(stepInfos[5]), "1.2"); Assert.That(stepResults[8].Info, Is.SameAs(stepInfos[0]), "1"); }
public void NotifyScenarioStart(IScenarioInfo scenario) { }
public Task ExecuteAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation) { throw new NotImplementedException(); }
public Task ExecuteScenarioAsync(IScenarioInfo scenario, Func <Task> scenarioInvocation) { return(new RecursiveExecutor <IScenarioInfo>(_scenarioExecutors, scenario, scenarioInvocation).ExecuteAsync()); }