spinach 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,10 @@
1
+ Feature: Pending feature reporting
2
+ In order to be aware of what features are still pending
3
+ As a developer
4
+ I want spinach to tell me which of them I still need to implement
5
+
6
+ Scenario: Pending feature
7
+ Given I've written a pending scenario
8
+ When I run spinach
9
+ Then I should see a message telling me that there's a pending scenario
10
+ And I should see a message showing me the reason of the pending scenario
@@ -0,0 +1,41 @@
1
+ class PendingFeatureReporting < Spinach::FeatureSteps
2
+
3
+ feature "Pending feature reporting"
4
+
5
+ include Integration::SpinachRunner
6
+
7
+ Given "I've written a pending scenario" do
8
+ write_file(
9
+ 'features/pending_feature.feature',
10
+ """
11
+ Feature: A pending feature
12
+
13
+ Scenario: This scenario is pending
14
+ Given I have a pending step
15
+ """)
16
+
17
+ write_file(
18
+ 'features/steps/pending_feature.rb',
19
+ 'class APendingFeature < Spinach::FeatureSteps
20
+
21
+ feature "A pending feature"
22
+
23
+ Given "I have a pending step" do
24
+ pending "This step is pending."
25
+ end
26
+ end')
27
+ @feature = "features/pending_feature.feature"
28
+ end
29
+
30
+ When "I run spinach" do
31
+ run_feature @feature
32
+ end
33
+
34
+ Then "I should see a message telling me that there's a pending scenario" do
35
+ @stdout.must_include("(1) Pending")
36
+ end
37
+
38
+ And "I should see a message showing me the reason of the pending scenario" do
39
+ @stderr.must_include("This step is pending")
40
+ end
41
+ end
@@ -73,6 +73,7 @@ module Spinach
73
73
  def feature(name)
74
74
  @feature_name = name
75
75
  end
76
+
76
77
  end
77
78
 
78
79
  # Instance methods to include in the host class.
@@ -107,6 +108,21 @@ module Spinach
107
108
  def name
108
109
  self.class.feature_name
109
110
  end
111
+
112
+ # Raises an exception that defines the current step as a pending one.
113
+ #
114
+ # @api public
115
+ #
116
+ # @param [String] reason
117
+ # The reason why the step is set to pending
118
+ #
119
+ # @raise [Spinach::StepPendingException]
120
+ # Raising the exception tells the scenario runner the current step is
121
+ # pending.
122
+ def pending(reason)
123
+ raise Spinach::StepPendingException.new(reason)
124
+ end
125
+
110
126
  end
111
127
  end
112
128
  end
@@ -3,12 +3,12 @@ module Spinach
3
3
  # for a {FeatureSteps}.
4
4
  #
5
5
  class StepNotDefinedException < StandardError
6
- attr_reader :feature, :step
6
+ attr_reader :step
7
7
 
8
8
  # @param [Hash] step
9
9
  # The missing step.
10
10
  #
11
- # @api pulic
11
+ # @api public
12
12
  def initialize(step)
13
13
  @step = step
14
14
  end
@@ -21,4 +21,25 @@ module Spinach
21
21
  "Step '#{@step.name}' not found"
22
22
  end
23
23
  end
24
+
25
+ class StepPendingException < StandardError
26
+ attr_reader :reason
27
+ attr_accessor :step
28
+
29
+ # @param [String] reason
30
+ # The reason why the step is set to pending
31
+ #
32
+ # @api public
33
+ def initialize(reason)
34
+ @reason = reason
35
+ end
36
+
37
+ # @return [String]
38
+ # A custom message when scenario steps are pending.
39
+ #
40
+ # @api public
41
+ def message
42
+ "Step '#{@step.name}' pending"
43
+ end
44
+ end
24
45
  end
@@ -15,7 +15,7 @@ module Spinach
15
15
  def generate
16
16
  result = StringIO.new
17
17
  result.puts "#{@step.keyword} '#{Spinach::Support.escape_single_commas @step.name}' do"
18
- result.puts " raise 'step not implemented'"
18
+ result.puts " pending 'step not implemented'"
19
19
  result.puts "end"
20
20
  result.string
21
21
  end
@@ -128,6 +128,15 @@ module Spinach
128
128
  # end
129
129
  hook :on_undefined_step
130
130
 
131
+ # Runs every time a pending step is called
132
+ #
133
+ # @example
134
+ # Spinach.hooks.on_pending_step do |step_data, exception|
135
+ # # step_data contains a hash with this step's data
136
+ # # exception contains the raised exception containing the pending message
137
+ # end
138
+ hook :on_pending_step
139
+
131
140
  # Runs every time a step is skipped because there has been an unsuccessful
132
141
  # one just before.
133
142
  #
@@ -15,13 +15,14 @@ module Spinach
15
15
  @undefined_steps = []
16
16
  @failed_steps = []
17
17
  @error_steps = []
18
+ @pending_steps = []
18
19
  end
19
20
 
20
21
  # A Hash with options for the reporter
21
22
  #
22
23
  attr_reader :options, :current_feature, :current_scenario
23
24
 
24
- attr_reader :undefined_steps, :failed_steps, :error_steps, :undefined_features, :successful_steps
25
+ attr_reader :pending_steps, :undefined_steps, :failed_steps, :error_steps, :undefined_features, :successful_steps
25
26
 
26
27
  # Hooks the reporter to the runner endpoints
27
28
  def bind
@@ -35,6 +36,7 @@ module Spinach
35
36
  hooks.after_scenario { |*args| after_scenario_run(*args) }
36
37
  hooks.on_successful_step { |*args| on_successful_step(*args) }
37
38
  hooks.on_undefined_step { |*args| on_undefined_step(*args) }
39
+ hooks.on_pending_step { |*args| on_pending_step(*args) }
38
40
  hooks.on_failed_step { |*args| on_failed_step(*args) }
39
41
  hooks.on_error_step { |*args| on_error_step(*args) }
40
42
  hooks.on_skipped_step { |*args| on_skipped_step(*args) }
@@ -59,6 +61,7 @@ module Spinach
59
61
  def on_failed_step(*args); end;
60
62
  def on_error_step(*args); end;
61
63
  def on_undefined_step(*args); end;
64
+ def on_pending_step(*args); end;
62
65
  def on_skipped_step(*args); end;
63
66
 
64
67
  # Stores the current feature
@@ -117,6 +117,17 @@ module Spinach
117
117
  undefined_steps << scenario_error
118
118
  end
119
119
 
120
+ # Adds an undefined step to the output buffer.
121
+ #
122
+ # @param [Hash] step
123
+ # The step in a JSON Gherkin format
124
+ #
125
+ def on_pending_step(step, failure)
126
+ output_step('P', step, :yellow)
127
+ self.scenario_error = [current_feature, current_scenario, step, failure]
128
+ pending_steps << scenario_error
129
+ end
130
+
120
131
  # Adds a feature not found message to the output buffer.
121
132
  #
122
133
  # @param [Hash] feature
@@ -198,10 +209,11 @@ module Spinach
198
209
  def run_summary
199
210
  successful_summary = format_summary(:green, successful_steps, 'Successful')
200
211
  undefined_summary = format_summary(:yellow, undefined_steps, 'Undefined')
212
+ pending_summary = format_summary(:yellow, pending_steps, 'Pending')
201
213
  failed_summary = format_summary(:red, failed_steps, 'Failed')
202
214
  error_summary = format_summary(:red, error_steps, 'Error')
203
215
 
204
- out.puts "Steps Summary: #{successful_summary}, #{undefined_summary}, #{failed_summary}, #{error_summary}\n\n"
216
+ out.puts "Steps Summary: #{successful_summary}, #{undefined_summary}, #{pending_summary}, #{failed_summary}, #{error_summary}\n\n"
205
217
  end
206
218
 
207
219
  # Constructs the full step definition
@@ -12,26 +12,25 @@ module Spinach
12
12
  report_failed_steps
13
13
  report_undefined_features
14
14
  report_undefined_steps
15
+ report_pending_steps
15
16
  end
16
17
 
17
- # Prints the steps that raised an error.
18
- #
19
18
  def report_error_steps
20
19
  report_errors('Errors', error_steps, :light_red) if error_steps.any?
21
20
  end
22
21
 
23
- # Prints failing steps.
24
- #
25
22
  def report_failed_steps
26
23
  report_errors('Failures', failed_steps, :light_red) if failed_steps.any?
27
24
  end
28
25
 
29
- # Prints undefined steps.
30
- #
31
26
  def report_undefined_steps
32
27
  report_errors('Undefined steps', undefined_steps, :yellow) if undefined_steps.any?
33
28
  end
34
29
 
30
+ def report_pending_steps
31
+ report_errors('Pending steps', pending_steps, :yellow) if pending_steps.any?
32
+ end
33
+
35
34
  def report_undefined_features
36
35
  if undefined_features.any?
37
36
  error.puts " Undefined features (#{undefined_features.length})".light_yellow
@@ -96,6 +95,9 @@ module Spinach
96
95
  summary = " #{feature.name} :: #{scenario.name} :: #{full_step step}"
97
96
  if exception.kind_of?(Spinach::StepNotDefinedException)
98
97
  summary.yellow
98
+ elsif exception.kind_of?(Spinach::StepPendingException)
99
+ summary += "\n Reason: '#{exception.reason}'\n"
100
+ summary.yellow
99
101
  else
100
102
  summary.red
101
103
  end
@@ -123,6 +125,9 @@ module Spinach
123
125
  output << " #{line}\n".yellow
124
126
  end
125
127
  output << "\n"
128
+ elsif exception.kind_of?(Spinach::StepPendingException)
129
+ output << " Reason: '#{exception.reason}'".yellow
130
+ output << "\n"
126
131
  else
127
132
  if options[:backtrace]
128
133
  output += "\n"
@@ -152,6 +157,8 @@ module Spinach
152
157
 
153
158
  if exception.kind_of?(Spinach::StepNotDefinedException)
154
159
  output.yellow
160
+ elsif exception.kind_of?(Spinach::StepPendingException)
161
+ output.yellow
155
162
  else
156
163
  output.red
157
164
  end
@@ -80,6 +80,10 @@ module Spinach
80
80
  rescue Spinach::StepNotDefinedException => e
81
81
  @exception = e
82
82
  Spinach.hooks.run_on_undefined_step step, @exception, step_definitions
83
+ rescue Spinach::StepPendingException => e
84
+ e.step = step
85
+ @exception = e
86
+ Spinach.hooks.run_on_pending_step step, @exception
83
87
  rescue Exception => e
84
88
  @exception = e
85
89
  Spinach.hooks.run_on_error_step step, @exception, step_location, step_definitions
@@ -1,4 +1,4 @@
1
1
  module Spinach
2
2
  # Spinach version.
3
- VERSION = "0.5.0"
3
+ VERSION = "0.5.1"
4
4
  end
@@ -38,7 +38,7 @@ Feature: Cheezburger can I has
38
38
  it "generates an entire feature_steps class definition" do
39
39
  result = subject.generate
40
40
  result.must_match /Given 'I haz a sad' do/
41
- result.must_match /raise 'step not implemented'/
41
+ result.must_match /pending 'step not implemented'/
42
42
  end
43
43
  end
44
44
 
@@ -15,6 +15,10 @@ module Spinach::Generators
15
15
  it "generates a step" do
16
16
  subject.generate.must_match /Given.*I has a sad/
17
17
  end
18
+
19
+ it "generates a pending step" do
20
+ subject.generate.must_include "pending 'step not implemented'"
21
+ end
18
22
  end
19
23
 
20
24
  end
@@ -32,6 +32,7 @@ describe Spinach::Reporter::Stdout do
32
32
  @reporter.expects(:report_failed_steps).once
33
33
  @reporter.expects(:report_undefined_steps).once
34
34
  @reporter.expects(:report_undefined_features).once
35
+ @reporter.expects(:report_pending_steps).once
35
36
 
36
37
  @reporter.error_summary
37
38
 
@@ -107,6 +108,25 @@ describe Spinach::Reporter::Stdout do
107
108
  end
108
109
  end
109
110
 
111
+ describe '#report_pending_steps' do
112
+ describe 'when some steps have pending' do
113
+ it 'outputs the pending steps' do
114
+ steps = [anything]
115
+ @reporter.stubs(:pending_steps).returns(steps)
116
+ @reporter.expects(:report_errors).with('Pending steps', steps, :yellow)
117
+
118
+ @reporter.report_pending_steps
119
+ end
120
+ end
121
+
122
+ describe 'when there are no pending steps' do
123
+ it 'does nothing' do
124
+ @reporter.expects(:report_errors).never
125
+ @reporter.report_pending_steps
126
+ end
127
+ end
128
+ end
129
+
110
130
  describe '#report_undefined_features' do
111
131
  describe 'when some features are undefined' do
112
132
  it 'outputs the undefined features' do
@@ -133,13 +133,11 @@ describe Spinach::Reporter::Stdout do
133
133
 
134
134
  it 'sets the current scenario error' do
135
135
  @reporter.on_error_step(step, anything, step_location)
136
-
137
136
  @reporter.scenario_error.must_include step
138
137
  end
139
138
 
140
139
  it 'adds the step to the error steps' do
141
140
  @reporter.on_error_step(step, anything, step_location)
142
-
143
141
  @reporter.error_steps.last.must_include step
144
142
  end
145
143
  end
@@ -168,6 +166,28 @@ describe Spinach::Reporter::Stdout do
168
166
  end
169
167
  end
170
168
 
169
+ describe '#on_pending_step' do
170
+ let(:step) { stub(keyword: 'Given', name: 'I wrote a pending step') }
171
+
172
+ it 'adds the step to the output buffer' do
173
+ @reporter.on_pending_step(step, anything)
174
+
175
+ @out.string.must_include 'P'
176
+ @out.string.must_include 'Given'
177
+ @out.string.must_include 'I wrote a pending step'
178
+ end
179
+
180
+ it 'sets the current scenario error' do
181
+ @reporter.on_pending_step(step, anything)
182
+ @reporter.scenario_error.must_include step
183
+ end
184
+
185
+ it 'adds the step to the pending steps' do
186
+ @reporter.on_pending_step(step, anything)
187
+ @reporter.pending_steps.last.must_include step
188
+ end
189
+ end
190
+
171
191
  describe "#on_feature_not_found" do
172
192
  before do
173
193
  @feature = stub(name: 'This feature does not exist', scenarios: [], background_steps: [])
@@ -118,6 +118,25 @@ module Spinach
118
118
  end
119
119
  end
120
120
 
121
+ describe 'when the step is pending' do
122
+ before do
123
+ @step_definitions.
124
+ stubs(:execute).
125
+ with(@step).
126
+ raises Spinach::StepPendingException, @step
127
+ end
128
+
129
+ it 'sets the exception' do
130
+ subject.run_step(@step)
131
+ subject.instance_variable_get(:@exception).must_be_kind_of(Spinach::StepPendingException)
132
+ end
133
+
134
+ it 'runs the pending hooks' do
135
+ Spinach.hooks.expects(:run_on_pending_step).with(@step, kind_of(Spinach::StepPendingException))
136
+ subject.run_step(@step)
137
+ end
138
+ end
139
+
121
140
  describe 'when the step raises an error' do
122
141
  before do
123
142
  @step_definitions.stubs(:execute).with(@step).raises StandardError
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.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2012-05-24 00:00:00.000000000 Z
15
+ date: 2012-06-02 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin-ruby
19
- requirement: &2168662800 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ~>
@@ -24,10 +24,15 @@ dependencies:
24
24
  version: 0.2.0
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *2168662800
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.2.0
28
33
  - !ruby/object:Gem::Dependency
29
34
  name: colorize
30
- requirement: &2168662100 !ruby/object:Gem::Requirement
35
+ requirement: !ruby/object:Gem::Requirement
31
36
  none: false
32
37
  requirements:
33
38
  - - ! '>='
@@ -35,10 +40,15 @@ dependencies:
35
40
  version: '0'
36
41
  type: :runtime
37
42
  prerelease: false
38
- version_requirements: *2168662100
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
39
49
  - !ruby/object:Gem::Dependency
40
50
  name: rake
41
- requirement: &2168661120 !ruby/object:Gem::Requirement
51
+ requirement: !ruby/object:Gem::Requirement
42
52
  none: false
43
53
  requirements:
44
54
  - - ! '>='
@@ -46,10 +56,15 @@ dependencies:
46
56
  version: '0'
47
57
  type: :development
48
58
  prerelease: false
49
- version_requirements: *2168661120
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
50
65
  - !ruby/object:Gem::Dependency
51
66
  name: mocha
52
- requirement: &2168660500 !ruby/object:Gem::Requirement
67
+ requirement: !ruby/object:Gem::Requirement
53
68
  none: false
54
69
  requirements:
55
70
  - - ! '>='
@@ -57,10 +72,15 @@ dependencies:
57
72
  version: '0'
58
73
  type: :development
59
74
  prerelease: false
60
- version_requirements: *2168660500
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
61
81
  - !ruby/object:Gem::Dependency
62
82
  name: sinatra
63
- requirement: &2168687040 !ruby/object:Gem::Requirement
83
+ requirement: !ruby/object:Gem::Requirement
64
84
  none: false
65
85
  requirements:
66
86
  - - ! '>='
@@ -68,10 +88,15 @@ dependencies:
68
88
  version: '0'
69
89
  type: :development
70
90
  prerelease: false
71
- version_requirements: *2168687040
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
72
97
  - !ruby/object:Gem::Dependency
73
98
  name: capybara
74
- requirement: &2168686600 !ruby/object:Gem::Requirement
99
+ requirement: !ruby/object:Gem::Requirement
75
100
  none: false
76
101
  requirements:
77
102
  - - ! '>='
@@ -79,10 +104,15 @@ dependencies:
79
104
  version: '0'
80
105
  type: :development
81
106
  prerelease: false
82
- version_requirements: *2168686600
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
83
113
  - !ruby/object:Gem::Dependency
84
114
  name: pry
85
- requirement: &2168686180 !ruby/object:Gem::Requirement
115
+ requirement: !ruby/object:Gem::Requirement
86
116
  none: false
87
117
  requirements:
88
118
  - - ! '>='
@@ -90,10 +120,15 @@ dependencies:
90
120
  version: '0'
91
121
  type: :development
92
122
  prerelease: false
93
- version_requirements: *2168686180
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
94
129
  - !ruby/object:Gem::Dependency
95
130
  name: simplecov
96
- requirement: &2168685760 !ruby/object:Gem::Requirement
131
+ requirement: !ruby/object:Gem::Requirement
97
132
  none: false
98
133
  requirements:
99
134
  - - ! '>='
@@ -101,10 +136,15 @@ dependencies:
101
136
  version: '0'
102
137
  type: :development
103
138
  prerelease: false
104
- version_requirements: *2168685760
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
105
145
  - !ruby/object:Gem::Dependency
106
146
  name: rspec
107
- requirement: &2168685340 !ruby/object:Gem::Requirement
147
+ requirement: !ruby/object:Gem::Requirement
108
148
  none: false
109
149
  requirements:
110
150
  - - ! '>='
@@ -112,10 +152,15 @@ dependencies:
112
152
  version: '0'
113
153
  type: :development
114
154
  prerelease: false
115
- version_requirements: *2168685340
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
116
161
  - !ruby/object:Gem::Dependency
117
162
  name: minitest
118
- requirement: &2168684920 !ruby/object:Gem::Requirement
163
+ requirement: !ruby/object:Gem::Requirement
119
164
  none: false
120
165
  requirements:
121
166
  - - ! '>='
@@ -123,10 +168,15 @@ dependencies:
123
168
  version: '0'
124
169
  type: :development
125
170
  prerelease: false
126
- version_requirements: *2168684920
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
127
177
  - !ruby/object:Gem::Dependency
128
178
  name: turn
129
- requirement: &2168684500 !ruby/object:Gem::Requirement
179
+ requirement: !ruby/object:Gem::Requirement
130
180
  none: false
131
181
  requirements:
132
182
  - - ! '>='
@@ -134,7 +184,12 @@ dependencies:
134
184
  version: '0'
135
185
  type: :development
136
186
  prerelease: false
137
- version_requirements: *2168684500
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
138
193
  description: Spinach is a BDD framework on top of gherkin
139
194
  email:
140
195
  - info@codegram.com
@@ -162,6 +217,7 @@ files:
162
217
  - features/feature_name_guessing.feature
163
218
  - features/reporting/display_run_summary.feature
164
219
  - features/reporting/error_reporting.feature
220
+ - features/reporting/pending_feature_reporting.feature
165
221
  - features/reporting/show_step_source_location.feature
166
222
  - features/reporting/undefined_feature_reporting.feature
167
223
  - features/rspec_compatibility.feature
@@ -171,6 +227,7 @@ files:
171
227
  - features/steps/feature_name_guessing.rb
172
228
  - features/steps/reporting/display_run_summary.rb
173
229
  - features/steps/reporting/error_reporting.rb
230
+ - features/steps/reporting/pending_feature_reporting.rb
174
231
  - features/steps/reporting/show_step_source_location.rb
175
232
  - features/steps/reporting/undefined_feature_reporting.rb
176
233
  - features/steps/rspec_compatibility.rb
@@ -249,21 +306,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
249
306
  - - ! '>='
250
307
  - !ruby/object:Gem::Version
251
308
  version: '0'
252
- segments:
253
- - 0
254
- hash: 2039979269723833359
255
309
  required_rubygems_version: !ruby/object:Gem::Requirement
256
310
  none: false
257
311
  requirements:
258
312
  - - ! '>='
259
313
  - !ruby/object:Gem::Version
260
314
  version: '0'
261
- segments:
262
- - 0
263
- hash: 2039979269723833359
264
315
  requirements: []
265
316
  rubyforge_project:
266
- rubygems_version: 1.8.15
317
+ rubygems_version: 1.8.21
267
318
  signing_key:
268
319
  specification_version: 3
269
320
  summary: Spinach is a BDD framework on top of gherkin
@@ -274,6 +325,7 @@ test_files:
274
325
  - features/feature_name_guessing.feature
275
326
  - features/reporting/display_run_summary.feature
276
327
  - features/reporting/error_reporting.feature
328
+ - features/reporting/pending_feature_reporting.feature
277
329
  - features/reporting/show_step_source_location.feature
278
330
  - features/reporting/undefined_feature_reporting.feature
279
331
  - features/rspec_compatibility.feature
@@ -283,6 +335,7 @@ test_files:
283
335
  - features/steps/feature_name_guessing.rb
284
336
  - features/steps/reporting/display_run_summary.rb
285
337
  - features/steps/reporting/error_reporting.rb
338
+ - features/steps/reporting/pending_feature_reporting.rb
286
339
  - features/steps/reporting/show_step_source_location.rb
287
340
  - features/steps/reporting/undefined_feature_reporting.rb
288
341
  - features/steps/rspec_compatibility.rb