spinach 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b707d1189dcf7e14b981a5c71720a2c5e15535c
4
- data.tar.gz: c446d9797269a2a2ac125a6a38f13b4afa8573c8
3
+ metadata.gz: 83c66a61a7a2acb9a68481350f9eb89d95e48eec
4
+ data.tar.gz: 7e2f76bef3a0796aa342bb9bdd0f1589de02e678
5
5
  SHA512:
6
- metadata.gz: 3cb1779c57669967a3996b12e99359af58029e0447614bc6b08e4d97b2ce9a38fa1b301cba09a27d6e71a51f6da8c45d742c91de1f3c3edc2782a1720afb0020
7
- data.tar.gz: 56d2b4fa3ebf70c65e9d5b19306171cd0c6be991a62c234053b824f261287212aeaef3705c97a1e705602e3d2e7c4e6972cb1013a4404798bc2ed29eb3f37895
6
+ metadata.gz: 68e0b156aa56a28d06cae2585f6504fda3648ea943db9fb5ccc33ecf5afc2ab9e2be16cd55187f0bc18febd3ab147d25263a7a2130d82c576696ff8b441c09ef
7
+ data.tar.gz: fdd2eec1dc6d73374f6bbbb7c6b8610c0f73d56cb3110c8e01fb2cf60a46a912a506c09a0abb03173dccb9011b68842691cfc50b240eca9e223370e9d1fb8e16
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  capybara-*.html
19
19
  Gemfile.lock
20
+ tags
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.0.0-p0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.8.3
2
+ * Add ```--fail-fast``` option. When specified, the suite will terminate after the first failed scenario
3
+
1
4
  == 0.8.2
2
5
  * upgrade to gherkin-ruby 0.3 in order to avoid naming conflicts when using at
3
6
  the same time spinach & cucumber (transitioning)
@@ -51,4 +54,4 @@ the same time spinach & cucumber (transitioning)
51
54
  * Add docs on how to use shared steps.
52
55
 
53
56
  * deprecations
54
- * Nothing
57
+ * Nothing
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source 'http://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rake'
7
+ gem 'coveralls', require: false
7
8
 
8
9
  group :test do
9
10
  gem 'guard'
