FeatureResult ExecuteFeature(Feature feature, Type[] types, RunnerOptions options) { var featureResult = new FeatureResult(feature); var matcher = new StepMatcher(); var finder = new ActionStepFinder(); var steps = GetUniqueSteps(feature); var actionStepsClasses = finder.Find(types); var matches = MatchStepsToActionMethods(steps, actionStepsClasses, matcher); var executionObjects = GetExecutionObjects(matches); var filter = options.Filter; try { BeforeFeature(feature, executionObjects); foreach (var scenario in feature.Scenarios.SelectMany(s => s.GetExecutableScenarios()).Where(s => filter.IsSatisfiedBy(s.Tags))) { BeforeScenario(feature, scenario, executionObjects); var result = ExecuteScenario(scenario, feature, matches, executionObjects, options); featureResult.AddScenarioResult(result); AfterScenario(feature, scenario, result, executionObjects); if (options.SuccessRequired && !result.Success) { break; } } AfterFeature(feature, featureResult, executionObjects); } finally { CleanUpExecutionObjects(executionObjects); } return(featureResult); }
public override void DoSetUp() { finder = new ActionStepFinder(); }
public override void DoSetUp() { finder = new ActionStepFinder(); }