cucumber 7.0.0 → 7.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +229 -170
- data/README.md +4 -1
- data/lib/cucumber/events.rb +1 -1
- data/lib/cucumber/glue/dsl.rb +19 -0
- data/lib/cucumber/glue/registry_and_more.rb +29 -0
- data/lib/cucumber/glue/registry_wrapper.rb +31 -0
- data/lib/cucumber/runtime.rb +32 -2
- data/lib/cucumber/version +1 -1
- metadata +34 -33
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
[![OpenCollective](https://opencollective.com/cucumber/sponsors/badge.svg)](https://opencollective.com/cucumber)
|
9
9
|
[![pull requests](https://oselvar.com/api/badge?label=pull%20requests&csvUrl=https%3A%2F%2Fraw.githubusercontent.com%2Fcucumber%2Foselvar-github-metrics%2Fmain%2Fdata%2Fcucumber%2Fcucumber-ruby%2FpullRequests.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby)
|
10
10
|
[![issues](https://oselvar.com/api/badge?label=issues&csvUrl=https%3A%2F%2Fraw.githubusercontent.com%2Fcucumber%2Foselvar-github-metrics%2Fmain%2Fdata%2Fcucumber%2Fcucumber-ruby%2Fissues.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby)
|
11
|
-
[![
|
11
|
+
[![Test cucumber](https://github.com/cucumber/cucumber-ruby/actions/workflows/cucumber-ruby.yml/badge.svg)](https://github.com/cucumber/cucumber-ruby/actions/workflows/cucumber-ruby.yml)
|
12
12
|
[![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby)
|
13
13
|
[![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby/badge.svg?branch=main)](https://coveralls.io/r/cucumber/cucumber-ruby?branch=main)
|
14
14
|
|
@@ -58,6 +58,9 @@ Later in this document, bundler is considered being used so all commands are usi
|
|
58
58
|
- Ruby 2.3
|
59
59
|
- JRuby 9.2 (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
|
60
60
|
|
61
|
+
JRuby 9.3 is not supported yet due to a known issue. More info can
|
62
|
+
be found in the [PR#1571](https://github.com/cucumber/cucumber-ruby/pull/1571).
|
63
|
+
|
61
64
|
### Ruby on Rails
|
62
65
|
|
63
66
|
Using Ruby on Rails? You can use [cucumber-rails](https://github.com/cucumber/cucumber-rails)
|
data/lib/cucumber/events.rb
CHANGED
data/lib/cucumber/glue/dsl.rb
CHANGED
@@ -109,10 +109,29 @@ module Cucumber
|
|
109
109
|
|
110
110
|
# Registers a proc that will run after Cucumber is configured. You can register as
|
111
111
|
# as you want (typically from ruby scripts under <tt>support/hooks.rb</tt>).
|
112
|
+
#
|
113
|
+
# DEPRECATED: please use InstallPlugin or BeforeAll instead
|
112
114
|
def AfterConfiguration(&proc)
|
113
115
|
Dsl.register_rb_hook('after_configuration', [], proc)
|
114
116
|
end
|
115
117
|
|
118
|
+
# Registers a proc that will run after Cucumber is configured in order to install an external plugin.
|
119
|
+
def InstallPlugin(&proc)
|
120
|
+
Dsl.register_rb_hook('install_plugin', [], proc)
|
121
|
+
end
|
122
|
+
|
123
|
+
# Registers a proc that will run before the execution of the scenarios.
|
124
|
+
# Use it for your final set-ups
|
125
|
+
def BeforeAll(&proc)
|
126
|
+
Dsl.register_rb_hook('before_all', [], proc)
|
127
|
+
end
|
128
|
+
|
129
|
+
# Registers a proc that will run after the execution of the scenarios.
|
130
|
+
# Use it for your final clean-ups
|
131
|
+
def AfterAll(&proc)
|
132
|
+
Dsl.register_rb_hook('after_all', [], proc)
|
133
|
+
end
|
134
|
+
|
116
135
|
# Registers a new Ruby StepDefinition. This method is aliased
|
117
136
|
# to <tt>Given</tt>, <tt>When</tt> and <tt>Then</tt>, and
|
118
137
|
# also to the i18n translations whenever a feature of a
|
@@ -4,6 +4,7 @@ require 'cucumber/cucumber_expressions/parameter_type_registry'
|
|
4
4
|
require 'cucumber/cucumber_expressions/cucumber_expression'
|
5
5
|
require 'cucumber/cucumber_expressions/regular_expression'
|
6
6
|
require 'cucumber/cucumber_expressions/cucumber_expression_generator'
|
7
|
+
require 'cucumber/deprecate'
|
7
8
|
require 'cucumber/glue/dsl'
|
8
9
|
require 'cucumber/glue/snippet'
|
9
10
|
require 'cucumber/glue/hook'
|
@@ -135,11 +136,31 @@ module Cucumber
|
|
135
136
|
end
|
136
137
|
|
137
138
|
def after_configuration(configuration)
|
139
|
+
deprecate_after_configuration_hook if hooks[:after_configuration].any?
|
140
|
+
|
138
141
|
hooks[:after_configuration].each do |hook|
|
139
142
|
hook.invoke('AfterConfiguration', configuration)
|
140
143
|
end
|
141
144
|
end
|
142
145
|
|
146
|
+
def install_plugin(configuration, registry)
|
147
|
+
hooks[:install_plugin].each do |hook|
|
148
|
+
hook.invoke('InstallPlugin', [configuration, registry])
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def before_all
|
153
|
+
hooks[:before_all].each do |hook|
|
154
|
+
hook.invoke('BeforeAll', [])
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def after_all
|
159
|
+
hooks[:after_all].each do |hook|
|
160
|
+
hook.invoke('AfterAll', [])
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
143
164
|
def add_hook(phase, hook)
|
144
165
|
hooks[phase.to_sym] << hook
|
145
166
|
hook
|
@@ -207,6 +228,14 @@ module Cucumber
|
|
207
228
|
def hooks
|
208
229
|
@hooks ||= Hash.new { |h, k| h[k] = [] }
|
209
230
|
end
|
231
|
+
|
232
|
+
def deprecate_after_configuration_hook
|
233
|
+
Cucumber.deprecate(
|
234
|
+
'See https://github.com/cucumber/cucumber-ruby/blob/main/UPGRADING.md#upgrading-to-710 for more info',
|
235
|
+
' AfterConfiguration hook',
|
236
|
+
'8.0.0'
|
237
|
+
)
|
238
|
+
end
|
210
239
|
end
|
211
240
|
|
212
241
|
def self.backtrace_line(proc, name)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Glue
|
5
|
+
##
|
6
|
+
# This class wraps some internals methods to expose them to external plugins.
|
7
|
+
class RegistryWrapper
|
8
|
+
def initialize(registry)
|
9
|
+
@registry = registry
|
10
|
+
end
|
11
|
+
|
12
|
+
##
|
13
|
+
# Creates a new CucumberExpression from the given +string_or_regexp+.
|
14
|
+
#
|
15
|
+
# If +string_or_regexp+ is a string, it will return a new CucumberExpression::CucumberExpression
|
16
|
+
#
|
17
|
+
# If +string_or_regexp+ is a regexp, it will return a new CucumberExpressions::RegularExpression
|
18
|
+
#
|
19
|
+
# An ArgumentError is raised if +string_or_regexp+ is not a string or a regexp
|
20
|
+
def create_expression(string_or_regexp)
|
21
|
+
@registry.create_expression(string_or_regexp)
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Return the current execution environment - AKA an isntance of World
|
26
|
+
def current_world
|
27
|
+
@registry.current_world
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/cucumber/runtime.rb
CHANGED
@@ -3,12 +3,14 @@
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'cucumber/configuration'
|
5
5
|
require 'cucumber/create_meta'
|
6
|
+
require 'cucumber/deprecate'
|
6
7
|
require 'cucumber/load_path'
|
7
8
|
require 'cucumber/formatter/duration'
|
8
9
|
require 'cucumber/file_specs'
|
9
10
|
require 'cucumber/filters'
|
10
11
|
require 'cucumber/formatter/fanout'
|
11
12
|
require 'cucumber/gherkin/i18n'
|
13
|
+
require 'cucumber/glue/registry_wrapper'
|
12
14
|
require 'cucumber/step_match_search'
|
13
15
|
require 'cucumber/messages'
|
14
16
|
require 'sys/uname'
|
@@ -70,14 +72,18 @@ module Cucumber
|
|
70
72
|
)
|
71
73
|
|
72
74
|
load_step_definitions
|
73
|
-
install_wire_plugin
|
74
75
|
fire_after_configuration_hook
|
76
|
+
fire_install_plugin_hook
|
77
|
+
install_wire_plugin
|
78
|
+
fire_before_all_hook unless dry_run?
|
75
79
|
# TODO: can we remove this state?
|
76
80
|
self.visitor = report
|
77
81
|
|
78
82
|
receiver = Test::Runner.new(@configuration.event_bus)
|
79
83
|
compile features, receiver, filters, @configuration.event_bus
|
80
84
|
@configuration.notify :test_run_finished
|
85
|
+
|
86
|
+
fire_after_all_hook unless dry_run?
|
81
87
|
end
|
82
88
|
|
83
89
|
def features_paths
|
@@ -112,6 +118,18 @@ module Cucumber
|
|
112
118
|
@support_code.fire_hook(:after_configuration, @configuration)
|
113
119
|
end
|
114
120
|
|
121
|
+
def fire_install_plugin_hook #:nodoc:
|
122
|
+
@support_code.fire_hook(:install_plugin, @configuration, registry_wrapper)
|
123
|
+
end
|
124
|
+
|
125
|
+
def fire_before_all_hook #:nodoc:
|
126
|
+
@support_code.fire_hook(:before_all)
|
127
|
+
end
|
128
|
+
|
129
|
+
def fire_after_all_hook #:nodoc:
|
130
|
+
@support_code.fire_hook(:after_all)
|
131
|
+
end
|
132
|
+
|
115
133
|
require 'cucumber/core/gherkin/document'
|
116
134
|
def features
|
117
135
|
@features ||= feature_files.map do |path|
|
@@ -261,7 +279,19 @@ module Cucumber
|
|
261
279
|
end
|
262
280
|
|
263
281
|
def install_wire_plugin
|
264
|
-
Cucumber::Wire::Plugin.
|
282
|
+
return if Cucumber::Wire::Plugin.installed?
|
283
|
+
return unless @configuration.all_files_to_load.any? { |f| f =~ /\.wire$/ }
|
284
|
+
|
285
|
+
Cucumber::Wire::Plugin.new(@configuration, registry_wrapper).install
|
286
|
+
Cucumber.deprecate(
|
287
|
+
'See https://github.com/cucumber/cucumber-ruby/blob/main/UPGRADING.md#upgrading-to-710 for more info',
|
288
|
+
' built-in usage of the wire protocol',
|
289
|
+
'8.0.0'
|
290
|
+
)
|
291
|
+
end
|
292
|
+
|
293
|
+
def registry_wrapper
|
294
|
+
Cucumber::Glue::RegistryWrapper.new(@support_code.registry)
|
265
295
|
end
|
266
296
|
|
267
297
|
def log
|
data/lib/cucumber/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
7.
|
1
|
+
7.1.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-10-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -38,20 +38,20 @@ dependencies:
|
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '10.
|
41
|
+
version: '10.1'
|
42
42
|
- - ">="
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 10.0
|
44
|
+
version: 10.1.0
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
47
|
version_requirements: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: '10.
|
51
|
+
version: '10.1'
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 10.0
|
54
|
+
version: 10.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: cucumber-create-meta
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,100 +78,100 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '14.0'
|
82
82
|
- - ">="
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
84
|
+
version: 14.0.0
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
91
|
+
version: '14.0'
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
94
|
+
version: 14.0.0
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: cucumber-gherkin
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - "~>"
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
101
|
+
version: '22.0'
|
102
102
|
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
104
|
+
version: 22.0.0
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
111
|
+
version: '22.0'
|
112
112
|
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
114
|
+
version: 22.0.0
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: cucumber-html-formatter
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
121
|
+
version: '17.0'
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 17.0.0
|
125
125
|
type: :runtime
|
126
126
|
prerelease: false
|
127
127
|
version_requirements: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '17.0'
|
132
132
|
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
134
|
+
version: 17.0.0
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: cucumber-messages
|
137
137
|
requirement: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
139
|
- - "~>"
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: '17.
|
141
|
+
version: '17.1'
|
142
142
|
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 17.
|
144
|
+
version: 17.1.1
|
145
145
|
type: :runtime
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '17.
|
151
|
+
version: '17.1'
|
152
152
|
- - ">="
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: 17.
|
154
|
+
version: 17.1.1
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
156
|
name: cucumber-wire
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
158
158
|
requirements:
|
159
159
|
- - "~>"
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
version: '6.
|
161
|
+
version: '6.2'
|
162
162
|
- - ">="
|
163
163
|
- !ruby/object:Gem::Version
|
164
|
-
version: 6.0
|
164
|
+
version: 6.2.0
|
165
165
|
type: :runtime
|
166
166
|
prerelease: false
|
167
167
|
version_requirements: !ruby/object:Gem::Requirement
|
168
168
|
requirements:
|
169
169
|
- - "~>"
|
170
170
|
- !ruby/object:Gem::Version
|
171
|
-
version: '6.
|
171
|
+
version: '6.2'
|
172
172
|
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
|
-
version: 6.0
|
174
|
+
version: 6.2.0
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
176
|
name: diff-lcs
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
@@ -258,20 +258,20 @@ dependencies:
|
|
258
258
|
requirements:
|
259
259
|
- - "~>"
|
260
260
|
- !ruby/object:Gem::Version
|
261
|
-
version: '1.
|
261
|
+
version: '1.12'
|
262
262
|
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: 1.
|
264
|
+
version: 1.12.5
|
265
265
|
type: :development
|
266
266
|
prerelease: false
|
267
267
|
version_requirements: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
269
|
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: '1.
|
271
|
+
version: '1.12'
|
272
272
|
- - ">="
|
273
273
|
- !ruby/object:Gem::Version
|
274
|
-
version: 1.
|
274
|
+
version: 1.12.5
|
275
275
|
- !ruby/object:Gem::Dependency
|
276
276
|
name: pry
|
277
277
|
requirement: !ruby/object:Gem::Requirement
|
@@ -381,7 +381,7 @@ dependencies:
|
|
381
381
|
version: '3.4'
|
382
382
|
- - ">="
|
383
383
|
- !ruby/object:Gem::Version
|
384
|
-
version: 3.4.
|
384
|
+
version: 3.4.8
|
385
385
|
type: :development
|
386
386
|
prerelease: false
|
387
387
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -391,7 +391,7 @@ dependencies:
|
|
391
391
|
version: '3.4'
|
392
392
|
- - ">="
|
393
393
|
- !ruby/object:Gem::Version
|
394
|
-
version: 3.4.
|
394
|
+
version: 3.4.8
|
395
395
|
- !ruby/object:Gem::Dependency
|
396
396
|
name: webrick
|
397
397
|
requirement: !ruby/object:Gem::Requirement
|
@@ -602,6 +602,7 @@ files:
|
|
602
602
|
- lib/cucumber/glue/invoke_in_world.rb
|
603
603
|
- lib/cucumber/glue/proto_world.rb
|
604
604
|
- lib/cucumber/glue/registry_and_more.rb
|
605
|
+
- lib/cucumber/glue/registry_wrapper.rb
|
605
606
|
- lib/cucumber/glue/snippet.rb
|
606
607
|
- lib/cucumber/glue/step_definition.rb
|
607
608
|
- lib/cucumber/glue/world_factory.rb
|
@@ -661,5 +662,5 @@ requirements: []
|
|
661
662
|
rubygems_version: 3.1.2
|
662
663
|
signing_key:
|
663
664
|
specification_version: 4
|
664
|
-
summary: cucumber-7.
|
665
|
+
summary: cucumber-7.1.0
|
665
666
|
test_files: []
|