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.
- data/features/reporting/pending_feature_reporting.feature +10 -0
- data/features/steps/reporting/pending_feature_reporting.rb +41 -0
- data/lib/spinach/dsl.rb +16 -0
- data/lib/spinach/exceptions.rb +23 -2
- data/lib/spinach/generators/step_generator.rb +1 -1
- data/lib/spinach/hooks.rb +9 -0
- data/lib/spinach/reporter.rb +4 -1
- data/lib/spinach/reporter/stdout.rb +13 -1
- data/lib/spinach/reporter/stdout/error_reporting.rb +13 -6
- data/lib/spinach/runner/scenario_runner.rb +4 -0
- data/lib/spinach/version.rb +1 -1
- data/test/spinach/generators/feature_generator_test.rb +1 -1
- data/test/spinach/generators/step_generator_test.rb +4 -0
- data/test/spinach/reporter/stdout/error_reporting_test.rb +20 -0
- data/test/spinach/reporter/stdout_test.rb +22 -2
- data/test/spinach/runner/scenario_runner_test.rb +19 -0
- metadata +84 -31
@@ -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
|
data/lib/spinach/dsl.rb
CHANGED
@@ -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
|
data/lib/spinach/exceptions.rb
CHANGED
@@ -3,12 +3,12 @@ module Spinach
|
|
3
3
|
# for a {FeatureSteps}.
|
4
4
|
#
|
5
5
|
class StepNotDefinedException < StandardError
|
6
|
-
attr_reader :
|
6
|
+
attr_reader :step
|
7
7
|
|
8
8
|
# @param [Hash] step
|
9
9
|
# The missing step.
|
10
10
|
#
|
11
|
-
# @api
|
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 "
|
18
|
+
result.puts " pending 'step not implemented'"
|
19
19
|
result.puts "end"
|
20
20
|
result.string
|
21
21
|
end
|
data/lib/spinach/hooks.rb
CHANGED
@@ -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
|
#
|
data/lib/spinach/reporter.rb
CHANGED
@@ -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
|
data/lib/spinach/version.rb
CHANGED
@@ -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 /
|
41
|
+
result.must_match /pending 'step not implemented'/
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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
|