cucumber 11.1.0 → 12.0.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/VERSION +1 -1
- data/lib/cucumber/cli/configuration.rb +0 -6
- data/lib/cucumber/cli/options.rb +0 -16
- data/lib/cucumber/configuration.rb +5 -5
- data/lib/cucumber/errors.rb +43 -23
- data/lib/cucumber/events/attach_called.rb +28 -0
- data/lib/cucumber/events/envelope.rb +2 -2
- data/lib/cucumber/events/gherkin_source_parsed.rb +1 -3
- data/lib/cucumber/events/gherkin_source_read.rb +1 -1
- data/lib/cucumber/events/hook_test_step_created.rb +1 -3
- data/lib/cucumber/events/step_activated.rb +1 -1
- data/lib/cucumber/events/step_definition_registered.rb +1 -3
- data/lib/cucumber/events/test_case_created.rb +1 -1
- data/lib/cucumber/events/test_case_finished.rb +1 -1
- data/lib/cucumber/events/test_case_ready.rb +1 -1
- data/lib/cucumber/events/test_case_started.rb +1 -3
- data/lib/cucumber/events/test_run_finished.rb +1 -1
- data/lib/cucumber/events/test_run_hook_finished.rb +1 -1
- data/lib/cucumber/events/test_run_hook_started.rb +1 -3
- data/lib/cucumber/events/test_run_started.rb +1 -3
- data/lib/cucumber/events/test_step_created.rb +1 -3
- data/lib/cucumber/events/test_step_finished.rb +1 -3
- data/lib/cucumber/events/test_step_started.rb +1 -3
- data/lib/cucumber/events/undefined_parameter_type.rb +1 -1
- data/lib/cucumber/events.rb +7 -2
- data/lib/cucumber/filters/retry.rb +7 -22
- data/lib/cucumber/formatter/console.rb +5 -5
- data/lib/cucumber/formatter/console_counts.rb +5 -3
- data/lib/cucumber/formatter/console_issues.rb +3 -3
- data/lib/cucumber/formatter/duration_extractor.rb +0 -2
- data/lib/cucumber/formatter/fail_fast.rb +2 -2
- data/lib/cucumber/formatter/html.rb +10 -6
- data/lib/cucumber/formatter/json.rb +10 -8
- data/lib/cucumber/formatter/junit.rb +3 -3
- data/lib/cucumber/formatter/message.rb +1 -5
- data/lib/cucumber/formatter/message_builder.rb +39 -147
- data/lib/cucumber/formatter/message_handlers.rb +13 -0
- data/lib/cucumber/formatter/pretty.rb +7 -6
- data/lib/cucumber/formatter/progress.rb +1 -0
- data/lib/cucumber/formatter/rerun.rb +15 -42
- data/lib/cucumber/formatter/summary.rb +15 -1
- data/lib/cucumber/glue/hook.rb +0 -1
- data/lib/cucumber/glue/multiple_world.rb +26 -0
- data/lib/cucumber/glue/nil_world.rb +12 -0
- data/lib/cucumber/glue/proto_world.rb +4 -5
- data/lib/cucumber/glue/registry_and_more.rb +15 -32
- data/lib/cucumber/multiline_argument/data_table.rb +5 -7
- data/lib/cucumber/retry_policy.rb +27 -0
- data/lib/cucumber/rspec/doubles.rb +1 -7
- data/lib/cucumber/runtime/meta_message_builder.rb +1 -1
- data/lib/cucumber/runtime/user_interface.rb +18 -3
- data/lib/cucumber/runtime.rb +34 -53
- metadata +53 -26
- data/lib/cucumber/events/base.rb +0 -25
- data/lib/cucumber/formatter/fanout.rb +0 -28
- data/lib/cucumber/query.rb +0 -273
- data/lib/cucumber/repository.rb +0 -136
|
@@ -6,17 +6,22 @@ require 'cucumber/cucumber_expressions/regular_expression'
|
|
|
6
6
|
require 'cucumber/cucumber_expressions/cucumber_expression_generator'
|
|
7
7
|
require 'cucumber/messages/helpers/time_conversion'
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
require_relative 'dsl'
|
|
10
|
+
require_relative 'snippet'
|
|
11
|
+
require_relative 'hook'
|
|
12
|
+
require_relative 'proto_world'
|
|
13
|
+
require_relative 'step_definition'
|
|
14
|
+
require_relative 'world_factory'
|
|
15
|
+
require_relative '../step_match'
|
|
16
|
+
require_relative '../gherkin/i18n'
|
|
17
|
+
|
|
16
18
|
require 'multi_test'
|
|
17
|
-
require 'cucumber/
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
require 'cucumber/core/event/base'
|
|
20
|
+
|
|
21
|
+
require_relative '../events/step_definition_registered'
|
|
22
|
+
|
|
23
|
+
require_relative 'multiple_world'
|
|
24
|
+
require_relative 'nil_world'
|
|
20
25
|
|
|
21
26
|
module Cucumber
|
|
22
27
|
module Glue
|
|
@@ -25,28 +30,6 @@ module Cucumber
|
|
|
25
30
|
"#{location}:in `#{name}'"
|
|
26
31
|
end
|
|
27
32
|
|
|
28
|
-
# Raised if a World block returns Nil.
|
|
29
|
-
class NilWorld < StandardError
|
|
30
|
-
def initialize
|
|
31
|
-
super('World procs should never return nil')
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Raised if there are 2 or more World blocks.
|
|
36
|
-
class MultipleWorld < StandardError
|
|
37
|
-
def initialize(first_proc, second_proc)
|
|
38
|
-
# TODO: [LH] - Just use a heredoc here to fix this up
|
|
39
|
-
message = String.new
|
|
40
|
-
message << "You can only pass a proc to #World once, but it's happening\n"
|
|
41
|
-
message << "in 2 places:\n\n"
|
|
42
|
-
message << Glue.backtrace_line(first_proc, 'World') << "\n"
|
|
43
|
-
message << Glue.backtrace_line(second_proc, 'World') << "\n\n"
|
|
44
|
-
message << "Use Ruby modules instead to extend your worlds. See the Cucumber::Glue::Dsl#World RDoc\n"
|
|
45
|
-
message << "or http://wiki.github.com/cucumber/cucumber/a-whole-new-world.\n\n"
|
|
46
|
-
super(message)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
33
|
# TODO: This class has too many responsibilities, split off
|
|
51
34
|
class RegistryAndMore
|
|
52
35
|
attr_reader :current_world, :step_definitions
|
|
@@ -77,7 +77,7 @@ module Cucumber
|
|
|
77
77
|
|
|
78
78
|
# This is a Hash being initialized with a default value of a Hash
|
|
79
79
|
# DO NOT REFORMAT TO REMOVE {} - Ruby 3.4+ will interpret these as keywords and cucumber will not work
|
|
80
|
-
NULL_CONVERSIONS = Hash.new({
|
|
80
|
+
NULL_CONVERSIONS = Hash.new({ proc: ->(cell_value) { cell_value } }).freeze
|
|
81
81
|
|
|
82
82
|
# @param data [Core::Test::DataTable] the data for the table
|
|
83
83
|
# @param conversion_procs [Hash] see map_column
|
|
@@ -265,9 +265,7 @@ module Cucumber
|
|
|
265
265
|
# Returns a new Table with an additional column mapping.
|
|
266
266
|
#
|
|
267
267
|
# Change how #hashes converts column values. The +column_name+ argument identifies the column
|
|
268
|
-
# and +conversion_proc+ performs the conversion for each cell in that column.
|
|
269
|
-
# true, an error will be raised if the column named +column_name+ is not found. If +strict+
|
|
270
|
-
# is false, no error will be raised. Example:
|
|
268
|
+
# and +conversion_proc+ performs the conversion for each cell in that column.
|
|
271
269
|
#
|
|
272
270
|
# Given /^an expense report for (.*) with the following posts:$/ do |table|
|
|
273
271
|
# posts_table = posts_table.map_column('amount') { |a| a.to_i }
|
|
@@ -276,9 +274,9 @@ module Cucumber
|
|
|
276
274
|
# end
|
|
277
275
|
# end
|
|
278
276
|
#
|
|
279
|
-
def map_column(column_name,
|
|
277
|
+
def map_column(column_name, &conversion_proc)
|
|
280
278
|
conversion_procs = @conversion_procs.dup
|
|
281
|
-
conversion_procs[column_name.to_s] = {
|
|
279
|
+
conversion_procs[column_name.to_s] = { proc: conversion_proc }
|
|
282
280
|
self.class.new(Core::Test::DataTable.new(raw), conversion_procs, @header_mappings.dup, @header_conversion_proc)
|
|
283
281
|
end
|
|
284
282
|
|
|
@@ -467,7 +465,7 @@ module Cucumber
|
|
|
467
465
|
|
|
468
466
|
def convert_columns!
|
|
469
467
|
@conversion_procs.each do |column_name, conversion_proc|
|
|
470
|
-
verify_column(column_name)
|
|
468
|
+
verify_column(column_name)
|
|
471
469
|
end
|
|
472
470
|
|
|
473
471
|
cell_matrix.transpose.each do |col|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Cucumber
|
|
4
|
+
# Decides whether a failed test case is run again, honouring both the `--retry` and the `--retry-total` options.
|
|
5
|
+
#
|
|
6
|
+
# The retry filter asks it and then records what it did, the test runner asks it when it reports the outcome of a
|
|
7
|
+
# test case. Both have to get the same answer, so #will_be_retried? never changes the state of the policy.
|
|
8
|
+
class RetryPolicy
|
|
9
|
+
def initialize(max_retries, max_permanent_failures)
|
|
10
|
+
@max_retries = max_retries
|
|
11
|
+
@max_permanent_failures = max_permanent_failures
|
|
12
|
+
@retries = Hash.new(0)
|
|
13
|
+
@permanent_failures = 0
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def will_be_retried?(test_case, result)
|
|
17
|
+
return false unless result.failed?
|
|
18
|
+
return false if @permanent_failures >= @max_permanent_failures
|
|
19
|
+
|
|
20
|
+
@retries[test_case] < @max_retries
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def record_retry(test_case) = @retries[test_case] += 1
|
|
24
|
+
|
|
25
|
+
def record_permanent_failure = @permanent_failures += 1
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -5,15 +5,9 @@ require 'rspec/mocks'
|
|
|
5
5
|
World(RSpec::Mocks::ExampleMethods)
|
|
6
6
|
|
|
7
7
|
Before do
|
|
8
|
-
|
|
9
|
-
RSpec::Mocks.setup
|
|
10
|
-
else
|
|
11
|
-
RSpec::Mocks.setup(self)
|
|
12
|
-
end
|
|
8
|
+
RSpec::Mocks.setup(self)
|
|
13
9
|
end
|
|
14
10
|
|
|
15
11
|
After do
|
|
16
|
-
RSpec::Mocks.verify
|
|
17
|
-
ensure
|
|
18
12
|
RSpec::Mocks.teardown
|
|
19
13
|
end
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'timeout'
|
|
4
|
+
require 'cucumber/events/attach_called'
|
|
4
5
|
|
|
5
6
|
module Cucumber
|
|
6
7
|
class Runtime
|
|
7
8
|
module UserInterface
|
|
8
|
-
attr_writer :
|
|
9
|
+
attr_writer :configuration
|
|
9
10
|
|
|
10
11
|
# Suspends execution and prompts +question+ to the console (STDOUT).
|
|
11
12
|
# An operator (manual tester) can then enter a line of text and hit
|
|
@@ -21,6 +22,7 @@ module Cucumber
|
|
|
21
22
|
# that makes a sound before invoking #ask.
|
|
22
23
|
#
|
|
23
24
|
def ask(question, timeout_seconds)
|
|
25
|
+
Cucumber.deprecate(ask_deprecation_message, 'Cucumber::Runtime#ask (From UserInterface Module)', 'v12')
|
|
24
26
|
$stdout.puts(question)
|
|
25
27
|
$stdout.flush
|
|
26
28
|
puts(question)
|
|
@@ -41,12 +43,25 @@ module Cucumber
|
|
|
41
43
|
# be a path to a file, or if it's an image it may also be a Base64 encoded image.
|
|
42
44
|
# The embedded data may or may not be ignored, depending on what kind of formatter(s) are active.
|
|
43
45
|
#
|
|
44
|
-
def attach(src, media_type, filename
|
|
45
|
-
@
|
|
46
|
+
def attach(src, media_type, filename)
|
|
47
|
+
@configuration.notify(:attach_called, src, media_type, filename)
|
|
48
|
+
self
|
|
46
49
|
end
|
|
47
50
|
|
|
48
51
|
private
|
|
49
52
|
|
|
53
|
+
def ask_deprecation_message
|
|
54
|
+
<<~MESSAGE
|
|
55
|
+
The `#ask` method has been present in cucumber for a while, but its purpose outside of cucumber is
|
|
56
|
+
questionable. It is being deprecated and will be removed in a future version (Targeting v12).
|
|
57
|
+
|
|
58
|
+
If you are using it in your own code, you should remove the dependency on it and implement your own version
|
|
59
|
+
of it. If you are using it in a step definition, you should consider whether that is really necessary and
|
|
60
|
+
use either a conditional waiter or use a tag so that the scenario doesn't automatically run in a CI
|
|
61
|
+
environment where there is no operator to answer the question.
|
|
62
|
+
MESSAGE
|
|
63
|
+
end
|
|
64
|
+
|
|
50
65
|
def mri_gets(timeout_seconds)
|
|
51
66
|
Timeout.timeout(timeout_seconds) do
|
|
52
67
|
$stdin.gets
|
data/lib/cucumber/runtime.rb
CHANGED
|
@@ -1,52 +1,26 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'fileutils'
|
|
4
|
-
require 'cucumber/configuration'
|
|
5
|
-
require 'cucumber/load_path'
|
|
6
|
-
require 'cucumber/formatter/duration'
|
|
7
|
-
require 'cucumber/file_specs'
|
|
8
|
-
require 'cucumber/filters'
|
|
9
|
-
require 'cucumber/formatter/fanout'
|
|
10
|
-
require 'cucumber/gherkin/i18n'
|
|
11
|
-
require 'cucumber/glue/registry_wrapper'
|
|
12
|
-
require 'cucumber/step_match_search'
|
|
13
|
-
require 'cucumber/messages'
|
|
14
|
-
require 'cucumber/runtime/meta_message_builder'
|
|
15
4
|
require 'sys/uname'
|
|
16
5
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def message
|
|
20
|
-
String(super).gsub('@ rb_sysopen ', '')
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
class FileException < RuntimeError
|
|
25
|
-
attr_reader :path
|
|
26
|
-
|
|
27
|
-
def initialize(original_exception, path)
|
|
28
|
-
@path = path
|
|
29
|
-
super(original_exception)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
class FileNotFoundException < FileException
|
|
34
|
-
end
|
|
6
|
+
require 'cucumber/core'
|
|
7
|
+
require 'cucumber/messages'
|
|
35
8
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
9
|
+
require_relative 'configuration'
|
|
10
|
+
require_relative 'errors'
|
|
11
|
+
require_relative 'file_specs'
|
|
12
|
+
require_relative 'filters'
|
|
13
|
+
require_relative 'load_path'
|
|
14
|
+
require_relative 'step_match_search'
|
|
41
15
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
16
|
+
require_relative 'formatter/duration'
|
|
17
|
+
require_relative 'gherkin/i18n'
|
|
18
|
+
require_relative 'glue/registry_wrapper'
|
|
19
|
+
require_relative 'runtime/meta_message_builder'
|
|
20
|
+
require_relative 'runtime/support_code'
|
|
21
|
+
require_relative 'runtime/user_interface'
|
|
46
22
|
|
|
47
|
-
|
|
48
|
-
require 'cucumber/runtime/user_interface'
|
|
49
|
-
require 'cucumber/runtime/support_code'
|
|
23
|
+
module Cucumber
|
|
50
24
|
class Runtime
|
|
51
25
|
attr_reader :results, :support_code, :configuration
|
|
52
26
|
|
|
@@ -72,10 +46,14 @@ module Cucumber
|
|
|
72
46
|
|
|
73
47
|
load_step_definitions
|
|
74
48
|
fire_install_plugin_hook
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
49
|
+
create_formatters
|
|
50
|
+
|
|
51
|
+
options = {
|
|
52
|
+
id_generator: @configuration.id_generator,
|
|
53
|
+
backtrace_filter: Cucumber::Formatter::BacktraceFilter,
|
|
54
|
+
retry_policy: @configuration.retry_policy
|
|
55
|
+
}
|
|
56
|
+
receiver = Test::Runner.new(@configuration.event_bus, **options)
|
|
79
57
|
compile features, receiver, filters, @configuration.event_bus
|
|
80
58
|
fire_after_all_hook unless dry_run?
|
|
81
59
|
@configuration.notify :test_run_finished, !failure?
|
|
@@ -111,7 +89,7 @@ module Cucumber
|
|
|
111
89
|
if @configuration.wip?
|
|
112
90
|
summary_report.test_cases.total_passed.positive?
|
|
113
91
|
else
|
|
114
|
-
!summary_report.ok?
|
|
92
|
+
!summary_report.ok? || !global_hooks_summary_report.ok?
|
|
115
93
|
end
|
|
116
94
|
end
|
|
117
95
|
|
|
@@ -198,13 +176,16 @@ module Cucumber
|
|
|
198
176
|
require 'cucumber/formatter/publish_banner_printer'
|
|
199
177
|
require 'cucumber/core/report/summary'
|
|
200
178
|
|
|
201
|
-
def
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
179
|
+
def create_formatters
|
|
180
|
+
# Define the MessageBuilder - Required until all messages are generated at the source
|
|
181
|
+
message_builder
|
|
182
|
+
# `summary_report` and `global_hooks_summary_report` are used to determine the exit code
|
|
183
|
+
summary_report
|
|
184
|
+
global_hooks_summary_report
|
|
185
|
+
# Define all formatters which are specified via cli options
|
|
186
|
+
formatters
|
|
187
|
+
fail_fast_report if @configuration.fail_fast?
|
|
188
|
+
publish_banner_printer unless @configuration.publish_quiet?
|
|
208
189
|
end
|
|
209
190
|
|
|
210
191
|
def message_builder
|
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:
|
|
4
|
+
version: 12.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aslak Hellesøy
|
|
@@ -49,7 +49,7 @@ dependencies:
|
|
|
49
49
|
version: '9'
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '
|
|
52
|
+
version: '14'
|
|
53
53
|
type: :runtime
|
|
54
54
|
prerelease: false
|
|
55
55
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -59,27 +59,27 @@ dependencies:
|
|
|
59
59
|
version: '9'
|
|
60
60
|
- - "<"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '
|
|
62
|
+
version: '14'
|
|
63
63
|
- !ruby/object:Gem::Dependency
|
|
64
64
|
name: cucumber-core
|
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
67
|
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version:
|
|
69
|
+
version: '20'
|
|
70
70
|
- - "<"
|
|
71
71
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: '
|
|
72
|
+
version: '21'
|
|
73
73
|
type: :runtime
|
|
74
74
|
prerelease: false
|
|
75
75
|
version_requirements: !ruby/object:Gem::Requirement
|
|
76
76
|
requirements:
|
|
77
77
|
- - ">="
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
|
-
version:
|
|
79
|
+
version: '20'
|
|
80
80
|
- - "<"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
82
|
+
version: '21'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: cucumber-cucumber-expressions
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -89,7 +89,7 @@ dependencies:
|
|
|
89
89
|
version: '17'
|
|
90
90
|
- - "<"
|
|
91
91
|
- !ruby/object:Gem::Version
|
|
92
|
-
version: '
|
|
92
|
+
version: '21'
|
|
93
93
|
type: :runtime
|
|
94
94
|
prerelease: false
|
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -99,7 +99,7 @@ dependencies:
|
|
|
99
99
|
version: '17'
|
|
100
100
|
- - "<"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
102
|
+
version: '21'
|
|
103
103
|
- !ruby/object:Gem::Dependency
|
|
104
104
|
name: cucumber-html-formatter
|
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,7 +109,7 @@ dependencies:
|
|
|
109
109
|
version: '21'
|
|
110
110
|
- - "<"
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: '
|
|
112
|
+
version: '25'
|
|
113
113
|
type: :runtime
|
|
114
114
|
prerelease: false
|
|
115
115
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -119,21 +119,41 @@ dependencies:
|
|
|
119
119
|
version: '21'
|
|
120
120
|
- - "<"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '
|
|
122
|
+
version: '25'
|
|
123
123
|
- !ruby/object:Gem::Dependency
|
|
124
|
-
name:
|
|
124
|
+
name: cucumber-query
|
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
|
126
126
|
requirements:
|
|
127
127
|
- - "~>"
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: '1
|
|
129
|
+
version: '16.1'
|
|
130
130
|
type: :runtime
|
|
131
131
|
prerelease: false
|
|
132
132
|
version_requirements: !ruby/object:Gem::Requirement
|
|
133
133
|
requirements:
|
|
134
134
|
- - "~>"
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
version: '16.1'
|
|
137
|
+
- !ruby/object:Gem::Dependency
|
|
138
|
+
name: diff-lcs
|
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
|
140
|
+
requirements:
|
|
141
|
+
- - ">="
|
|
135
142
|
- !ruby/object:Gem::Version
|
|
136
143
|
version: '1.5'
|
|
144
|
+
- - "<"
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: '3.0'
|
|
147
|
+
type: :runtime
|
|
148
|
+
prerelease: false
|
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: '1.5'
|
|
154
|
+
- - "<"
|
|
155
|
+
- !ruby/object:Gem::Version
|
|
156
|
+
version: '3.0'
|
|
137
157
|
- !ruby/object:Gem::Dependency
|
|
138
158
|
name: logger
|
|
139
159
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -166,16 +186,22 @@ dependencies:
|
|
|
166
186
|
name: multi_test
|
|
167
187
|
requirement: !ruby/object:Gem::Requirement
|
|
168
188
|
requirements:
|
|
169
|
-
- - "
|
|
189
|
+
- - ">"
|
|
170
190
|
- !ruby/object:Gem::Version
|
|
171
|
-
version: '1
|
|
191
|
+
version: '1'
|
|
192
|
+
- - "<"
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '4'
|
|
172
195
|
type: :runtime
|
|
173
196
|
prerelease: false
|
|
174
197
|
version_requirements: !ruby/object:Gem::Requirement
|
|
175
198
|
requirements:
|
|
176
|
-
- - "
|
|
199
|
+
- - ">"
|
|
177
200
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: '1
|
|
201
|
+
version: '1'
|
|
202
|
+
- - "<"
|
|
203
|
+
- !ruby/object:Gem::Version
|
|
204
|
+
version: '4'
|
|
179
205
|
- !ruby/object:Gem::Dependency
|
|
180
206
|
name: sys-uname
|
|
181
207
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -196,14 +222,14 @@ dependencies:
|
|
|
196
222
|
requirements:
|
|
197
223
|
- - "~>"
|
|
198
224
|
- !ruby/object:Gem::Version
|
|
199
|
-
version: '
|
|
225
|
+
version: '26.0'
|
|
200
226
|
type: :development
|
|
201
227
|
prerelease: false
|
|
202
228
|
version_requirements: !ruby/object:Gem::Requirement
|
|
203
229
|
requirements:
|
|
204
230
|
- - "~>"
|
|
205
231
|
- !ruby/object:Gem::Version
|
|
206
|
-
version: '
|
|
232
|
+
version: '26.0'
|
|
207
233
|
- !ruby/object:Gem::Dependency
|
|
208
234
|
name: nokogiri
|
|
209
235
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -353,7 +379,7 @@ files:
|
|
|
353
379
|
- lib/cucumber/encoding.rb
|
|
354
380
|
- lib/cucumber/errors.rb
|
|
355
381
|
- lib/cucumber/events.rb
|
|
356
|
-
- lib/cucumber/events/
|
|
382
|
+
- lib/cucumber/events/attach_called.rb
|
|
357
383
|
- lib/cucumber/events/envelope.rb
|
|
358
384
|
- lib/cucumber/events/gherkin_source_parsed.rb
|
|
359
385
|
- lib/cucumber/events/gherkin_source_read.rb
|
|
@@ -402,7 +428,6 @@ files:
|
|
|
402
428
|
- lib/cucumber/formatter/duration.rb
|
|
403
429
|
- lib/cucumber/formatter/duration_extractor.rb
|
|
404
430
|
- lib/cucumber/formatter/fail_fast.rb
|
|
405
|
-
- lib/cucumber/formatter/fanout.rb
|
|
406
431
|
- lib/cucumber/formatter/global_hooks_summary.rb
|
|
407
432
|
- lib/cucumber/formatter/html.rb
|
|
408
433
|
- lib/cucumber/formatter/http_io.rb
|
|
@@ -414,6 +439,7 @@ files:
|
|
|
414
439
|
- lib/cucumber/formatter/junit.rb
|
|
415
440
|
- lib/cucumber/formatter/message.rb
|
|
416
441
|
- lib/cucumber/formatter/message_builder.rb
|
|
442
|
+
- lib/cucumber/formatter/message_handlers.rb
|
|
417
443
|
- lib/cucumber/formatter/pretty.rb
|
|
418
444
|
- lib/cucumber/formatter/progress.rb
|
|
419
445
|
- lib/cucumber/formatter/publish_banner_printer.rb
|
|
@@ -433,6 +459,8 @@ files:
|
|
|
433
459
|
- lib/cucumber/glue/dsl.rb
|
|
434
460
|
- lib/cucumber/glue/hook.rb
|
|
435
461
|
- lib/cucumber/glue/invoke_in_world.rb
|
|
462
|
+
- lib/cucumber/glue/multiple_world.rb
|
|
463
|
+
- lib/cucumber/glue/nil_world.rb
|
|
436
464
|
- lib/cucumber/glue/proto_world.rb
|
|
437
465
|
- lib/cucumber/glue/registry_and_more.rb
|
|
438
466
|
- lib/cucumber/glue/registry_wrapper.rb
|
|
@@ -447,12 +475,11 @@ files:
|
|
|
447
475
|
- lib/cucumber/multiline_argument/doc_string.rb
|
|
448
476
|
- lib/cucumber/platform.rb
|
|
449
477
|
- lib/cucumber/project_initializer.rb
|
|
450
|
-
- lib/cucumber/query.rb
|
|
451
478
|
- lib/cucumber/rake.rb
|
|
452
479
|
- lib/cucumber/rake/forked_cucumber_runner.rb
|
|
453
480
|
- lib/cucumber/rake/in_process_cucumber_runner.rb
|
|
454
481
|
- lib/cucumber/rake/task.rb
|
|
455
|
-
- lib/cucumber/
|
|
482
|
+
- lib/cucumber/retry_policy.rb
|
|
456
483
|
- lib/cucumber/rspec/disable_option_parser.rb
|
|
457
484
|
- lib/cucumber/rspec/doubles.rb
|
|
458
485
|
- lib/cucumber/running_test_case.rb
|
|
@@ -489,14 +516,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
489
516
|
requirements:
|
|
490
517
|
- - ">="
|
|
491
518
|
- !ruby/object:Gem::Version
|
|
492
|
-
version: '3.
|
|
519
|
+
version: '3.3'
|
|
493
520
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
494
521
|
requirements:
|
|
495
522
|
- - ">="
|
|
496
523
|
- !ruby/object:Gem::Version
|
|
497
524
|
version: 3.2.8
|
|
498
525
|
requirements: []
|
|
499
|
-
rubygems_version: 4.0.
|
|
526
|
+
rubygems_version: 4.0.16
|
|
500
527
|
specification_version: 4
|
|
501
|
-
summary: cucumber-
|
|
528
|
+
summary: cucumber-12.0.0
|
|
502
529
|
test_files: []
|
data/lib/cucumber/events/base.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# TODO: Remove this class and use Cucumber::Core::Event::Base once v17 of core is minimum
|
|
4
|
-
module Cucumber
|
|
5
|
-
module Events
|
|
6
|
-
# An archetype of what each Cucumber Event defined in cucumber-ruby must adhere to
|
|
7
|
-
class Base
|
|
8
|
-
# The "key" name of the class to be used as the key in the event registry (Underscored name symbolized)
|
|
9
|
-
# @return [Symbol]
|
|
10
|
-
def self.event_id
|
|
11
|
-
raise 'Must be implemented in subclass'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# The properties of each event. Stored in iVar named format - where the key is the name of the iVar
|
|
15
|
-
# @return [Hash<Symbol>]
|
|
16
|
-
def to_h
|
|
17
|
-
instance_variables.to_h { |variable_name| [variable_name[1..].to_sym, instance_variable_get(variable_name)] }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def event_id
|
|
21
|
-
self.class.event_id
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Cucumber
|
|
4
|
-
module Formatter
|
|
5
|
-
# Forwards any messages sent to this object to all recipients
|
|
6
|
-
# that respond to that message.
|
|
7
|
-
class Fanout < BasicObject
|
|
8
|
-
attr_reader :recipients
|
|
9
|
-
private :recipients
|
|
10
|
-
|
|
11
|
-
def initialize(recipients)
|
|
12
|
-
@recipients = recipients
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def method_missing(message, *args)
|
|
16
|
-
super unless recipients
|
|
17
|
-
|
|
18
|
-
recipients.each do |recipient|
|
|
19
|
-
recipient.send(message, *args) if recipient.respond_to?(message)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def respond_to_missing?(name, include_private = false)
|
|
24
|
-
recipients.any? { |recipient| recipient.respond_to?(name, include_private) } || super(name, include_private)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|