cucumber 10.2.0 → 11.1.0
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.
- checksums.yaml +4 -4
- data/README.md +17 -8
- data/VERSION +1 -1
- data/lib/cucumber/cli/configuration.rb +1 -1
- data/lib/cucumber/cli/main.rb +22 -0
- data/lib/cucumber/cli/options.rb +3 -18
- data/lib/cucumber/cli/profile_loader.rb +2 -2
- data/lib/cucumber/cli/rerun_file.rb +1 -1
- data/lib/cucumber/cli.rb +3 -0
- data/lib/cucumber/configuration.rb +33 -24
- data/lib/cucumber/events/base.rb +25 -0
- data/lib/cucumber/events/envelope.rb +29 -2
- data/lib/cucumber/events/gherkin_source_parsed.rb +12 -3
- data/lib/cucumber/events/gherkin_source_read.rb +11 -3
- data/lib/cucumber/events/hook_test_step_created.rb +12 -2
- data/lib/cucumber/events/step_activated.rb +13 -7
- data/lib/cucumber/events/step_definition_registered.rb +12 -4
- data/lib/cucumber/events/test_case_created.rb +11 -3
- data/lib/cucumber/events/test_case_finished.rb +12 -4
- data/lib/cucumber/events/test_case_ready.rb +10 -4
- data/lib/cucumber/events/test_case_started.rb +11 -2
- data/lib/cucumber/events/test_run_finished.rb +10 -3
- data/lib/cucumber/events/test_run_hook_finished.rb +19 -0
- data/lib/cucumber/events/test_run_hook_started.rb +20 -0
- data/lib/cucumber/events/test_run_started.rb +11 -2
- data/lib/cucumber/events/test_step_created.rb +12 -2
- data/lib/cucumber/events/test_step_finished.rb +12 -2
- data/lib/cucumber/events/test_step_started.rb +11 -2
- data/lib/cucumber/events/undefined_parameter_type.rb +11 -3
- data/lib/cucumber/events.rb +2 -0
- data/lib/cucumber/filters/fire_before_all_hooks.rb +36 -0
- data/lib/cucumber/filters/randomizer.rb +5 -5
- data/lib/cucumber/filters/reverser.rb +41 -0
- data/lib/cucumber/filters.rb +1 -12
- data/lib/cucumber/formatter/ansicolor.rb +3 -0
- data/lib/cucumber/formatter/console.rb +15 -7
- data/lib/cucumber/formatter/console_issues.rb +5 -5
- data/lib/cucumber/formatter/duration_extractor.rb +2 -0
- data/lib/cucumber/formatter/fail_fast.rb +3 -4
- data/lib/cucumber/formatter/global_hooks_summary.rb +36 -0
- data/lib/cucumber/formatter/html.rb +1 -3
- data/lib/cucumber/formatter/json.rb +5 -3
- data/lib/cucumber/formatter/junit.rb +5 -34
- data/lib/cucumber/formatter/message.rb +8 -4
- data/lib/cucumber/formatter/message_builder.rb +249 -143
- data/lib/cucumber/formatter/pretty.rb +2 -5
- data/lib/cucumber/formatter/progress.rb +1 -2
- data/lib/cucumber/formatter/rerun.rb +80 -30
- data/lib/cucumber/formatter/usage.rb +2 -3
- data/lib/cucumber/formatter.rb +3 -0
- data/lib/cucumber/glue/proto_world.rb +6 -4
- data/lib/cucumber/glue/registry_and_more.rb +122 -20
- data/lib/cucumber/glue.rb +3 -0
- data/lib/cucumber/multiline_argument/data_table.rb +0 -11
- data/lib/cucumber/platform.rb +2 -2
- data/lib/cucumber/query.rb +273 -0
- data/lib/cucumber/rake/forked_cucumber_runner.rb +57 -0
- data/lib/cucumber/rake/in_process_cucumber_runner.rb +27 -0
- data/lib/cucumber/rake/task.rb +36 -106
- data/lib/cucumber/rake.rb +3 -0
- data/lib/cucumber/repository.rb +136 -0
- data/lib/cucumber/rspec/disable_option_parser.rb +3 -3
- data/lib/cucumber/runtime/user_interface.rb +2 -2
- data/lib/cucumber/runtime.rb +29 -9
- data/lib/cucumber/step_match.rb +1 -1
- data/lib/cucumber.rb +2 -13
- metadata +33 -30
- data/lib/cucumber/formatter/errors.rb +0 -9
- data/lib/cucumber/formatter/query/hook_by_test_step.rb +0 -34
- data/lib/cucumber/formatter/query/pickle_by_test.rb +0 -28
- data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +0 -28
- data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +0 -42
- data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +0 -44
- data/lib/cucumber/formatter/query/test_run_started.rb +0 -17
- data/lib/cucumber/step_definition_light.rb +0 -29
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
require 'optparse'
|
|
4
4
|
|
|
5
|
-
module Spec
|
|
6
|
-
module Runner
|
|
5
|
+
module Spec
|
|
6
|
+
module Runner
|
|
7
7
|
# Neuters RSpec's option parser.
|
|
8
8
|
# (RSpec's option parser tries to parse ARGV, which
|
|
9
9
|
# will fail when running cucumber)
|
|
10
|
-
class OptionParser < ::OptionParser
|
|
10
|
+
class OptionParser < ::OptionParser
|
|
11
11
|
NEUTERED_RSPEC = Object.new
|
|
12
12
|
def NEUTERED_RSPEC.method_missing(_method, *_args) # rubocop:disable Style/MissingRespondToMissing
|
|
13
13
|
self || super
|
|
@@ -41,8 +41,8 @@ module Cucumber
|
|
|
41
41
|
# be a path to a file, or if it's an image it may also be a Base64 encoded image.
|
|
42
42
|
# The embedded data may or may not be ignored, depending on what kind of formatter(s) are active.
|
|
43
43
|
#
|
|
44
|
-
def attach(src, media_type, filename)
|
|
45
|
-
@visitor.attach(src, media_type, filename)
|
|
44
|
+
def attach(src, media_type, filename, streamed_file)
|
|
45
|
+
@visitor.attach(src, media_type, filename, streamed_file)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
private
|
data/lib/cucumber/runtime.rb
CHANGED
|
@@ -72,15 +72,13 @@ module Cucumber
|
|
|
72
72
|
|
|
73
73
|
load_step_definitions
|
|
74
74
|
fire_install_plugin_hook
|
|
75
|
-
fire_before_all_hook unless dry_run?
|
|
76
75
|
# TODO: can we remove this state?
|
|
77
76
|
self.visitor = report
|
|
78
77
|
|
|
79
78
|
receiver = Test::Runner.new(@configuration.event_bus)
|
|
80
79
|
compile features, receiver, filters, @configuration.event_bus
|
|
81
|
-
@configuration.notify :test_run_finished, !failure?
|
|
82
|
-
|
|
83
80
|
fire_after_all_hook unless dry_run?
|
|
81
|
+
@configuration.notify :test_run_finished, !failure?
|
|
84
82
|
end
|
|
85
83
|
|
|
86
84
|
def features_paths
|
|
@@ -113,7 +111,7 @@ module Cucumber
|
|
|
113
111
|
if @configuration.wip?
|
|
114
112
|
summary_report.test_cases.total_passed.positive?
|
|
115
113
|
else
|
|
116
|
-
!summary_report.ok?(strict: @configuration.strict)
|
|
114
|
+
!summary_report.ok?(strict: @configuration.strict) || !global_hooks_summary_report.ok?
|
|
117
115
|
end
|
|
118
116
|
end
|
|
119
117
|
|
|
@@ -123,10 +121,6 @@ module Cucumber
|
|
|
123
121
|
@support_code.fire_hook(:install_plugin, @configuration, registry_wrapper)
|
|
124
122
|
end
|
|
125
123
|
|
|
126
|
-
def fire_before_all_hook # :nodoc:
|
|
127
|
-
@support_code.fire_hook(:before_all)
|
|
128
|
-
end
|
|
129
|
-
|
|
130
124
|
def fire_after_all_hook # :nodoc:
|
|
131
125
|
@support_code.fire_hook(:after_all)
|
|
132
126
|
end
|
|
@@ -136,6 +130,22 @@ module Cucumber
|
|
|
136
130
|
@features ||= feature_files.map do |path|
|
|
137
131
|
source = NormalisedEncodingFile.read(path)
|
|
138
132
|
@configuration.notify :gherkin_source_read, path, source
|
|
133
|
+
|
|
134
|
+
# TODO: When core is v17+ switch the below code out to the following
|
|
135
|
+
# Cucumber::Core::Gherkin::Document.new(path, source).tap do |document|
|
|
136
|
+
# @configuration.notify(:envelope, document.to_envelope)
|
|
137
|
+
# end
|
|
138
|
+
to_envelope =
|
|
139
|
+
Cucumber::Messages::Envelope.new(
|
|
140
|
+
source: Cucumber::Messages::Source.new(
|
|
141
|
+
uri: path,
|
|
142
|
+
data: source,
|
|
143
|
+
media_type: 'text/x.cucumber.gherkin+plain'
|
|
144
|
+
)
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
@configuration.notify(:envelope, to_envelope)
|
|
148
|
+
|
|
139
149
|
Cucumber::Core::Gherkin::Document.new(path, source)
|
|
140
150
|
end
|
|
141
151
|
end
|
|
@@ -191,16 +201,24 @@ module Cucumber
|
|
|
191
201
|
def report
|
|
192
202
|
return @report if @report
|
|
193
203
|
|
|
194
|
-
reports = [summary_report] + formatters
|
|
204
|
+
reports = [message_builder, summary_report, global_hooks_summary_report] + formatters
|
|
195
205
|
reports << fail_fast_report if @configuration.fail_fast?
|
|
196
206
|
reports << publish_banner_printer unless @configuration.publish_quiet?
|
|
197
207
|
@report ||= Formatter::Fanout.new(reports)
|
|
198
208
|
end
|
|
199
209
|
|
|
210
|
+
def message_builder
|
|
211
|
+
@message_builder ||= Formatter::MessageBuilder.new(@configuration)
|
|
212
|
+
end
|
|
213
|
+
|
|
200
214
|
def summary_report
|
|
201
215
|
@summary_report ||= Core::Report::Summary.new(@configuration.event_bus)
|
|
202
216
|
end
|
|
203
217
|
|
|
218
|
+
def global_hooks_summary_report
|
|
219
|
+
@global_hooks_summary_report ||= Formatter::GlobalHooksSummary.new(@configuration)
|
|
220
|
+
end
|
|
221
|
+
|
|
204
222
|
def fail_fast_report
|
|
205
223
|
@fail_fast_report ||= Formatter::FailFast.new(@configuration)
|
|
206
224
|
end
|
|
@@ -244,6 +262,7 @@ module Cucumber
|
|
|
244
262
|
filters << Cucumber::Core::Test::NameFilter.new(name_regexps)
|
|
245
263
|
filters << Cucumber::Core::Test::LocationsFilter.new(filespecs.locations)
|
|
246
264
|
filters << Filters::Randomizer.new(@configuration.seed) if @configuration.randomize?
|
|
265
|
+
filters << Filters::Reverser.new if @configuration.reverse_order?
|
|
247
266
|
# TODO: can we just use Glue::RegistryAndMore's step definitions directly?
|
|
248
267
|
step_match_search = StepMatchSearch.new(@support_code.registry.method(:step_matches), @configuration)
|
|
249
268
|
filters << Filters::ActivateSteps.new(step_match_search, @configuration)
|
|
@@ -255,6 +274,7 @@ module Cucumber
|
|
|
255
274
|
filters << Filters::ApplyAfterHooks.new(@support_code)
|
|
256
275
|
filters << Filters::ApplyAroundHooks.new(@support_code)
|
|
257
276
|
filters << Filters::BroadcastTestRunStartedEvent.new(@configuration)
|
|
277
|
+
filters << Filters::FireBeforeAllHooks.new(@support_code)
|
|
258
278
|
filters << Filters::Quit.new
|
|
259
279
|
end
|
|
260
280
|
|
data/lib/cucumber/step_match.rb
CHANGED
data/lib/cucumber.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'yaml'
|
|
4
4
|
require 'cucumber/encoding'
|
|
5
5
|
require 'cucumber/platform'
|
|
6
|
+
require 'cucumber/formatter'
|
|
6
7
|
require 'cucumber/runtime'
|
|
7
8
|
require 'cucumber/cli/main'
|
|
8
9
|
require 'cucumber/step_definitions'
|
|
@@ -11,7 +12,6 @@ require 'cucumber/term/ansicolor'
|
|
|
11
12
|
module Cucumber
|
|
12
13
|
class << self
|
|
13
14
|
attr_accessor :wants_to_quit
|
|
14
|
-
attr_reader :use_legacy_autoloader
|
|
15
15
|
|
|
16
16
|
def deprecate(message, method, remove_after_version)
|
|
17
17
|
Kernel.warn(
|
|
@@ -24,22 +24,11 @@ module Cucumber
|
|
|
24
24
|
def logger
|
|
25
25
|
return @log if @log
|
|
26
26
|
|
|
27
|
-
@log = Logger.new($stdout)
|
|
28
|
-
@log.level = Logger::INFO
|
|
29
|
-
@log
|
|
27
|
+
@log = Logger.new($stdout).tap { |log| log.level = Logger::INFO }
|
|
30
28
|
end
|
|
31
29
|
|
|
32
30
|
def logger=(logger)
|
|
33
31
|
@log = logger
|
|
34
32
|
end
|
|
35
|
-
|
|
36
|
-
def use_legacy_autoloader=(value)
|
|
37
|
-
Cucumber.deprecate(
|
|
38
|
-
'This will be phased out of cucumber and should not be used. It is only there to support legacy systems',
|
|
39
|
-
'.use_legacy_autoloader',
|
|
40
|
-
'11.0.0'
|
|
41
|
-
)
|
|
42
|
-
@use_legacy_autoloader = value
|
|
43
|
-
end
|
|
44
33
|
end
|
|
45
34
|
end
|
metadata
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cucumber
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 11.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aslak Hellesøy
|
|
8
8
|
- Matt Wynne
|
|
9
9
|
- Steve Tooke
|
|
10
10
|
- Luke Hill
|
|
11
|
-
autorequire:
|
|
12
11
|
bindir: bin
|
|
13
12
|
cert_chain: []
|
|
14
|
-
date:
|
|
13
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
15
14
|
dependencies:
|
|
16
15
|
- !ruby/object:Gem::Dependency
|
|
17
16
|
name: base64
|
|
@@ -65,9 +64,9 @@ dependencies:
|
|
|
65
64
|
name: cucumber-core
|
|
66
65
|
requirement: !ruby/object:Gem::Requirement
|
|
67
66
|
requirements:
|
|
68
|
-
- - "
|
|
67
|
+
- - ">="
|
|
69
68
|
- !ruby/object:Gem::Version
|
|
70
|
-
version:
|
|
69
|
+
version: 16.2.0
|
|
71
70
|
- - "<"
|
|
72
71
|
- !ruby/object:Gem::Version
|
|
73
72
|
version: '17'
|
|
@@ -75,9 +74,9 @@ dependencies:
|
|
|
75
74
|
prerelease: false
|
|
76
75
|
version_requirements: !ruby/object:Gem::Requirement
|
|
77
76
|
requirements:
|
|
78
|
-
- - "
|
|
77
|
+
- - ">="
|
|
79
78
|
- !ruby/object:Gem::Version
|
|
80
|
-
version:
|
|
79
|
+
version: 16.2.0
|
|
81
80
|
- - "<"
|
|
82
81
|
- !ruby/object:Gem::Version
|
|
83
82
|
version: '17'
|
|
@@ -110,7 +109,7 @@ dependencies:
|
|
|
110
109
|
version: '21'
|
|
111
110
|
- - "<"
|
|
112
111
|
- !ruby/object:Gem::Version
|
|
113
|
-
version: '
|
|
112
|
+
version: '24'
|
|
114
113
|
type: :runtime
|
|
115
114
|
prerelease: false
|
|
116
115
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -120,7 +119,7 @@ dependencies:
|
|
|
120
119
|
version: '21'
|
|
121
120
|
- - "<"
|
|
122
121
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '
|
|
122
|
+
version: '24'
|
|
124
123
|
- !ruby/object:Gem::Dependency
|
|
125
124
|
name: diff-lcs
|
|
126
125
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -183,28 +182,28 @@ dependencies:
|
|
|
183
182
|
requirements:
|
|
184
183
|
- - "~>"
|
|
185
184
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: '1.
|
|
185
|
+
version: '1.5'
|
|
187
186
|
type: :runtime
|
|
188
187
|
prerelease: false
|
|
189
188
|
version_requirements: !ruby/object:Gem::Requirement
|
|
190
189
|
requirements:
|
|
191
190
|
- - "~>"
|
|
192
191
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: '1.
|
|
192
|
+
version: '1.5'
|
|
194
193
|
- !ruby/object:Gem::Dependency
|
|
195
194
|
name: cucumber-compatibility-kit
|
|
196
195
|
requirement: !ruby/object:Gem::Requirement
|
|
197
196
|
requirements:
|
|
198
197
|
- - "~>"
|
|
199
198
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: '
|
|
199
|
+
version: '24.0'
|
|
201
200
|
type: :development
|
|
202
201
|
prerelease: false
|
|
203
202
|
version_requirements: !ruby/object:Gem::Requirement
|
|
204
203
|
requirements:
|
|
205
204
|
- - "~>"
|
|
206
205
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: '
|
|
206
|
+
version: '24.0'
|
|
208
207
|
- !ruby/object:Gem::Dependency
|
|
209
208
|
name: nokogiri
|
|
210
209
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -253,14 +252,14 @@ dependencies:
|
|
|
253
252
|
requirements:
|
|
254
253
|
- - "~>"
|
|
255
254
|
- !ruby/object:Gem::Version
|
|
256
|
-
version: 1.
|
|
255
|
+
version: 1.85.1
|
|
257
256
|
type: :development
|
|
258
257
|
prerelease: false
|
|
259
258
|
version_requirements: !ruby/object:Gem::Requirement
|
|
260
259
|
requirements:
|
|
261
260
|
- - "~>"
|
|
262
261
|
- !ruby/object:Gem::Version
|
|
263
|
-
version: 1.
|
|
262
|
+
version: 1.85.1
|
|
264
263
|
- !ruby/object:Gem::Dependency
|
|
265
264
|
name: rubocop-packaging
|
|
266
265
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -295,14 +294,14 @@ dependencies:
|
|
|
295
294
|
requirements:
|
|
296
295
|
- - "~>"
|
|
297
296
|
- !ruby/object:Gem::Version
|
|
298
|
-
version: 3.
|
|
297
|
+
version: 3.8.0
|
|
299
298
|
type: :development
|
|
300
299
|
prerelease: false
|
|
301
300
|
version_requirements: !ruby/object:Gem::Requirement
|
|
302
301
|
requirements:
|
|
303
302
|
- - "~>"
|
|
304
303
|
- !ruby/object:Gem::Version
|
|
305
|
-
version: 3.
|
|
304
|
+
version: 3.8.0
|
|
306
305
|
- !ruby/object:Gem::Dependency
|
|
307
306
|
name: simplecov
|
|
308
307
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -343,6 +342,7 @@ files:
|
|
|
343
342
|
- VERSION
|
|
344
343
|
- bin/cucumber
|
|
345
344
|
- lib/cucumber.rb
|
|
345
|
+
- lib/cucumber/cli.rb
|
|
346
346
|
- lib/cucumber/cli/configuration.rb
|
|
347
347
|
- lib/cucumber/cli/main.rb
|
|
348
348
|
- lib/cucumber/cli/options.rb
|
|
@@ -353,6 +353,7 @@ files:
|
|
|
353
353
|
- lib/cucumber/encoding.rb
|
|
354
354
|
- lib/cucumber/errors.rb
|
|
355
355
|
- lib/cucumber/events.rb
|
|
356
|
+
- lib/cucumber/events/base.rb
|
|
356
357
|
- lib/cucumber/events/envelope.rb
|
|
357
358
|
- lib/cucumber/events/gherkin_source_parsed.rb
|
|
358
359
|
- lib/cucumber/events/gherkin_source_read.rb
|
|
@@ -364,6 +365,8 @@ files:
|
|
|
364
365
|
- lib/cucumber/events/test_case_ready.rb
|
|
365
366
|
- lib/cucumber/events/test_case_started.rb
|
|
366
367
|
- lib/cucumber/events/test_run_finished.rb
|
|
368
|
+
- lib/cucumber/events/test_run_hook_finished.rb
|
|
369
|
+
- lib/cucumber/events/test_run_hook_started.rb
|
|
367
370
|
- lib/cucumber/events/test_run_started.rb
|
|
368
371
|
- lib/cucumber/events/test_step_created.rb
|
|
369
372
|
- lib/cucumber/events/test_step_finished.rb
|
|
@@ -378,14 +381,17 @@ files:
|
|
|
378
381
|
- lib/cucumber/filters/apply_before_hooks.rb
|
|
379
382
|
- lib/cucumber/filters/broadcast_test_case_ready_event.rb
|
|
380
383
|
- lib/cucumber/filters/broadcast_test_run_started_event.rb
|
|
384
|
+
- lib/cucumber/filters/fire_before_all_hooks.rb
|
|
381
385
|
- lib/cucumber/filters/gated_receiver.rb
|
|
382
386
|
- lib/cucumber/filters/prepare_world.rb
|
|
383
387
|
- lib/cucumber/filters/quit.rb
|
|
384
388
|
- lib/cucumber/filters/randomizer.rb
|
|
385
389
|
- lib/cucumber/filters/retry.rb
|
|
390
|
+
- lib/cucumber/filters/reverser.rb
|
|
386
391
|
- lib/cucumber/filters/tag_limits.rb
|
|
387
392
|
- lib/cucumber/filters/tag_limits/test_case_index.rb
|
|
388
393
|
- lib/cucumber/filters/tag_limits/verifier.rb
|
|
394
|
+
- lib/cucumber/formatter.rb
|
|
389
395
|
- lib/cucumber/formatter/ansicolor.rb
|
|
390
396
|
- lib/cucumber/formatter/ast_lookup.rb
|
|
391
397
|
- lib/cucumber/formatter/backtrace_filter.rb
|
|
@@ -395,9 +401,9 @@ files:
|
|
|
395
401
|
- lib/cucumber/formatter/curl_option_parser.rb
|
|
396
402
|
- lib/cucumber/formatter/duration.rb
|
|
397
403
|
- lib/cucumber/formatter/duration_extractor.rb
|
|
398
|
-
- lib/cucumber/formatter/errors.rb
|
|
399
404
|
- lib/cucumber/formatter/fail_fast.rb
|
|
400
405
|
- lib/cucumber/formatter/fanout.rb
|
|
406
|
+
- lib/cucumber/formatter/global_hooks_summary.rb
|
|
401
407
|
- lib/cucumber/formatter/html.rb
|
|
402
408
|
- lib/cucumber/formatter/http_io.rb
|
|
403
409
|
- lib/cucumber/formatter/ignore_missing_messages.rb
|
|
@@ -411,12 +417,6 @@ files:
|
|
|
411
417
|
- lib/cucumber/formatter/pretty.rb
|
|
412
418
|
- lib/cucumber/formatter/progress.rb
|
|
413
419
|
- lib/cucumber/formatter/publish_banner_printer.rb
|
|
414
|
-
- lib/cucumber/formatter/query/hook_by_test_step.rb
|
|
415
|
-
- lib/cucumber/formatter/query/pickle_by_test.rb
|
|
416
|
-
- lib/cucumber/formatter/query/pickle_step_by_test_step.rb
|
|
417
|
-
- lib/cucumber/formatter/query/step_definitions_by_test_step.rb
|
|
418
|
-
- lib/cucumber/formatter/query/test_case_started_by_test_case.rb
|
|
419
|
-
- lib/cucumber/formatter/query/test_run_started.rb
|
|
420
420
|
- lib/cucumber/formatter/rerun.rb
|
|
421
421
|
- lib/cucumber/formatter/stepdefs.rb
|
|
422
422
|
- lib/cucumber/formatter/steps.rb
|
|
@@ -429,6 +429,7 @@ files:
|
|
|
429
429
|
- lib/cucumber/gherkin/formatter/escaping.rb
|
|
430
430
|
- lib/cucumber/gherkin/i18n.rb
|
|
431
431
|
- lib/cucumber/gherkin/steps_parser.rb
|
|
432
|
+
- lib/cucumber/glue.rb
|
|
432
433
|
- lib/cucumber/glue/dsl.rb
|
|
433
434
|
- lib/cucumber/glue/hook.rb
|
|
434
435
|
- lib/cucumber/glue/invoke_in_world.rb
|
|
@@ -446,7 +447,12 @@ files:
|
|
|
446
447
|
- lib/cucumber/multiline_argument/doc_string.rb
|
|
447
448
|
- lib/cucumber/platform.rb
|
|
448
449
|
- lib/cucumber/project_initializer.rb
|
|
450
|
+
- lib/cucumber/query.rb
|
|
451
|
+
- lib/cucumber/rake.rb
|
|
452
|
+
- lib/cucumber/rake/forked_cucumber_runner.rb
|
|
453
|
+
- lib/cucumber/rake/in_process_cucumber_runner.rb
|
|
449
454
|
- lib/cucumber/rake/task.rb
|
|
455
|
+
- lib/cucumber/repository.rb
|
|
450
456
|
- lib/cucumber/rspec/disable_option_parser.rb
|
|
451
457
|
- lib/cucumber/rspec/doubles.rb
|
|
452
458
|
- lib/cucumber/running_test_case.rb
|
|
@@ -458,7 +464,6 @@ files:
|
|
|
458
464
|
- lib/cucumber/runtime/step_hooks.rb
|
|
459
465
|
- lib/cucumber/runtime/support_code.rb
|
|
460
466
|
- lib/cucumber/runtime/user_interface.rb
|
|
461
|
-
- lib/cucumber/step_definition_light.rb
|
|
462
467
|
- lib/cucumber/step_definitions.rb
|
|
463
468
|
- lib/cucumber/step_match.rb
|
|
464
469
|
- lib/cucumber/step_match_search.rb
|
|
@@ -476,7 +481,6 @@ metadata:
|
|
|
476
481
|
mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
|
|
477
482
|
source_code_uri: https://github.com/cucumber/cucumber-ruby
|
|
478
483
|
funding_uri: https://opencollective.com/cucumber
|
|
479
|
-
post_install_message:
|
|
480
484
|
rdoc_options:
|
|
481
485
|
- "--charset=UTF-8"
|
|
482
486
|
require_paths:
|
|
@@ -485,15 +489,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
485
489
|
requirements:
|
|
486
490
|
- - ">="
|
|
487
491
|
- !ruby/object:Gem::Version
|
|
488
|
-
version: '3.
|
|
492
|
+
version: '3.2'
|
|
489
493
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
490
494
|
requirements:
|
|
491
495
|
- - ">="
|
|
492
496
|
- !ruby/object:Gem::Version
|
|
493
497
|
version: 3.2.8
|
|
494
498
|
requirements: []
|
|
495
|
-
rubygems_version:
|
|
496
|
-
signing_key:
|
|
499
|
+
rubygems_version: 4.0.10
|
|
497
500
|
specification_version: 4
|
|
498
|
-
summary: cucumber-
|
|
501
|
+
summary: cucumber-11.1.0
|
|
499
502
|
test_files: []
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/formatter/errors'
|
|
4
|
-
|
|
5
|
-
module Cucumber
|
|
6
|
-
module Formatter
|
|
7
|
-
module Query
|
|
8
|
-
class HookByTestStep
|
|
9
|
-
def initialize(config)
|
|
10
|
-
@hook_id_by_test_step_id = {}
|
|
11
|
-
|
|
12
|
-
config.on_event :test_step_created, &method(:on_test_step_created)
|
|
13
|
-
config.on_event :hook_test_step_created, &method(:on_hook_test_step_created)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def hook_id(test_step)
|
|
17
|
-
return @hook_id_by_test_step_id[test_step.id] if @hook_id_by_test_step_id.key?(test_step.id)
|
|
18
|
-
|
|
19
|
-
raise TestStepUnknownError, "No hook found for #{test_step.id} }. Known: #{@hook_id_by_test_step_id.keys}"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
def on_test_step_created(event)
|
|
25
|
-
@hook_id_by_test_step_id[event.test_step.id] = nil
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def on_hook_test_step_created(event)
|
|
29
|
-
@hook_id_by_test_step_id[event.test_step.id] = event.hook.id
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/formatter/errors'
|
|
4
|
-
|
|
5
|
-
module Cucumber
|
|
6
|
-
module Formatter
|
|
7
|
-
module Query
|
|
8
|
-
class PickleByTest
|
|
9
|
-
def initialize(config)
|
|
10
|
-
@pickle_id_by_test_case_id = {}
|
|
11
|
-
config.on_event :test_case_created, &method(:on_test_case_created)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def pickle_id(test_case)
|
|
15
|
-
return @pickle_id_by_test_case_id[test_case.id] if @pickle_id_by_test_case_id.key?(test_case.id)
|
|
16
|
-
|
|
17
|
-
raise TestCaseUnknownError, "No pickle found for #{test_case.id} }. Known: #{@pickle_id_by_test_case_id.keys}"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def on_test_case_created(event)
|
|
23
|
-
@pickle_id_by_test_case_id[event.test_case.id] = event.pickle.id
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/formatter/errors'
|
|
4
|
-
|
|
5
|
-
module Cucumber
|
|
6
|
-
module Formatter
|
|
7
|
-
module Query
|
|
8
|
-
class PickleStepByTestStep
|
|
9
|
-
def initialize(config)
|
|
10
|
-
@pickle_id_step_by_test_step_id = {}
|
|
11
|
-
config.on_event :test_step_created, &method(:on_test_step_created)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def pickle_step_id(test_step)
|
|
15
|
-
return @pickle_id_step_by_test_step_id[test_step.id] if @pickle_id_step_by_test_step_id.key?(test_step.id)
|
|
16
|
-
|
|
17
|
-
raise TestStepUnknownError, "No pickle step found for #{test_step.id} }. Known: #{@pickle_id_step_by_test_step_id.keys}"
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
def on_test_step_created(event)
|
|
23
|
-
@pickle_id_step_by_test_step_id[event.test_step.id] = event.pickle_step.id
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/formatter/errors'
|
|
4
|
-
|
|
5
|
-
module Cucumber
|
|
6
|
-
module Formatter
|
|
7
|
-
module Query
|
|
8
|
-
class StepDefinitionsByTestStep
|
|
9
|
-
def initialize(config)
|
|
10
|
-
@step_definition_ids_by_test_step_id = {}
|
|
11
|
-
@step_match_arguments_by_test_step_id = {}
|
|
12
|
-
|
|
13
|
-
config.on_event :test_step_created, &method(:on_test_step_created)
|
|
14
|
-
config.on_event :step_activated, &method(:on_step_activated)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def step_definition_ids(test_step)
|
|
18
|
-
return @step_definition_ids_by_test_step_id[test_step.id] if @step_definition_ids_by_test_step_id.key?(test_step.id)
|
|
19
|
-
|
|
20
|
-
raise TestStepUnknownError, "No step definition found for #{test_step.id} }. Known: #{@step_definition_ids_by_test_step_id.keys}"
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def step_match_arguments(test_step)
|
|
24
|
-
return @step_match_arguments_by_test_step_id[test_step.id] if @step_match_arguments_by_test_step_id.key?(test_step.id)
|
|
25
|
-
|
|
26
|
-
raise TestStepUnknownError, "No step match arguments found for #{test_step.id} }. Known: #{@step_match_arguments_by_test_step_id.keys}"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
private
|
|
30
|
-
|
|
31
|
-
def on_test_step_created(event)
|
|
32
|
-
@step_definition_ids_by_test_step_id[event.test_step.id] = []
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def on_step_activated(event)
|
|
36
|
-
@step_definition_ids_by_test_step_id[event.test_step.id] << event.step_match.step_definition.id
|
|
37
|
-
@step_match_arguments_by_test_step_id[event.test_step.id] = event.step_match.step_arguments
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'cucumber/formatter/errors'
|
|
4
|
-
|
|
5
|
-
module Cucumber
|
|
6
|
-
module Formatter
|
|
7
|
-
module Query
|
|
8
|
-
class TestCaseStartedByTestCase
|
|
9
|
-
def initialize(config)
|
|
10
|
-
@config = config
|
|
11
|
-
config.on_event :test_case_created, &method(:on_test_case_created)
|
|
12
|
-
config.on_event :test_case_started, &method(:on_test_case_started)
|
|
13
|
-
|
|
14
|
-
@attempts_by_test_case_id = {}
|
|
15
|
-
@test_case_started_id_by_test_case_id = {}
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def attempt_by_test_case(test_case)
|
|
19
|
-
raise TestCaseUnknownError, "No test case found for #{test_case.id} }. Known: #{@attempts_by_test_case_id.keys}" unless @attempts_by_test_case_id.key?(test_case.id)
|
|
20
|
-
|
|
21
|
-
@attempts_by_test_case_id[test_case.id]
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def test_case_started_id_by_test_case(test_case)
|
|
25
|
-
raise TestCaseUnknownError, "No test case found for #{test_case.id} }. Known: #{@test_case_started_id_by_test_case_id.keys}" unless @test_case_started_id_by_test_case_id.key?(test_case.id)
|
|
26
|
-
|
|
27
|
-
@test_case_started_id_by_test_case_id[test_case.id]
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
|
|
32
|
-
def on_test_case_created(event)
|
|
33
|
-
@attempts_by_test_case_id[event.test_case.id] = 0
|
|
34
|
-
@test_case_started_id_by_test_case_id[event.test_case.id] = nil
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def on_test_case_started(event)
|
|
38
|
-
@attempts_by_test_case_id[event.test_case.id] += 1
|
|
39
|
-
@test_case_started_id_by_test_case_id[event.test_case.id] = @config.id_generator.new_id
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
# TODO: pointless, ancient, kill with fire.
|
|
5
|
-
# Only used for keeping track of available and invoked step definitions
|
|
6
|
-
# in a way that also works for other programming languages (i.e. cuke4duke)
|
|
7
|
-
# Used for reporting purposes only (usage formatter).
|
|
8
|
-
class StepDefinitionLight
|
|
9
|
-
attr_reader :regexp_source, :location
|
|
10
|
-
|
|
11
|
-
def initialize(regexp_source, location)
|
|
12
|
-
@regexp_source = regexp_source
|
|
13
|
-
@location = location
|
|
14
|
-
Cucumber.deprecate(
|
|
15
|
-
'StepDefinitionLight class is no longer a supported part of cucumber',
|
|
16
|
-
'#initialize',
|
|
17
|
-
'11.0.0'
|
|
18
|
-
)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def eql?(other)
|
|
22
|
-
regexp_source == other.regexp_source && location == other.location
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def hash
|
|
26
|
-
regexp_source.hash + 31 * location.to_s.hash
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|