Ejemplo n.º 1
0
        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();
 }
Ejemplo n.º 3
0
 public override void DoSetUp()
 {
     finder = new ActionStepFinder();
 }