spinach 0.1.2.1 → 0.1.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.
- data/features/reporting/display_run_summary.feature +9 -0
- data/features/steps/reporting/display_run_summary.rb +62 -0
- data/features/support/spinach_runner.rb +2 -2
- data/lib/spinach/dsl.rb +0 -2
- data/lib/spinach/reporter.rb +2 -1
- data/lib/spinach/reporter/stdout.rb +16 -0
- data/lib/spinach/runner/feature.rb +1 -11
- data/lib/spinach/runner/scenario.rb +9 -2
- data/lib/spinach/version.rb +1 -1
- data/test/spinach/capybara_test.rb +2 -1
- data/test/spinach/reporter/stdout_test.rb +10 -6
- data/test/spinach/runner/feature_test.rb +2 -14
- data/test/spinach/runner/scenario_test.rb +15 -1
- metadata +33 -29
@@ -0,0 +1,9 @@
|
|
1
|
+
Feature: Display run summary
|
2
|
+
As a developer
|
3
|
+
I want spinach to display a summary of steps statuses
|
4
|
+
So I can easyly know general features status
|
5
|
+
|
6
|
+
Scenario: Display run summary at the end of features run
|
7
|
+
Given I have a feature that has some successful, undefined, failed and error steps
|
8
|
+
When I run it
|
9
|
+
Then I should see a summary with steps status information
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'aruba/api'
|
2
|
+
|
3
|
+
Feature "Display run summary" do
|
4
|
+
include Integration::SpinachRunner
|
5
|
+
|
6
|
+
Given "I have a feature that has some successful, undefined, failed and error steps" do
|
7
|
+
write_file('features/test_feature.feature',
|
8
|
+
'Feature: A test feature
|
9
|
+
|
10
|
+
Scenario: Undefined scenario
|
11
|
+
Given I am a fool
|
12
|
+
When I jump from Codegrams roof
|
13
|
+
Then I must be pwned by floor
|
14
|
+
|
15
|
+
# Scenario: Failed scenario
|
16
|
+
# Given I love risk
|
17
|
+
# When I jump from Codegrams roof
|
18
|
+
# Then my parachute must open
|
19
|
+
# Then I must not pwned by floor
|
20
|
+
|
21
|
+
# Scenario: Error scenario
|
22
|
+
# Given I am not a fool
|
23
|
+
# When I go downstairs
|
24
|
+
# Then I must succeed
|
25
|
+
')
|
26
|
+
write_file('features/steps/test_feature.rb',
|
27
|
+
'Feature "A test feature" do
|
28
|
+
Given "I am a fool" do
|
29
|
+
end
|
30
|
+
When "I jump from Codegrams roof" do
|
31
|
+
end
|
32
|
+
# Given "I love risk" do
|
33
|
+
# end
|
34
|
+
# And "my parachute must open" do
|
35
|
+
# false
|
36
|
+
# end
|
37
|
+
# Given I am a fool
|
38
|
+
# djkadlaksaldkajd
|
39
|
+
# end
|
40
|
+
# Given I am not a fool
|
41
|
+
# end
|
42
|
+
# When I go downstairs
|
43
|
+
# end
|
44
|
+
# Then I must succeed
|
45
|
+
# true
|
46
|
+
# end
|
47
|
+
end')
|
48
|
+
@feature = "features/test_feature.feature"
|
49
|
+
end
|
50
|
+
|
51
|
+
When "I run it" do
|
52
|
+
run_feature @feature
|
53
|
+
end
|
54
|
+
|
55
|
+
Then "I should see a summary with steps status information" do
|
56
|
+
all_stdout.must_match(
|
57
|
+
/Summary:.*2.*Successful.*1.*Undefined.*0.*Failed.*0.*Error/
|
58
|
+
)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
data/lib/spinach/dsl.rb
CHANGED
data/lib/spinach/reporter.rb
CHANGED
@@ -11,6 +11,7 @@ module Spinach
|
|
11
11
|
@errors = []
|
12
12
|
@options = options
|
13
13
|
@undefined_features = []
|
14
|
+
@successful_steps = []
|
14
15
|
@undefined_steps = []
|
15
16
|
@failed_steps = []
|
16
17
|
@error_steps = []
|
@@ -22,7 +23,7 @@ module Spinach
|
|
22
23
|
|
23
24
|
attr_accessor :current_feature, :current_scenario
|
24
25
|
|
25
|
-
attr_reader :undefined_steps, :failed_steps, :error_steps, :undefined_features
|
26
|
+
attr_reader :undefined_steps, :failed_steps, :error_steps, :undefined_features, :successful_steps
|
26
27
|
|
27
28
|
def bind
|
28
29
|
runner.after_run method(:after_run)
|
@@ -11,6 +11,7 @@ module Spinach
|
|
11
11
|
|
12
12
|
# The last scenario error
|
13
13
|
attr_accessor :scenario_error
|
14
|
+
attr_accessor :scenario
|
14
15
|
|
15
16
|
# Initialitzes the runner
|
16
17
|
#
|
@@ -65,6 +66,8 @@ module Spinach
|
|
65
66
|
#
|
66
67
|
def on_successful_step(step, step_location)
|
67
68
|
output_step('✔', step, :green, step_location)
|
69
|
+
self.scenario = [current_feature, current_scenario, step]
|
70
|
+
successful_steps << scenario
|
68
71
|
end
|
69
72
|
|
70
73
|
# Adds a failing step to the output buffer.
|
@@ -167,12 +170,25 @@ module Spinach
|
|
167
170
|
end
|
168
171
|
|
169
172
|
# It prints the error summary if the run has failed
|
173
|
+
# It always print feature success summary
|
170
174
|
#
|
171
175
|
# @param [True,False] success
|
172
176
|
# whether the run has succeed or not
|
173
177
|
#
|
174
178
|
def after_run(success)
|
175
179
|
error_summary unless success
|
180
|
+
out.puts ""
|
181
|
+
run_summary
|
182
|
+
end
|
183
|
+
|
184
|
+
# Prints the feature success summaryfor ths run.
|
185
|
+
#
|
186
|
+
def run_summary
|
187
|
+
successful_summary = "(".colorize(:green)+successful_steps.length.to_s.colorize(:light_green)+") Successful".colorize(:green)
|
188
|
+
undefined_summary = "(".colorize(:yellow)+undefined_steps.length.to_s.colorize(:light_yellow)+") Undefined".colorize(:yellow)
|
189
|
+
failed_summary = "(".colorize(:red)+failed_steps.length.to_s.colorize(:light_red)+") Failed".colorize(:red)
|
190
|
+
error_summary = "(".colorize(:red)+error_steps.length.to_s.colorize(:light_red)+") Error".colorize(:red)
|
191
|
+
out.puts "Steps Summary: #{successful_summary}, #{undefined_summary}, #{failed_summary}, #{error_summary}\n\n"
|
176
192
|
end
|
177
193
|
|
178
194
|
# Prints the errors for ths run.
|
@@ -31,14 +31,6 @@ module Spinach
|
|
31
31
|
#
|
32
32
|
attr_reader :filename
|
33
33
|
|
34
|
-
# @return [Feature]
|
35
|
-
# The feature object used to run this scenario.
|
36
|
-
#
|
37
|
-
# @api public
|
38
|
-
def feature
|
39
|
-
@feature ||= Spinach.find_feature(feature_name).new
|
40
|
-
end
|
41
|
-
|
42
34
|
# @return [Hash]
|
43
35
|
# The parsed data for this feature.
|
44
36
|
#
|
@@ -71,15 +63,13 @@ module Spinach
|
|
71
63
|
# @api public
|
72
64
|
def run
|
73
65
|
run_hook :before_run, data
|
74
|
-
feature.run_hook :before, data
|
75
66
|
|
76
67
|
scenarios.each do |scenario|
|
77
68
|
if !@scenario_line || scenario['line'].to_s == @scenario_line
|
78
|
-
@success = Scenario.new(feature_name,
|
69
|
+
@success = Scenario.new(feature_name, scenario).run
|
79
70
|
end
|
80
71
|
end
|
81
72
|
|
82
|
-
feature.run_hook :after, data
|
83
73
|
run_hook :after_run, data
|
84
74
|
|
85
75
|
rescue Spinach::FeatureStepsNotFoundException => e
|
@@ -24,16 +24,23 @@ module Spinach
|
|
24
24
|
# The parsed feature data.
|
25
25
|
#
|
26
26
|
# @api public
|
27
|
-
def initialize(feature_name,
|
27
|
+
def initialize(feature_name, data)
|
28
28
|
@feature_name = feature_name
|
29
29
|
@data = data
|
30
|
-
@feature = feature
|
31
30
|
end
|
32
31
|
|
33
32
|
def steps
|
34
33
|
@steps ||= data['steps']
|
35
34
|
end
|
36
35
|
|
36
|
+
# @return [Feature]
|
37
|
+
# The feature object used to run this scenario.
|
38
|
+
#
|
39
|
+
# @api public
|
40
|
+
def feature
|
41
|
+
@feature ||= Spinach.find_feature(feature_name).new
|
42
|
+
end
|
43
|
+
|
37
44
|
# Runs this scenario
|
38
45
|
# @return [True, False]
|
39
46
|
# true if this scenario succeeded, false if not
|
data/lib/spinach/version.rb
CHANGED
@@ -48,7 +48,8 @@ describe Spinach::FeatureSteps::Capybara do
|
|
48
48
|
Then Goodbye
|
49
49
|
').at_least_once
|
50
50
|
|
51
|
-
|
51
|
+
Spinach::Runner::Scenario.any_instance.stubs(feature: @feature)
|
52
|
+
|
52
53
|
Capybara.current_session.expects(:reset!).twice
|
53
54
|
|
54
55
|
@feature_runner.run
|
@@ -207,16 +207,20 @@ describe Spinach::Reporter::Stdout do
|
|
207
207
|
|
208
208
|
describe '#after_run' do
|
209
209
|
describe 'when the run has succeed' do
|
210
|
-
it '
|
211
|
-
@reporter.
|
210
|
+
it 'display run summary' do
|
211
|
+
@reporter.expects(:error_summary).never
|
212
|
+
@reporter.expects(:run_summary)
|
213
|
+
|
214
|
+
@reporter.after_run(true)
|
212
215
|
end
|
213
216
|
end
|
214
217
|
|
215
|
-
describe 'when the run has
|
216
|
-
it '
|
217
|
-
@reporter.
|
218
|
+
describe 'when the run has failed' do
|
219
|
+
it 'display run and error summaries' do
|
220
|
+
@reporter.expects(:error_summary)
|
221
|
+
@reporter.expects(:run_summary)
|
218
222
|
|
219
|
-
@reporter.after_run(false)
|
223
|
+
@reporter.after_run(false)
|
220
224
|
end
|
221
225
|
end
|
222
226
|
end
|
@@ -17,16 +17,6 @@ describe Spinach::Runner::Feature do
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
describe '#feature' do
|
21
|
-
it 'finds the feature given a feature name' do
|
22
|
-
@feature = stub_everything
|
23
|
-
feature.stubs(feature_name: 'A cool feature')
|
24
|
-
|
25
|
-
Spinach.expects(:find_feature).with('A cool feature').returns(@feature)
|
26
|
-
feature.feature
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
20
|
describe '#data' do
|
31
21
|
it 'returns the parsed data' do
|
32
22
|
parsed_data = {name: 'A cool feature'}
|
@@ -56,14 +46,12 @@ describe Spinach::Runner::Feature do
|
|
56
46
|
|
57
47
|
it 'calls the steps as expected' do
|
58
48
|
seq = sequence('feature')
|
59
|
-
feature.feature.expects(:run_hook).with(:before, kind_of(Hash))
|
60
49
|
3.times do
|
61
50
|
Spinach::Runner::Scenario.
|
62
51
|
expects(:new).
|
63
52
|
returns(stub_everything).
|
64
53
|
in_sequence(seq)
|
65
54
|
end
|
66
|
-
feature.feature.expects(:run_hook).with(:after, kind_of(Hash))
|
67
55
|
feature.run
|
68
56
|
end
|
69
57
|
|
@@ -90,7 +78,7 @@ describe Spinach::Runner::Feature do
|
|
90
78
|
})
|
91
79
|
@feature.stubs(feature: stub_everything)
|
92
80
|
|
93
|
-
Spinach::Runner::Scenario.expects(:new).with(anything,
|
81
|
+
Spinach::Runner::Scenario.expects(:new).with(anything, @feature.scenarios[1], anything).once.returns(stub_everything)
|
94
82
|
@feature.run
|
95
83
|
end
|
96
84
|
|
@@ -98,7 +86,7 @@ describe Spinach::Runner::Feature do
|
|
98
86
|
feature = Spinach::Runner::Feature.new(filename)
|
99
87
|
data = mock
|
100
88
|
exception = Spinach::FeatureStepsNotFoundException.new([anything, anything])
|
101
|
-
feature.stubs(:
|
89
|
+
feature.stubs(:scenarios).raises(exception)
|
102
90
|
feature.stubs(:data).returns(data)
|
103
91
|
not_found_called = false
|
104
92
|
feature.class.when_not_found do |data, exception|
|
@@ -14,7 +14,11 @@ describe Spinach::Runner::Scenario do
|
|
14
14
|
|
15
15
|
let(:feature) { stub_everything }
|
16
16
|
let(:feature_name) { 'My feature' }
|
17
|
-
let(:scenario) {
|
17
|
+
let(:scenario) {
|
18
|
+
scenario = Spinach::Runner::Scenario.new(feature_name, data)
|
19
|
+
scenario.stubs(feature: feature)
|
20
|
+
scenario
|
21
|
+
}
|
18
22
|
|
19
23
|
describe '#initialize' do
|
20
24
|
it 'lists all the steps' do
|
@@ -26,6 +30,16 @@ describe Spinach::Runner::Scenario do
|
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
33
|
+
describe '#feature' do
|
34
|
+
it 'finds the feature given a feature name' do
|
35
|
+
scenario.unstub(:feature)
|
36
|
+
@feature = stub_everything
|
37
|
+
scenario.stubs(feature_name: 'A cool feature')
|
38
|
+
Spinach.expects(:find_feature).with('A cool feature').returns(@feature)
|
39
|
+
scenario.feature
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
29
43
|
describe '#run' do
|
30
44
|
it 'calls the appropiate feature steps' do
|
31
45
|
feature.expects(:execute_step).with('I herd you like steps')
|
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.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -16,7 +16,7 @@ date: 2011-10-10 00:00:00.000000000Z
|
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: gherkin
|
19
|
-
requirement: &
|
19
|
+
requirement: &2158625180 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: '0'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *2158625180
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: minitest
|
30
|
-
requirement: &
|
30
|
+
requirement: &2158624760 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: '0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *2158624760
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: colorize
|
41
|
-
requirement: &
|
41
|
+
requirement: &2158624340 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ! '>='
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: '0'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *2158624340
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: hooks
|
52
|
-
requirement: &
|
52
|
+
requirement: &2158623920 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: '0'
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *2158623920
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: purdytest
|
63
|
-
requirement: &
|
63
|
+
requirement: &2158623500 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ! '>='
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: '0'
|
69
69
|
type: :development
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *2158623500
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: rake
|
74
|
-
requirement: &
|
74
|
+
requirement: &2158623080 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
version: '0'
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
|
-
version_requirements: *
|
82
|
+
version_requirements: *2158623080
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: mocha
|
85
|
-
requirement: &
|
85
|
+
requirement: &2158622660 !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - ! '>='
|
@@ -90,10 +90,10 @@ dependencies:
|
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
|
-
version_requirements: *
|
93
|
+
version_requirements: *2158622660
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: sinatra
|
96
|
-
requirement: &
|
96
|
+
requirement: &2158622240 !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
@@ -101,10 +101,10 @@ dependencies:
|
|
101
101
|
version: '0'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
|
-
version_requirements: *
|
104
|
+
version_requirements: *2158622240
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
106
|
name: capybara
|
107
|
-
requirement: &
|
107
|
+
requirement: &2158621820 !ruby/object:Gem::Requirement
|
108
108
|
none: false
|
109
109
|
requirements:
|
110
110
|
- - ! '>='
|
@@ -112,10 +112,10 @@ dependencies:
|
|
112
112
|
version: '0'
|
113
113
|
type: :development
|
114
114
|
prerelease: false
|
115
|
-
version_requirements: *
|
115
|
+
version_requirements: *2158621820
|
116
116
|
- !ruby/object:Gem::Dependency
|
117
117
|
name: aruba
|
118
|
-
requirement: &
|
118
|
+
requirement: &2158621400 !ruby/object:Gem::Requirement
|
119
119
|
none: false
|
120
120
|
requirements:
|
121
121
|
- - ! '>='
|
@@ -123,10 +123,10 @@ dependencies:
|
|
123
123
|
version: '0'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
|
-
version_requirements: *
|
126
|
+
version_requirements: *2158621400
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: pry
|
129
|
-
requirement: &
|
129
|
+
requirement: &2158620960 !ruby/object:Gem::Requirement
|
130
130
|
none: false
|
131
131
|
requirements:
|
132
132
|
- - ! '>='
|
@@ -134,10 +134,10 @@ dependencies:
|
|
134
134
|
version: '0'
|
135
135
|
type: :development
|
136
136
|
prerelease: false
|
137
|
-
version_requirements: *
|
137
|
+
version_requirements: *2158620960
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
name: simplecov
|
140
|
-
requirement: &
|
140
|
+
requirement: &2158620540 !ruby/object:Gem::Requirement
|
141
141
|
none: false
|
142
142
|
requirements:
|
143
143
|
- - ! '>='
|
@@ -145,10 +145,10 @@ dependencies:
|
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
|
-
version_requirements: *
|
148
|
+
version_requirements: *2158620540
|
149
149
|
- !ruby/object:Gem::Dependency
|
150
150
|
name: rspec
|
151
|
-
requirement: &
|
151
|
+
requirement: &2158620120 !ruby/object:Gem::Requirement
|
152
152
|
none: false
|
153
153
|
requirements:
|
154
154
|
- - ! '>='
|
@@ -156,7 +156,7 @@ dependencies:
|
|
156
156
|
version: '0'
|
157
157
|
type: :development
|
158
158
|
prerelease: false
|
159
|
-
version_requirements: *
|
159
|
+
version_requirements: *2158620120
|
160
160
|
description: Spinach is a BDD framework on top of gherkin
|
161
161
|
email:
|
162
162
|
- info@codegram.com
|
@@ -179,12 +179,14 @@ files:
|
|
179
179
|
- bin/spinach
|
180
180
|
- features/exit_status.feature
|
181
181
|
- features/feature_name_guessing.feature
|
182
|
+
- features/reporting/display_run_summary.feature
|
182
183
|
- features/reporting/error_reporting.feature
|
183
184
|
- features/reporting/show_step_source_location.feature
|
184
185
|
- features/reporting/undefined_feature_reporting.feature
|
185
186
|
- features/rspec_compatibility.feature
|
186
187
|
- features/steps/exit_status.rb
|
187
188
|
- features/steps/feature_name_guessing.rb
|
189
|
+
- features/steps/reporting/display_run_summary.rb
|
188
190
|
- features/steps/reporting/error_reporting.rb
|
189
191
|
- features/steps/reporting/show_step_source_location.rb
|
190
192
|
- features/steps/reporting/undefined_feature_reporting.rb
|
@@ -241,7 +243,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
241
243
|
version: '0'
|
242
244
|
segments:
|
243
245
|
- 0
|
244
|
-
hash:
|
246
|
+
hash: 317238591053879963
|
245
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
248
|
none: false
|
247
249
|
requirements:
|
@@ -250,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
252
|
version: '0'
|
251
253
|
segments:
|
252
254
|
- 0
|
253
|
-
hash:
|
255
|
+
hash: 317238591053879963
|
254
256
|
requirements: []
|
255
257
|
rubyforge_project:
|
256
258
|
rubygems_version: 1.8.6
|
@@ -260,12 +262,14 @@ summary: Spinach is a BDD framework on top of gherkin
|
|
260
262
|
test_files:
|
261
263
|
- features/exit_status.feature
|
262
264
|
- features/feature_name_guessing.feature
|
265
|
+
- features/reporting/display_run_summary.feature
|
263
266
|
- features/reporting/error_reporting.feature
|
264
267
|
- features/reporting/show_step_source_location.feature
|
265
268
|
- features/reporting/undefined_feature_reporting.feature
|
266
269
|
- features/rspec_compatibility.feature
|
267
270
|
- features/steps/exit_status.rb
|
268
271
|
- features/steps/feature_name_guessing.rb
|
272
|
+
- features/steps/reporting/display_run_summary.rb
|
269
273
|
- features/steps/reporting/error_reporting.rb
|
270
274
|
- features/steps/reporting/show_step_source_location.rb
|
271
275
|
- features/steps/reporting/undefined_feature_reporting.rb
|