Class: Spinach::Runner::FeatureRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/spinach/runner/feature_runner.rb

Overview

A feature runner handles a particular feature run.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(feature, line = nil) ⇒ FeatureRunner

Returns a new instance of FeatureRunner.

Parameters:

  • feature (Gherkin::AST::Feature)

    The feature to run.

  • line (#to_i) (defaults to: nil)

    If a scenario line is passed, then only the scenario defined on that line will be run.



18
19
20
21
# File 'lib/spinach/runner/feature_runner.rb', line 18

def initialize(feature, line=nil)
  @feature = feature
  @line    = line.to_i if line
end

Instance Attribute Details

#featureObject (readonly)

Returns the value of attribute feature.



8
9
10
# File 'lib/spinach/runner/feature_runner.rb', line 8

def feature
  @feature
end

Instance Method Details

#feature_nameString

Returns This feature name.

Returns:

  • (String)

    This feature name.



27
28
29
# File 'lib/spinach/runner/feature_runner.rb', line 27

def feature_name
  @feature.name
end

#runtrue, false

Runs this feature.

Returns:

  • (true, false)

    Whether the run was successful or not.



45
46
47
48
49
50
51
52
53
54
# File 'lib/spinach/runner/feature_runner.rb', line 45

def run
  Spinach.hooks.run_before_feature @feature
  if Spinach.find_step_definitions(feature_name)
    run_scenarios!
  else
    undefined_steps!
  end
  Spinach.hooks.run_after_feature @feature
  !@failed
end

#scenariosArray<Gherkin::AST::Scenario>

Returns The parsed scenarios for this runner’s feature.

Returns:

  • (Array<Gherkin::AST::Scenario>)

    The parsed scenarios for this runner’s feature.



35
36
37
# File 'lib/spinach/runner/feature_runner.rb', line 35

def scenarios
  @feature.scenarios
end