cornucopia 0.1.33 → 0.1.34
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/cornucopia.gemspec +1 -1
- data/lib/cornucopia/cucumber_hooks.rb +42 -21
- data/lib/cornucopia/rspec_hooks.rb +1 -1
- data/lib/cornucopia/util/configuration.rb +5 -2
- data/lib/cornucopia/util/configured_report.rb +18 -1
- data/lib/cornucopia/version.rb +1 -1
- metadata +65 -51
- checksums.yaml +0 -7
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
data/cornucopia.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_dependency "activesupport"
|
26
26
|
|
27
27
|
spec.add_development_dependency "rails"
|
28
|
-
spec.add_development_dependency "mysql2"
|
28
|
+
# spec.add_development_dependency "mysql2"
|
29
29
|
spec.add_development_dependency "bundler"
|
30
30
|
spec.add_development_dependency "rake"
|
31
31
|
spec.add_development_dependency "rspec-rails"
|
@@ -2,12 +2,22 @@ require ::File.expand_path("../cornucopia", File.dirname(__FILE__))
|
|
2
2
|
load ::File.expand_path("capybara/install_finder_extensions.rb", File.dirname(__FILE__))
|
3
3
|
load ::File.expand_path("site_prism/install_element_extensions.rb", File.dirname(__FILE__))
|
4
4
|
|
5
|
+
require "singleton"
|
6
|
+
|
7
|
+
class CucumberHookStatus
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
attr_accessor :failed_scenario
|
11
|
+
end
|
12
|
+
|
5
13
|
if Cucumber::VERSION.split[0].to_i >= 2
|
6
14
|
After do |scenario, block|
|
7
15
|
time = Benchmark.measure do
|
8
16
|
puts "Cornucopia::Hook::page dump" if Cornucopia::Util::Configuration.benchmark
|
9
17
|
|
10
18
|
if scenario.failed?
|
19
|
+
CucumberHookStatus.instance.failed_scenario = scenario
|
20
|
+
|
11
21
|
report_name = "Page Dump for: #{Cornucopia::Util::TestHelper.instance.cucumber_name(scenario)}"
|
12
22
|
|
13
23
|
Cornucopia::Capybara::PageDiagnostics.dump_details(section_label: report_name)
|
@@ -17,9 +27,10 @@ if Cucumber::VERSION.split[0].to_i >= 2
|
|
17
27
|
puts "Cornucopia::Hook::page dump time: #{time}" if Cornucopia::Util::Configuration.benchmark
|
18
28
|
end
|
19
29
|
|
20
|
-
Around do |
|
30
|
+
Around do |scenario_proxy, block|
|
21
31
|
test_name = nil
|
22
32
|
|
33
|
+
scenario = scenario_proxy
|
23
34
|
time = Benchmark.measure do
|
24
35
|
puts "Cornucopia::Hook::before test" if Cornucopia::Util::Configuration.benchmark
|
25
36
|
|
@@ -38,35 +49,45 @@ if Cucumber::VERSION.split[0].to_i >= 2
|
|
38
49
|
puts "Cornucopia::Hook::before test time: #{time}" if Cornucopia::Util::Configuration.benchmark
|
39
50
|
|
40
51
|
Cornucopia::Util::ReportBuilder.current_report.within_test("Scenario - #{test_name}") do
|
52
|
+
CucumberHookStatus.instance.failed_scenario = nil
|
53
|
+
|
41
54
|
block.call
|
42
|
-
end
|
43
55
|
|
44
|
-
|
45
|
-
|
56
|
+
time = Benchmark.measure do
|
57
|
+
puts "Cornucopia::Hook::after test" if Cornucopia::Util::Configuration.benchmark
|
46
58
|
|
47
|
-
|
48
|
-
|
49
|
-
|
59
|
+
if scenario.failed? || CucumberHookStatus.instance.failed_scenario
|
60
|
+
seed_value = scenario.instance_variable_get(:@seed_value)
|
61
|
+
puts ("random seed for testing was: #{seed_value}")
|
50
62
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
63
|
+
if CucumberHookStatus.instance.failed_scenario && !scenario.failed?
|
64
|
+
# In 2.0, the scenario in the around block is actually a scenario_proxy. This means that it isn't the real
|
65
|
+
# scenario that failed. Therefore sometimes it doesn't have the real value of failed? or exception.
|
66
|
+
# For this reason, I capture the "real" scenario in the after hook if it fails and use it here.
|
67
|
+
scenario = CucumberHookStatus.instance.failed_scenario
|
68
|
+
scenario.instance_variable_set(:@seed_value, seed_value)
|
57
69
|
end
|
58
70
|
|
59
|
-
|
60
|
-
|
71
|
+
Cornucopia::Util::ReportBuilder.current_report.within_section("Test Error: #{test_name}") do |report|
|
72
|
+
configured_report = nil
|
73
|
+
if scenario.respond_to?(:feature)
|
74
|
+
configured_report = Cornucopia::Util::Configuration.report_configuration :cucumber
|
75
|
+
else
|
76
|
+
configured_report = Cornucopia::Util::Configuration.report_configuration :cucumber_outline
|
77
|
+
end
|
78
|
+
|
79
|
+
configured_report.add_report_objects scenario: scenario, cucumber: self
|
80
|
+
configured_report.generate_report(report)
|
81
|
+
end
|
82
|
+
else
|
83
|
+
Cornucopia::Util::ReportBuilder.current_report.test_succeeded
|
61
84
|
end
|
62
|
-
else
|
63
|
-
Cornucopia::Util::ReportBuilder.current_report.test_succeeded
|
64
|
-
end
|
65
85
|
|
66
|
-
|
67
|
-
|
86
|
+
Cornucopia::Capybara::FinderDiagnostics::FindAction.clear_diagnosed_finders
|
87
|
+
Cornucopia::Capybara::PageDiagnostics.clear_dumped_pages
|
68
88
|
|
69
|
-
|
89
|
+
Cornucopia::Util::TestHelper.instance.record_test_end(test_name)
|
90
|
+
end
|
70
91
|
end
|
71
92
|
|
72
93
|
puts "Cornucopia::Hook::after test time: #{time}" if Cornucopia::Util::Configuration.benchmark
|
@@ -28,7 +28,7 @@ module Cornucopia
|
|
28
28
|
within_section("Test Error: #{example.full_description}") do |report|
|
29
29
|
configured_report = Cornucopia::Util::Configuration.report_configuration :rspec
|
30
30
|
|
31
|
-
configured_report.add_report_objects example: example, rspec: RSpec
|
31
|
+
configured_report.add_report_objects example: example, rspec: RSpec, seeds: self
|
32
32
|
configured_report.generate_report(report)
|
33
33
|
end
|
34
34
|
end
|
@@ -47,6 +47,8 @@ module Cornucopia
|
|
47
47
|
more_info_fields: [
|
48
48
|
:example__exception__class__name,
|
49
49
|
:example,
|
50
|
+
:seeds__seed_value,
|
51
|
+
:seeds__context_seed_value,
|
50
52
|
:example__example_group_instance,
|
51
53
|
:example__metadata__caller,
|
52
54
|
{
|
@@ -103,12 +105,13 @@ module Cornucopia
|
|
103
105
|
more_info_fields: [
|
104
106
|
:scenario__exception__class__name,
|
105
107
|
:scenario,
|
106
|
-
:
|
108
|
+
:scenario__seed_value,
|
109
|
+
# :scenario__feature__comment,
|
107
110
|
:scenario__feature__keyword,
|
108
111
|
:scenario__feature__description,
|
109
112
|
:scenario__feature__gherkin_statement,
|
110
113
|
:scenario__feature__tags,
|
111
|
-
:scenario__current_visitor__configuration,
|
114
|
+
# :scenario__current_visitor__configuration,
|
112
115
|
:cucumber,
|
113
116
|
:logs,
|
114
117
|
:capybara_page_diagnostics
|
@@ -284,6 +284,21 @@ module Cornucopia
|
|
284
284
|
end
|
285
285
|
end
|
286
286
|
|
287
|
+
# For some reason, I've found some instance variables that are set but aren't in instance_variable_names
|
288
|
+
unless found_name
|
289
|
+
begin
|
290
|
+
if parent_object.instance_variable_defined?(variable_name)
|
291
|
+
found_name = variable_name.to_s
|
292
|
+
end
|
293
|
+
rescue
|
294
|
+
# the name might be invalid, so if it raises an exception here, ignore it.
|
295
|
+
end
|
296
|
+
|
297
|
+
if parent_object.instance_variable_defined?("@#{variable_name}".to_sym)
|
298
|
+
found_name = "@#{variable_name}"
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
287
302
|
found_name
|
288
303
|
end
|
289
304
|
|
@@ -297,7 +312,9 @@ module Cornucopia
|
|
297
312
|
else
|
298
313
|
if parent_object.respond_to?(export_field[:report_element][level]) &&
|
299
314
|
(!parent_object.methods.include?(export_field[:report_element][level]) ||
|
300
|
-
parent_object.method(export_field[:report_element][level]).parameters.empty?
|
315
|
+
parent_object.method(export_field[:report_element][level]).parameters.empty? ||
|
316
|
+
(parent_object.method(export_field[:report_element][level]).parameters.length == 1 &&
|
317
|
+
parent_object.method(export_field[:report_element][level]).parameters[0][0] == :rest))
|
301
318
|
report_object = parent_object.send(export_field[:report_element][level])
|
302
319
|
reported = true
|
303
320
|
elsif parent_object.respond_to?(:[])
|
data/lib/cornucopia/version.rb
CHANGED
metadata
CHANGED
@@ -1,223 +1,238 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cornucopia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.34
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- RealNobody
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-08-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: '0'
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '0'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rails
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mysql2
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '>='
|
43
|
+
- - ! '>='
|
53
44
|
- !ruby/object:Gem::Version
|
54
45
|
version: '0'
|
55
46
|
- !ruby/object:Gem::Dependency
|
56
47
|
name: bundler
|
57
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
58
50
|
requirements:
|
59
|
-
- - '>='
|
51
|
+
- - ! '>='
|
60
52
|
- !ruby/object:Gem::Version
|
61
53
|
version: '0'
|
62
54
|
type: :development
|
63
55
|
prerelease: false
|
64
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
65
58
|
requirements:
|
66
|
-
- - '>='
|
59
|
+
- - ! '>='
|
67
60
|
- !ruby/object:Gem::Version
|
68
61
|
version: '0'
|
69
62
|
- !ruby/object:Gem::Dependency
|
70
63
|
name: rake
|
71
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
72
66
|
requirements:
|
73
|
-
- - '>='
|
67
|
+
- - ! '>='
|
74
68
|
- !ruby/object:Gem::Version
|
75
69
|
version: '0'
|
76
70
|
type: :development
|
77
71
|
prerelease: false
|
78
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
79
74
|
requirements:
|
80
|
-
- - '>='
|
75
|
+
- - ! '>='
|
81
76
|
- !ruby/object:Gem::Version
|
82
77
|
version: '0'
|
83
78
|
- !ruby/object:Gem::Dependency
|
84
79
|
name: rspec-rails
|
85
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
86
82
|
requirements:
|
87
|
-
- - '>='
|
83
|
+
- - ! '>='
|
88
84
|
- !ruby/object:Gem::Version
|
89
85
|
version: '0'
|
90
86
|
type: :development
|
91
87
|
prerelease: false
|
92
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
93
90
|
requirements:
|
94
|
-
- - '>='
|
91
|
+
- - ! '>='
|
95
92
|
- !ruby/object:Gem::Version
|
96
93
|
version: '0'
|
97
94
|
- !ruby/object:Gem::Dependency
|
98
95
|
name: capybara
|
99
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
100
98
|
requirements:
|
101
|
-
- - '>='
|
99
|
+
- - ! '>='
|
102
100
|
- !ruby/object:Gem::Version
|
103
101
|
version: '0'
|
104
102
|
type: :development
|
105
103
|
prerelease: false
|
106
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
107
106
|
requirements:
|
108
|
-
- - '>='
|
107
|
+
- - ! '>='
|
109
108
|
- !ruby/object:Gem::Version
|
110
109
|
version: '0'
|
111
110
|
- !ruby/object:Gem::Dependency
|
112
111
|
name: cucumber
|
113
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
114
|
requirements:
|
115
|
-
- - '>='
|
115
|
+
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
121
122
|
requirements:
|
122
|
-
- - '>='
|
123
|
+
- - ! '>='
|
123
124
|
- !ruby/object:Gem::Version
|
124
125
|
version: '0'
|
125
126
|
- !ruby/object:Gem::Dependency
|
126
127
|
name: cucumber-rails
|
127
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
128
130
|
requirements:
|
129
|
-
- - '>='
|
131
|
+
- - ! '>='
|
130
132
|
- !ruby/object:Gem::Version
|
131
133
|
version: '0'
|
132
134
|
type: :development
|
133
135
|
prerelease: false
|
134
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
135
138
|
requirements:
|
136
|
-
- - '>='
|
139
|
+
- - ! '>='
|
137
140
|
- !ruby/object:Gem::Version
|
138
141
|
version: '0'
|
139
142
|
- !ruby/object:Gem::Dependency
|
140
143
|
name: faker
|
141
144
|
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
142
146
|
requirements:
|
143
|
-
- - '>='
|
147
|
+
- - ! '>='
|
144
148
|
- !ruby/object:Gem::Version
|
145
149
|
version: '0'
|
146
150
|
type: :development
|
147
151
|
prerelease: false
|
148
152
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
149
154
|
requirements:
|
150
|
-
- - '>='
|
155
|
+
- - ! '>='
|
151
156
|
- !ruby/object:Gem::Version
|
152
157
|
version: '0'
|
153
158
|
- !ruby/object:Gem::Dependency
|
154
159
|
name: site_prism
|
155
160
|
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
156
162
|
requirements:
|
157
|
-
- - '>='
|
163
|
+
- - ! '>='
|
158
164
|
- !ruby/object:Gem::Version
|
159
165
|
version: '0'
|
160
166
|
type: :development
|
161
167
|
prerelease: false
|
162
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
163
170
|
requirements:
|
164
|
-
- - '>='
|
171
|
+
- - ! '>='
|
165
172
|
- !ruby/object:Gem::Version
|
166
173
|
version: '0'
|
167
174
|
- !ruby/object:Gem::Dependency
|
168
175
|
name: selenium-webdriver
|
169
176
|
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
170
178
|
requirements:
|
171
|
-
- - '>='
|
179
|
+
- - ! '>='
|
172
180
|
- !ruby/object:Gem::Version
|
173
181
|
version: '0'
|
174
182
|
type: :development
|
175
183
|
prerelease: false
|
176
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
177
186
|
requirements:
|
178
|
-
- - '>='
|
187
|
+
- - ! '>='
|
179
188
|
- !ruby/object:Gem::Version
|
180
189
|
version: '0'
|
181
190
|
- !ruby/object:Gem::Dependency
|
182
191
|
name: simplecov
|
183
192
|
requirement: !ruby/object:Gem::Requirement
|
193
|
+
none: false
|
184
194
|
requirements:
|
185
|
-
- - '>='
|
195
|
+
- - ! '>='
|
186
196
|
- !ruby/object:Gem::Version
|
187
197
|
version: '0'
|
188
198
|
type: :development
|
189
199
|
prerelease: false
|
190
200
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
191
202
|
requirements:
|
192
|
-
- - '>='
|
203
|
+
- - ! '>='
|
193
204
|
- !ruby/object:Gem::Version
|
194
205
|
version: '0'
|
195
206
|
- !ruby/object:Gem::Dependency
|
196
207
|
name: launchy
|
197
208
|
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
198
210
|
requirements:
|
199
|
-
- - '>='
|
211
|
+
- - ! '>='
|
200
212
|
- !ruby/object:Gem::Version
|
201
213
|
version: '0'
|
202
214
|
type: :development
|
203
215
|
prerelease: false
|
204
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
205
218
|
requirements:
|
206
|
-
- - '>='
|
219
|
+
- - ! '>='
|
207
220
|
- !ruby/object:Gem::Version
|
208
221
|
version: '0'
|
209
222
|
- !ruby/object:Gem::Dependency
|
210
223
|
name: rack
|
211
224
|
requirement: !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
212
226
|
requirements:
|
213
|
-
- - '>='
|
227
|
+
- - ! '>='
|
214
228
|
- !ruby/object:Gem::Version
|
215
229
|
version: '0'
|
216
230
|
type: :development
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
none: false
|
219
234
|
requirements:
|
220
|
-
- - '>='
|
235
|
+
- - ! '>='
|
221
236
|
- !ruby/object:Gem::Version
|
222
237
|
version: '0'
|
223
238
|
description: A collection of tools I created to simplify and make it easier to see
|
@@ -229,8 +244,6 @@ extensions: []
|
|
229
244
|
extra_rdoc_files: []
|
230
245
|
files:
|
231
246
|
- .gitignore
|
232
|
-
- .ruby-gemset
|
233
|
-
- .ruby-version
|
234
247
|
- Gemfile
|
235
248
|
- LICENSE.TXT
|
236
249
|
- README.md
|
@@ -340,26 +353,27 @@ files:
|
|
340
353
|
homepage: https://github.com/RealNobody/cornucopia
|
341
354
|
licenses:
|
342
355
|
- MIT
|
343
|
-
metadata: {}
|
344
356
|
post_install_message:
|
345
357
|
rdoc_options: []
|
346
358
|
require_paths:
|
347
359
|
- lib
|
348
360
|
required_ruby_version: !ruby/object:Gem::Requirement
|
361
|
+
none: false
|
349
362
|
requirements:
|
350
|
-
- - '>='
|
363
|
+
- - ! '>='
|
351
364
|
- !ruby/object:Gem::Version
|
352
365
|
version: '0'
|
353
366
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
367
|
+
none: false
|
354
368
|
requirements:
|
355
|
-
- - '>='
|
369
|
+
- - ! '>='
|
356
370
|
- !ruby/object:Gem::Version
|
357
371
|
version: '0'
|
358
372
|
requirements: []
|
359
373
|
rubyforge_project:
|
360
|
-
rubygems_version:
|
374
|
+
rubygems_version: 1.8.23
|
361
375
|
signing_key:
|
362
|
-
specification_version:
|
376
|
+
specification_version: 3
|
363
377
|
summary: A collection of tools to simplify testing tasks.
|
364
378
|
test_files:
|
365
379
|
- spec/dummy/README.rdoc
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 86528ccc5d87da9371e94a93983b1457aa72b646
|
4
|
-
data.tar.gz: d45cb265ba31b645dd380ad5f5ee2b0948d7828d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 59f98d9ad75b0036e9ed3fde158fe01677e4ca326520eacee7afc416875b57267918b602dbdd9fc4879c3d89db224d7f8b56993c177b081879290eca1f75d05e
|
7
|
-
data.tar.gz: 63997a9782f0608bb4b000b887ad4acf0c05099840a925877b08d8e8b3c6c8a500db1bd60a283220e0909e93a5bce90f6ee5c321d87e45e15f0c4adde2c16334
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
cornucopia
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby-2.0.0
|