data/README.markdown CHANGED
@@ -1,4 +1,8 @@
1
- # Spinach - BDD framework on top of Gherkin [![Build Status](https://secure.travis-ci.org/codegram/spinach.png)](http://travis-ci.org/codegram/spinach) [![Dependency Status](https://gemnasium.com/codegram/spinach.png)](http://gemnasium.com/codegram/spinach)
1
+ # Spinach - BDD framework on top of Gherkin
2
+ [![Gem Version](https://badge.fury.io/rb/spinach.png)](http://badge.fury.io/rb/spinach)
3
+ [![Build Status](https://secure.travis-ci.org/codegram/spinach.png)](http://travis-ci.org/codegram/spinach)
4
+ [![Dependency Status](https://gemnasium.com/codegram/spinach.png)](http://gemnasium.com/codegram/spinach)
5
+ [![Coverage Status](https://coveralls.io/repos/codegram/spinach/badge.png?branch=master)](https://coveralls.io/r/codegram/spinach)
2
6
 
3
7
  Spinach is a high-level BDD framework that leverages the expressive
4
8
  [Gherkin language][gherkin] (used by [Cucumber][cucumber]) to help you define
@@ -12,8 +16,7 @@ Conceived as an alternative to Cucumber, here are some of its design goals:
12
16
  * Step reusability: In case you want to reuse steps across features, you can
13
17
  always wrap those in plain ol' Ruby modules.
14
18
 
15
- Spinach is tested against **MRI 1.9.3 and 2.0.0**. Rubinius 2.0 support
16
- is on the works.
19
+ Spinach is tested against **MRI 1.9.3 and 2.0.0**.
17
20
 
18
21
  We are not planning to make it compatible with MRI 1.8.7 since, you know, this
19
22
  would be irresponsible :)
@@ -162,6 +165,8 @@ This is one way to make that reusable:
162
165
  # ... features/steps/common_steps/login.rb
163
166
  module CommonSteps
164
167
  module Login
168
+ include Spinach::DSL
169
+
165
170
  step 'I am logged in' do
166
171
  # log in stuff...
167
172
  end
@@ -349,3 +354,7 @@ You can easily contribute to Spinach. Its codebase is simple and
349
354
  ## License
350
355
 
351
356
  MIT License. Copyright 2011 [Codegram Technologies](http://codegram.com)
357
+
358
+
359
+ [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/codegram/spinach/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
360
+
@@ -0,0 +1,10 @@
1
+ Feature: Fail fast option
2
+ In order to save running time
3
+ As a developer
4
+ I want spinach to fail fast when I so desire
5
+
6
+ Scenario: fail fast
7
+ Given I have a feature that has a failure
8
+ And I have a feature that has no error or failure
9
+ When I run both of them with fail-fast option
10
+ Then the tests stop at the first one
@@ -5,36 +5,11 @@ class ExitStatus < Spinach::FeatureSteps
5
5
  include Integration::SpinachRunner
6
6
 
7
7
  Given "I have a feature that has no error or failure" do
8
- write_file('features/success_feature.feature', """
9
- Feature: A success feature
10
-
11
- Scenario: This is scenario will succeed
12
- Then I succeed
13
- """)
14
- write_file('features/steps/success_feature.rb',
15
- 'class ASuccessFeature < Spinach::FeatureSteps
16
- feature "A success feature"
17
- Then "I succeed" do
18
- end
19
- end')
20
- @feature = "features/success_feature.feature"
8
+ @feature = Integration::FeatureGenerator.success_feature
21
9
  end
22
10
 
23
11
  Given "I have a feature that has a failure" do
24
- write_file('features/failure_feature.feature', """
25
- Feature: A failure feature
26
-
27
- Scenario: This is scenario will fail
28
- Then I fail
29
- """)
30
- write_file('features/steps/failure_feature.rb',
31
- 'class AFailureFeature < Spinach::FeatureSteps
32
- feature "A failure feature"
33
- Then "I fail" do
34
- true.must_equal false
35
- end
36
- end')
37
- @feature = "features/failure_feature.feature"
12
+ @feature = Integration::FeatureGenerator.failure_feature
38
13
  end
39
14
 
40
15
  When "I run it" do
@@ -0,0 +1,21 @@
1
+ class Spinach::Features::FailFastOption < Spinach::FeatureSteps
2
+ include Integration::SpinachRunner
3
+
4
+ step 'I have a feature that has a failure' do
5
+ @features ||= []
6
+ @features << Integration::FeatureGenerator.failure_feature_with_two_scenarios
7
+ end
8
+
9
+ step 'I have a feature that has no error or failure' do
10
+ @features ||= []
11
+ @features << Integration::FeatureGenerator.success_feature
12
+ end
13
+
14
+ step 'I run both of them with fail-fast option' do
15
+ run_feature @features.join(" "), append: '--fail-fast'
16
+ end
17
+
18
+ step 'the tests stop at the first one' do
19
+ @stdout.must_match("(0) Successful")
20
+ end
21
+ end
@@ -29,8 +29,7 @@ Feature: Feature with failures
29
29
 
30
30
  Scenario: This scenario will fail
31
31
  Given true is false
32
- Then remove all the files in my hard drive
33
- """)
32
+ Then remove all the files in my hard drive""")
34
33
 
35
34
  write_file('features/steps/failure_feature.rb',
36
35
  'class FeatureWithFailures < Spinach::FeatureSteps
@@ -1,6 +1,20 @@
1
1
  require 'minitest/spec'
2
2
  require_relative 'filesystem'
3
3
 
4
+ require 'simplecov'
5
+ require 'coveralls'
6
+
7
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
8
+ if ENV['CI']
9
+ require 'simplecov'
10
+
11
+ SimpleCov.start do
12
+ add_filter '/test/'
13
+ add_filter '/features/'
14
+ end
15
+ end
16
+
17
+
4
18
  Spinach.hooks.after_run do |scenario|
5
19
  FileUtils.rm_rf(Filesystem.dirs)
6
20
  end
@@ -0,0 +1,115 @@
1
+ module Integration
2
+ class FeatureGenerator
3
+ class << self
4
+ include Filesystem
5
+
6
+ # Generate a feature with 1 scenario that should pass
7
+ #
8
+ # @return feature_filename
9
+ # The feature file name
10
+ #
11
+ # @api private
12
+ def success_feature
13
+ feature= success_scenario_title + success_scenario
14
+ steps = success_step_class_str + success_step + "\nend"
15
+ write_feature 'features/success_feature.feature', feature,
16
+ 'features/steps/success_feature.rb', steps
17
+ end
18
+
19
+ # Generate a feature that has 2 scenarios. The first one should
20
+ # pass and the second one should fail
21
+ #
22
+ # @return feature_filename
23
+ # The feature file name
24
+ #
25
+ # @api private
26
+ def failure_feature_with_two_scenarios
27
+ feature = failure_feature_title + failure_sceario + success_scenario
28
+ steps = failure_step + success_step + "\nend"
29
+ write_feature failure_filename, feature,
30
+ failure_step_filename, steps
31
+ end
32
+
33
+ # Generate a feature with 1 scenario that should fail
34
+ #
35
+ # @return feature_filename
36
+ # The feature file name
37
+ #
38
+ # @api private
39
+ def failure_feature
40
+ feature = failure_feature_title + failure_sceario
41
+ write_feature failure_filename, feature,
42
+ failure_step_filename, failure_step + "\nend"
43
+ end
44
+
45
+ private
46
+
47
+ # Write feature file and its associated step file
48
+ # @param feature_file
49
+ # The name of the feature file to be written to
50
+ # @param feature
51
+ # The string to be written into the feature file
52
+ # @param step_file
53
+ # The name of the step ruby file to be written to
54
+ # @param steps
55
+ # The string to be written into the step file
56
+ #
57
+ # @return feature_filename
58
+ # The feature file name
59
+ #
60
+ # @api private
61
+ def write_feature(feature_file, feature, step_file, steps)
62
+ write_file(feature_file, feature)
63
+ write_file(step_file, steps)
64
+ feature_file
65
+ end
66
+
67
+ def failure_step
68
+ 'class AFailureFeature < Spinach::FeatureSteps
69
+ feature "A failure feature"
70
+ Then "I fail" do
71
+ true.must_equal false
72
+ end'
73
+ end
74
+
75
+ def success_scenario
76
+ 'Scenario: This is scenario will succeed
77
+ Then I succeed'
78
+ end
79
+
80
+ def success_scenario_title
81
+ "Feature: A success feature\n\n"
82
+ end
83
+
84
+ def success_step
85
+ '
86
+ step "I succeed" do
87
+ end'
88
+ end
89
+
90
+ def success_step_class_str
91
+ %Q|class ASuccessFeature < Spinach::FeatureSteps
92
+ feature "A success feature"\n\n|
93
+ end
94
+
95
+ def failure_step_filename
96
+ 'features/steps/failure_feature.rb'
97
+ end
98
+
99
+ def failure_filename
100
+ "features/failure_feature.feature"
101
+ end
102
+
103
+ def failure_feature_title
104
+ "Feature: A failure feature\n\n"
105
+ end
106
+
107
+ def failure_sceario
108
+ """
109
+ Scenario: This is scenario will fail
110
+ Then I fail
111
+ """
112
+ end
113
+ end
114
+ end
115
+ end
@@ -1,6 +1,7 @@
1
1
  require 'capybara'
2
2
  require 'capybara/dsl'
3
3
  require 'rbconfig'
4
+ require 'spinach/config'
4
5
  require_relative 'feature_steps'
5
6
 
6
7
  module Spinach
@@ -59,7 +60,7 @@ module Spinach
59
60
  end
60
61
 
61
62
  Spinach.hooks.after_scenario do
62
- ::Capybara.current_session.reset! if ::Capybara.app
63
+ ::Capybara.reset_sessions! if ::Capybara.app
63
64
  ::Capybara.use_default_driver
64
65
  end
65
66
 
data/lib/spinach/cli.rb CHANGED
@@ -126,6 +126,11 @@ module Spinach
126
126
  'Formatter class name') do |class_name|
127
127
  config[:reporter_class] = reporter_class(class_name)
128
128
  end
129
+
130
+ opts.on_tail('--fail-fast',
131
+ 'Terminate the suite run on the first failure') do |class_name|
132
+ config[:fail_fast] = true
133
+ end
129
134
  end.parse!(@args)
130
135
 
131
136
  Spinach.config.parse_from_file
@@ -32,7 +32,8 @@ module Spinach
32
32
  :generate,
33
33
  :save_and_open_page_on_failure,
34
34
  :reporter_class,
35
- :reporter_options
35
+ :reporter_options,
36
+ :fail_fast
36
37
 
37
38
 
38
39
  # The "features path" holds the place where your features will be
@@ -131,6 +132,17 @@ module Spinach
131
132
  @failure_exceptions ||= []
132
133
  end
133
134
 
135
+ # The "fail_fast" determines if the suite run should exit
136
+ # when encountering a failure/error
137
+ #
138
+ # @return [true/false]
139
+ # The fail_fast flag.
140
+ #
141
+ # @api public
142
+ def fail_fast
143
+ @fail_fast
144
+ end
145
+
134
146
  # It allows you to set a config file to parse for all the other options to be set
135
147
  #
136
148
  # @return [String]
data/lib/spinach/hooks.rb CHANGED
@@ -83,7 +83,7 @@ module Spinach
83
83
  # Runs after every step execution
84
84
  #
85
85
  # @example
86
- # Spinach.hooks.before_step do |step_data, step_definitions|
86
+ # Spinach.hooks.after_step do |step_data, step_definitions|
87
87
  # # step_data contains a hash with this step's data
88
88
  # end
89
89
  hook :after_step
@@ -75,6 +75,7 @@ module Spinach
75
75
  feature = Parser.open_file(filename).parse
76
76
  success = FeatureRunner.new(feature, line).run
77
77
  successful = false unless success
78
+ break if fail_fast? && !successful
78
79
  end
79
80
 
80
81
  Spinach.hooks.run_after_run(successful)
@@ -133,6 +134,12 @@ module Spinach
133
134
  def required_files
134
135
  support_files + step_definition_files
135
136
  end
137
+
138
+ private
139
+
140
+ def fail_fast?
141
+ Spinach.config.fail_fast
142
+ end
136
143
  end
137
144
  end
138
145
 
@@ -68,6 +68,7 @@ module Spinach
68
68
  if run_scenario?(scenario, current_scenario_index)
69
69
  success = ScenarioRunner.new(scenario).run
70
70
  @failed = true unless success
71
+ break if Spinach.config.fail_fast && @failed
71
72
  end
72
73
  end
73
74
  end
@@ -1,4 +1,4 @@
1
1
  module Spinach
2
2
  # Spinach version.
3
- VERSION = "0.8.2"
3
+ VERSION = "0.8.3"
4
4
  end
data/spinach.gemspec CHANGED
@@ -19,7 +19,6 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency 'simplecov'
20
20
  gem.add_development_dependency 'rspec'
21
21
  gem.add_development_dependency 'minitest'
22
- gem.add_development_dependency 'turn'
23
22
 
24
23
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
25
24
  gem.files = `git ls-files`.split("\n")
@@ -21,6 +21,14 @@ describe Spinach::Cli do
21
21
  config[:reporter_options].must_equal({})
22
22
  end
23
23
 
24
+ it 'sets the default fail-fast option to false' do
25
+ config = Spinach::Config.new
26
+ Spinach.stubs(:config).returns(config)
27
+ cli = Spinach::Cli.new([])
28
+ cli.options
29
+ config[:fail_fast].wont_equal(true)
30
+ end
31
+
24
32
  it 'sets default tags' do
25
33
  config = Spinach::Config.new
26
34
  Spinach.stubs(:config).returns(config)
@@ -154,6 +162,15 @@ tags:
154
162
  end
155
163
  end
156
164
 
165
+ describe 'fail-fast' do
166
+ it 'set the fail_fast flag, given "--fail-fast"' do
167
+ config = Spinach::Config.new
168
+ Spinach.stubs(:config).returns(config)
169
+ Spinach::Cli.new(["--fail-fast"]).options
170
+ config.fail_fast.must_equal true
171
+ end
172
+ end
173
+
157
174
  describe "version" do
158
175
  %w{-v --version}.each do |opt|
159
176
  it "outputs the version" do
@@ -256,7 +273,7 @@ tags:
256
273
 
257
274
  File.stubs(:directory?).returns(true)
258
275
  Dir.expects(:glob).with('path/to/features/**/*.feature')
259
- .returns(['several features'])
276
+ .returns(['several features'])
260
277
 
261
278
  File.stubs(:exists?).returns(true)
262
279
 
@@ -70,6 +70,22 @@ describe Spinach::Runner::FeatureRunner do
70
70
 
71
71
  @runner.run.must_equal false
72
72
  end
73
+
74
+ describe "with config option fail_fast set" do
75
+ let(:runners) { [ stub('runner1', run: false), stub('runner2') ] }
76
+
77
+ before(:each) do
78
+ Spinach.config.stubs(:fail_fast).returns(true)
79
+ @scenarios.each_with_index do |scenario, i|
80
+ Spinach::Runner::ScenarioRunner.stubs(:new).with(scenario).returns runners[i]
81
+ end
82
+ end
83
+
84
+ it "breaks with fail_fast config option" do
85
+ runners[1].expects(:run).never
86
+ @runner.run.must_equal(false)
87
+ end
88
+ end
73
89
  end
74
90
  end
75
91
 
@@ -43,7 +43,7 @@ module Spinach
43
43
  step_definitions.stubs(:before_each)
44
44
  step_definitions.stubs(:after_each)
45
45
  end
46
-
46
+
47
47
  it 'runs hooks in order' do
48
48
  hooks = sequence('hooks')
49
49
 
@@ -72,12 +72,12 @@ describe Spinach::Runner do
72
72
  end
73
73
 
74
74
  describe '#run' do
75
- before do
75
+ before(:each) do
76
76
  @feature_runner = stub
77
77
  filenames.each do |filename|
78
- Spinach::Parser.expects(:open_file).with(filename).returns parser = stub
78
+ Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
79
79
  parser.stubs(:parse).returns feature = stub
80
- Spinach::Runner::FeatureRunner.expects(:new).
80
+ Spinach::Runner::FeatureRunner.stubs(:new).
81
81
  with(feature, anything).
82
82
  returns(@feature_runner)
83
83
  end
@@ -100,6 +100,35 @@ describe Spinach::Runner do
100
100
  @feature_runner.stubs(:run).returns(false)
101
101
  runner.run.must_equal false
102
102
  end
103
+
104
+ describe "when fail_fast set" do
105
+ let(:feature_runners) { [ stub, stub ] }
106
+
107
+ before(:each) do
108
+ filenames.each_with_index do |filename, i|
109
+ Spinach::Parser.stubs(:open_file).with(filename).returns parser = stub
110
+ parser.stubs(:parse).returns feature = stub
111
+ Spinach::Runner::FeatureRunner.stubs(:new).
112
+ with(feature, anything).
113
+ returns(feature_runners[i])
114
+ end
115
+
116
+ feature_runners[0].stubs(:run).returns(false)
117
+ runner.stubs(required_files: [])
118
+ Spinach.config.stubs(:fail_fast).returns true
119
+ end
120
+
121
+ it "breaks with a failure" do
122
+ feature_runners[1].expects(:run).never
123
+ runner.run.must_equal false
124
+ end
125
+
126
+ it "doesn't break when success" do
127
+ feature_runners[0].stubs(:run).returns(true)
128
+ feature_runners[1].expects(:run).returns true
129
+ runner.run.must_equal true
130
+ end
131
+ end
103
132
  end
104
133
 
105
134
  describe '#require_dependencies' do
data/test/test_helper.rb CHANGED
@@ -1,6 +1,8 @@
1
- gem 'minitest'
1
+ require 'simplecov'
2
+ require 'coveralls'
2
3
 
3
- if ENV['COVERAGE']
4
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
5
+ if ENV['CI']
4
6
  require 'simplecov'
5
7
 
6
8
  SimpleCov.start do
@@ -9,13 +11,12 @@ if ENV['COVERAGE']
9
11
  end
10
12
  end
11
13
 
12
- require 'minitest/spec'
13
14
  require 'minitest/autorun'
15
+ require 'minitest/spec'
14
16
  require 'mocha/setup'
15
17
  require 'ostruct'
16
18
  require 'stringio'
17
19
  require 'pry'
18
- require 'turn'
19
20
 
20
21
  require 'spinach'
21
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spinach
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-04-19 00:00:00.000000000 Z
14
+ date: 2013-06-04 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: gherkin-ruby
@@ -153,20 +153,6 @@ dependencies:
153
153
  - - '>='
154
154
  - !ruby/object:Gem::Version
155
155
  version: '0'
156
- - !ruby/object:Gem::Dependency
157
- name: turn
158
- requirement: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - '>='
161
- - !ruby/object:Gem::Version
162
- version: '0'
163
- type: :development
164
- prerelease: false
165
- version_requirements: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - '>='
168
- - !ruby/object:Gem::Version
169
- version: '0'
170
156
  description: Spinach is a BDD framework on top of gherkin
171
157
  email:
172
158
  - info@codegram.com
@@ -195,6 +181,7 @@ files:
195
181
  - features/before_and_after_hooks.feature
196
182
  - features/before_and_after_hooks_inheritance.feature
197
183
  - features/exit_status.feature
184
+ - features/fail_fast.feature
198
185
  - features/feature_name_guessing.feature
199
186
  - features/reporting/customized_reporter.feature
200
187
  - features/reporting/display_run_summary.feature
@@ -208,6 +195,7 @@ files:
208
195
  - features/steps/before_and_after_hooks.rb
209
196
  - features/steps/before_and_after_hooks_inheritance.rb
210
197
  - features/steps/exit_status.rb
198
+ - features/steps/fail_fast_option.rb
211
199
  - features/steps/feature_name_guessing.rb
212
200
  - features/steps/reporting/display_run_summary.rb
213
201
  - features/steps/reporting/error_reporting.rb
@@ -218,6 +206,7 @@ files:
218
206
  - features/steps/rspec_compatibility.rb
219
207
  - features/support/env.rb
220
208
  - features/support/error_reporting.rb
209
+ - features/support/feature_generator.rb
221
210
  - features/support/filesystem.rb
222
211
  - features/support/spinach_runner.rb
223
212
  - lib/spinach.rb
@@ -311,6 +300,7 @@ test_files:
311
300
  - features/before_and_after_hooks.feature
312
301
  - features/before_and_after_hooks_inheritance.feature
313
302
  - features/exit_status.feature
303
+ - features/fail_fast.feature
314
304
  - features/feature_name_guessing.feature
315
305
  - features/reporting/customized_reporter.feature
316
306
  - features/reporting/display_run_summary.feature
@@ -324,6 +314,7 @@ test_files:
324
314
  - features/steps/before_and_after_hooks.rb
325
315
  - features/steps/before_and_after_hooks_inheritance.rb
326
316
  - features/steps/exit_status.rb
317
+ - features/steps/fail_fast_option.rb
327
318
  - features/steps/feature_name_guessing.rb
328
319
  - features/steps/reporting/display_run_summary.rb
329
320
  - features/steps/reporting/error_reporting.rb
@@ -334,6 +325,7 @@ test_files:
334
325
  - features/steps/rspec_compatibility.rb
335
326
  - features/support/env.rb
336
327
  - features/support/error_reporting.rb
328
+ - features/support/feature_generator.rb
337
329
  - features/support/filesystem.rb
338
330
  - features/support/spinach_runner.rb
339
331
  - test/spinach/background_test.rb
@@ -365,4 +357,3 @@ test_files:
365
357
  - test/spinach_test.rb
366
358
  - test/support/filesystem.rb
367
359
  - test/test_helper.rb
368
- has_rdoc: