spinach 0.5.0 → 0.5.1

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.
@@ -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