cucumber-core 18.0.0 → 19.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/CHANGELOG.md +16 -8
- data/README.md +1 -5
- data/lib/cucumber/core/{events → event}/base.rb +1 -1
- data/lib/cucumber/core/{events → event}/envelope.rb +1 -1
- data/lib/cucumber/core/{events → event}/gherkin_source_parsed.rb +1 -1
- data/lib/cucumber/core/{events → event}/test_case_created.rb +1 -1
- data/lib/cucumber/core/{events → event}/test_case_finished.rb +2 -2
- data/lib/cucumber/core/{events → event}/test_case_started.rb +1 -1
- data/lib/cucumber/core/{events → event}/test_step_created.rb +1 -1
- data/lib/cucumber/core/{events → event}/test_step_finished.rb +1 -1
- data/lib/cucumber/core/{events → event}/test_step_started.rb +1 -1
- data/lib/cucumber/core/event.rb +8 -59
- data/lib/cucumber/core/event_bus.rb +24 -2
- data/lib/cucumber/core/test/runner.rb +101 -5
- metadata +22 -23
- data/lib/cucumber/core/events.rb +0 -38
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 25b931cc726aa46d40c838941a4a033fd70a34ef4899884750e86e9ad2a0f1b3
|
|
4
|
+
data.tar.gz: d4f808dfc9dc0106e96b1fb6754df766f18a1248914323e89fe32c9a5eee6202
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8a0428cdbc69794d04b068fc6b72a83026cb8b08959c91153fc4c3b71b44062e442e5842dcef7b3dc8af424daa6c7dbebcce9fe13258ee4cc51a1aa6b9b798b6
|
|
7
|
+
data.tar.gz: ae12323897fe7bb9b0f1bad297dadf5a2be335f5eb187a1093317350e5bd6211dac5cb93c1bafcca50610a5366571e9b85cb512363567471973ddbbf55bbcdd0
|
data/CHANGELOG.md
CHANGED
|
@@ -10,8 +10,20 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [19.0.0] - 2026-08-19
|
|
14
|
+
### Added
|
|
15
|
+
- Emit test_case_started/finished and test_step_started/test_step_finished envelopes from the Runner. ([#331](https://github.com/cucumber/cucumber-ruby-core/pull/331))
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Increased upper bounds of `cucumber-messages` to v34 and `cucumber-gherkin` to v42
|
|
19
|
+
- **BREAKING CHANGE:** Event base class has been internally refactored. See upgrading notes for [19.0.0.md](upgrading_notes/19.0.0.md#upgrading-to-cucumber-core-1900), for full changes
|
|
20
|
+
- Permit usage of `cucumber-tag-expressions` up to v11
|
|
21
|
+
|
|
13
22
|
## [18.0.0] - 2026-07-13
|
|
14
23
|
### Changed
|
|
24
|
+
- **BREAKING CHANGE:** Structure of Gherkin writer helpers have been changed. Now one helper per file, and all helpers are still available by requiring `gherkin/writer/helpers`.
|
|
25
|
+
See upgrading notes for [18.0.0.md](upgrading_notes/18.0.0.md#upgrading-to-cucumber-core-1800), for full changes
|
|
26
|
+
- **BREAKING CHANGE:** Flaky results are now treated as a passing state. See upgrading notes for [18.0.0.md](upgrading_notes/18.0.0.md#upgrading-to-cucumber-core-1800), for full changes
|
|
15
27
|
- Tidied up a bunch of mostly internal test code to be more rubocop compliant
|
|
16
28
|
|
|
17
29
|
## [17.0.0] - 2026-06-01
|
|
@@ -91,6 +103,8 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
|
|
|
91
103
|
|
|
92
104
|
## [14.0.0] - 2024-08-08
|
|
93
105
|
### Changed
|
|
106
|
+
- **BREAKING CHANGE:** Structure of `Action` classes have changed. See upgrading notes for [14.0.0.md](upgrading_notes/14.0.0.md#upgrading-to-cucumber-core-1400)
|
|
107
|
+
([#282](https://github.com/cucumber/cucumber-ruby-core/pull/282))
|
|
94
108
|
- Permit usage of gherkin up to v29 and messages up to v26
|
|
95
109
|
|
|
96
110
|
### Removed
|
|
@@ -150,7 +164,8 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucum
|
|
|
150
164
|
### Changed
|
|
151
165
|
- Updated `cucumber-gherkin` and `cucumber-messages`
|
|
152
166
|
|
|
153
|
-
[Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/
|
|
167
|
+
[Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v19.0.0...HEAD
|
|
168
|
+
[19.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v18.0.0...v19.0.0
|
|
154
169
|
[18.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v17.0.0...v18.0.0
|
|
155
170
|
[17.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v16.2.0...v17.0.0
|
|
156
171
|
[16.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v16.1.1...v16.2.0
|
|
@@ -171,10 +186,3 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucum
|
|
|
171
186
|
[12.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.1.0...v12.0.0
|
|
172
187
|
[11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...v11.1.0
|
|
173
188
|
[11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
|
|
174
|
-
.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.2...v13.0.3
|
|
175
|
-
[13.0.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.1...v13.0.2
|
|
176
|
-
[13.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v13.0.0...v13.0.1
|
|
177
|
-
[13.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v12.0.0...v13.0.0
|
|
178
|
-
[12.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.1.0...v12.0.0
|
|
179
|
-
[11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...v11.1.0
|
|
180
|
-
[11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
|
data/README.md
CHANGED
|
@@ -45,11 +45,7 @@ or install the gem directly:
|
|
|
45
45
|
|
|
46
46
|
### Supported platforms
|
|
47
47
|
|
|
48
|
-
-
|
|
49
|
-
- Ruby 3.2
|
|
50
|
-
- Ruby 3.1
|
|
51
|
-
- Ruby 3.0
|
|
52
|
-
- JRuby 9.4 (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/main/docs/jruby-limitations.md))
|
|
48
|
+
Supported Platforms are detailed in the [cucumber-ruby repository](https://github.com/cucumber/cucumber-ruby#supported-platforms).
|
|
53
49
|
|
|
54
50
|
## Usage
|
|
55
51
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Cucumber
|
|
4
4
|
module Core
|
|
5
|
-
module
|
|
5
|
+
module Event
|
|
6
6
|
# An archetype of what each Cucumber Event defined in cucumber-ruby must adhere to
|
|
7
7
|
class Base
|
|
8
8
|
# The "key" name of the class to be used as the key in the event registry (Underscored name symbolized)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative '
|
|
3
|
+
require_relative 'base'
|
|
4
4
|
|
|
5
5
|
module Cucumber
|
|
6
6
|
module Core
|
|
7
|
-
module
|
|
7
|
+
module Event
|
|
8
8
|
# Signals that a {Test::Case} has finished executing
|
|
9
9
|
class TestCaseFinished < Base
|
|
10
10
|
# @return [Test::Case] that was executed
|
data/lib/cucumber/core/event.rb
CHANGED
|
@@ -1,61 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Class.new(Event) do
|
|
12
|
-
# NB: We need to use metaprogramming here instead of direct variable obtainment
|
|
13
|
-
# because JRuby does not guarantee the order in which variables are defined is equivalent
|
|
14
|
-
# to the order in which they are obtainable
|
|
15
|
-
#
|
|
16
|
-
# See https://github.com/jruby/jruby/issues/7988 for more info
|
|
17
|
-
attr_reader(*events)
|
|
18
|
-
|
|
19
|
-
define_method(:initialize) do |*attributes|
|
|
20
|
-
events.zip(attributes) do |name, value|
|
|
21
|
-
instance_variable_set(:"@#{name}", value)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def to_h
|
|
28
|
-
instance_variables.to_h do |variable_name|
|
|
29
|
-
[variable_name[1..].to_sym, instance_variable_get(variable_name)]
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def attributes
|
|
34
|
-
instance_variables.map { |var| instance_variable_get(var) }
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def event_id
|
|
38
|
-
self.class.event_id
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
class << self
|
|
42
|
-
# @return [Symbol] the underscored name of the class to be used as the key in an event registry
|
|
43
|
-
def event_id
|
|
44
|
-
underscore(name.split('::').last).to_sym
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
private
|
|
48
|
-
|
|
49
|
-
def underscore(string)
|
|
50
|
-
string
|
|
51
|
-
.to_s
|
|
52
|
-
.gsub('::', '/')
|
|
53
|
-
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
54
|
-
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
55
|
-
.tr('-', '_')
|
|
56
|
-
.downcase
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
3
|
+
require_relative 'event/envelope'
|
|
4
|
+
require_relative 'event/gherkin_source_parsed'
|
|
5
|
+
require_relative 'event/test_case_created'
|
|
6
|
+
require_relative 'event/test_case_started'
|
|
7
|
+
require_relative 'event/test_case_finished'
|
|
8
|
+
require_relative 'event/test_step_created'
|
|
9
|
+
require_relative 'event/test_step_started'
|
|
10
|
+
require_relative 'event/test_step_finished'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative '
|
|
3
|
+
require_relative 'event'
|
|
4
4
|
|
|
5
5
|
module Cucumber
|
|
6
6
|
module Core
|
|
@@ -11,8 +11,30 @@ module Cucumber
|
|
|
11
11
|
class EventBus
|
|
12
12
|
attr_reader :event_types
|
|
13
13
|
|
|
14
|
+
# The registry contains all the event registered in the core, that will be used by the {EventBus} by default.
|
|
15
|
+
def self.registry
|
|
16
|
+
build_registry(
|
|
17
|
+
Event::Envelope,
|
|
18
|
+
Event::GherkinSourceParsed,
|
|
19
|
+
Event::TestCaseCreated,
|
|
20
|
+
Event::TestCaseStarted,
|
|
21
|
+
Event::TestCaseFinished,
|
|
22
|
+
Event::TestStepCreated,
|
|
23
|
+
Event::TestStepStarted,
|
|
24
|
+
Event::TestStepFinished
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Build an event registry to be passed to the {EventBus} constructor from a list of types.
|
|
29
|
+
# Each type must respond to `event_id` so that it can be added to the registry hash
|
|
30
|
+
#
|
|
31
|
+
# @return [Hash{Symbol => Class}]
|
|
32
|
+
def self.build_registry(*types)
|
|
33
|
+
types.to_h { |type| [type.event_id, type] }
|
|
34
|
+
end
|
|
35
|
+
|
|
14
36
|
# @param registry [Hash{Symbol => Class}] a hash of event types to use on the bus
|
|
15
|
-
def initialize(registry =
|
|
37
|
+
def initialize(registry = self.class.registry)
|
|
16
38
|
@event_types = registry.freeze
|
|
17
39
|
@handlers = {}
|
|
18
40
|
@event_queue = []
|
|
@@ -3,34 +3,51 @@
|
|
|
3
3
|
require 'cucumber/messages/helpers/test_step_result_comparator'
|
|
4
4
|
|
|
5
5
|
require_relative 'timer'
|
|
6
|
+
require 'cucumber/messages'
|
|
6
7
|
|
|
7
8
|
module Cucumber
|
|
8
9
|
module Core
|
|
9
10
|
module Test
|
|
10
11
|
class Runner
|
|
11
|
-
|
|
12
|
-
private :event_bus, :running_test_case, :running_test_step
|
|
12
|
+
include Cucumber::Messages::Helpers::TimeConversion
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
attr_reader :event_bus, :running_test_case, :running_test_step, :id_generator
|
|
15
|
+
private :event_bus, :running_test_case, :running_test_step, :id_generator
|
|
16
|
+
|
|
17
|
+
def initialize(event_bus, id_generator = Cucumber::Messages::Helpers::IdGenerator::UUID.new, backtrace_filter = nil, max_attempts = 1)
|
|
15
18
|
@event_bus = event_bus
|
|
19
|
+
@id_generator = id_generator
|
|
20
|
+
@backtrace_filter = backtrace_filter
|
|
21
|
+
@max_attempts = max_attempts
|
|
22
|
+
@current_test_case = nil
|
|
16
23
|
end
|
|
17
24
|
|
|
18
25
|
def test_case(test_case, &descend)
|
|
26
|
+
@attempt = @current_test_case == test_case ? @attempt + 1 : 1
|
|
27
|
+
@current_test_case = test_case
|
|
28
|
+
@current_test_case_started_id = id_generator.new_id
|
|
19
29
|
@running_test_case = RunningTestCase.new
|
|
20
30
|
@running_test_step = nil
|
|
21
31
|
event_bus.test_case_started(test_case)
|
|
32
|
+
event_bus.envelope(to_test_case_started_envelope(test_case))
|
|
33
|
+
|
|
22
34
|
descend.call(self)
|
|
23
|
-
|
|
24
|
-
result =
|
|
35
|
+
|
|
36
|
+
result = calculate_test_case_result(test_case)
|
|
25
37
|
event_bus.test_case_finished(test_case, result)
|
|
38
|
+
event_bus.envelope(to_test_case_finished_envelope(result))
|
|
26
39
|
self
|
|
27
40
|
end
|
|
28
41
|
|
|
29
42
|
def test_step(test_step)
|
|
30
43
|
@running_test_step = test_step
|
|
31
44
|
event_bus.test_step_started test_step
|
|
45
|
+
event_bus.envelope(to_test_step_started_envelope(test_step))
|
|
46
|
+
|
|
32
47
|
step_result = running_test_case.execute(test_step)
|
|
48
|
+
|
|
33
49
|
event_bus.test_step_finished test_step, step_result
|
|
50
|
+
event_bus.envelope(to_test_step_finished_envelope(test_step, step_result))
|
|
34
51
|
@running_test_step = nil
|
|
35
52
|
self
|
|
36
53
|
end
|
|
@@ -46,6 +63,85 @@ module Cucumber
|
|
|
46
63
|
self
|
|
47
64
|
end
|
|
48
65
|
|
|
66
|
+
def calculate_test_case_result(test_case)
|
|
67
|
+
if running_test_case.result.unknown?
|
|
68
|
+
Result::Undefined.new('The test case has no steps', Result::UnknownDuration.new, ["#{test_case.location}:in `#{test_case.name}'"])
|
|
69
|
+
else
|
|
70
|
+
running_test_case.result
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def to_test_case_started_envelope(test_case)
|
|
75
|
+
Cucumber::Messages::Envelope.new(
|
|
76
|
+
test_case_started: Cucumber::Messages::TestCaseStarted.new(
|
|
77
|
+
id: @current_test_case_started_id,
|
|
78
|
+
test_case_id: test_case.id,
|
|
79
|
+
timestamp: time_to_timestamp(Time.now),
|
|
80
|
+
attempt: @attempt
|
|
81
|
+
)
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def to_test_case_finished_envelope(result)
|
|
86
|
+
Cucumber::Messages::Envelope.new(
|
|
87
|
+
test_case_finished: Cucumber::Messages::TestCaseFinished.new(
|
|
88
|
+
test_case_started_id: @current_test_case_started_id,
|
|
89
|
+
timestamp: time_to_timestamp(Time.now),
|
|
90
|
+
will_be_retried: result.failed? && (@attempt < @max_attempts)
|
|
91
|
+
)
|
|
92
|
+
)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def to_test_step_started_envelope(test_step)
|
|
96
|
+
Cucumber::Messages::Envelope.new(
|
|
97
|
+
test_step_started: Cucumber::Messages::TestStepStarted.new(
|
|
98
|
+
test_step_id: test_step.id,
|
|
99
|
+
test_case_started_id: @current_test_case_started_id,
|
|
100
|
+
timestamp: time_to_timestamp(Time.now)
|
|
101
|
+
)
|
|
102
|
+
)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def to_test_step_finished_envelope(test_step, step_result)
|
|
106
|
+
result = @backtrace_filter.nil? ? step_result : step_result.with_filtered_backtrace(@backtrace_filter)
|
|
107
|
+
result_message = result.to_message
|
|
108
|
+
if result.failed? || result.pending?
|
|
109
|
+
message_element = result.failed? ? result.exception : result
|
|
110
|
+
|
|
111
|
+
result_message = Cucumber::Messages::TestStepResult.new(
|
|
112
|
+
status: result_message.status,
|
|
113
|
+
duration: result_message.duration,
|
|
114
|
+
message: to_error_message(message_element),
|
|
115
|
+
exception: to_exception_object(result, message_element)
|
|
116
|
+
)
|
|
117
|
+
end
|
|
118
|
+
Cucumber::Messages::Envelope.new(
|
|
119
|
+
test_step_finished: Cucumber::Messages::TestStepFinished.new(
|
|
120
|
+
test_step_id: test_step.id,
|
|
121
|
+
test_case_started_id: @current_test_case_started_id,
|
|
122
|
+
test_step_result: result_message,
|
|
123
|
+
timestamp: time_to_timestamp(Time.now)
|
|
124
|
+
)
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def to_error_message(message_element)
|
|
129
|
+
<<~ERROR_MESSAGE
|
|
130
|
+
#{message_element.message} (#{message_element.class})
|
|
131
|
+
#{message_element.backtrace}
|
|
132
|
+
ERROR_MESSAGE
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def to_exception_object(result, message_element)
|
|
136
|
+
return unless result.failed?
|
|
137
|
+
|
|
138
|
+
Cucumber::Messages::Exception.new(
|
|
139
|
+
type: message_element.class,
|
|
140
|
+
message: message_element.message,
|
|
141
|
+
stack_trace: message_element.backtrace.join("\n")
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
|
|
49
145
|
class RunningTestCase
|
|
50
146
|
include Cucumber::Messages::Helpers::TestStepResultComparator
|
|
51
147
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cucumber-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 19.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aslak Hellesøy
|
|
@@ -22,7 +22,7 @@ dependencies:
|
|
|
22
22
|
version: '36'
|
|
23
23
|
- - "<"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
25
|
+
version: '43'
|
|
26
26
|
type: :runtime
|
|
27
27
|
prerelease: false
|
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
version: '36'
|
|
33
33
|
- - "<"
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: '
|
|
35
|
+
version: '43'
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: cucumber-messages
|
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -42,7 +42,7 @@ dependencies:
|
|
|
42
42
|
version: '31'
|
|
43
43
|
- - "<"
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: '
|
|
45
|
+
version: '35'
|
|
46
46
|
type: :runtime
|
|
47
47
|
prerelease: false
|
|
48
48
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -52,7 +52,7 @@ dependencies:
|
|
|
52
52
|
version: '31'
|
|
53
53
|
- - "<"
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
55
|
+
version: '35'
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
57
|
name: cucumber-tag-expressions
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -62,7 +62,7 @@ dependencies:
|
|
|
62
62
|
version: '6'
|
|
63
63
|
- - "<"
|
|
64
64
|
- !ruby/object:Gem::Version
|
|
65
|
-
version: '
|
|
65
|
+
version: '12'
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -72,7 +72,7 @@ dependencies:
|
|
|
72
72
|
version: '6'
|
|
73
73
|
- - "<"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
75
|
+
version: '12'
|
|
76
76
|
- !ruby/object:Gem::Dependency
|
|
77
77
|
name: rake
|
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -107,14 +107,14 @@ dependencies:
|
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 1.
|
|
110
|
+
version: 1.89.0
|
|
111
111
|
type: :development
|
|
112
112
|
prerelease: false
|
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 1.
|
|
117
|
+
version: 1.89.0
|
|
118
118
|
- !ruby/object:Gem::Dependency
|
|
119
119
|
name: rubocop-packaging
|
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -149,14 +149,14 @@ dependencies:
|
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 3.
|
|
152
|
+
version: 3.10.2
|
|
153
153
|
type: :development
|
|
154
154
|
prerelease: false
|
|
155
155
|
version_requirements: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
157
|
- - "~>"
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 3.
|
|
159
|
+
version: 3.10.2
|
|
160
160
|
description: Core library for the Cucumber BDD app
|
|
161
161
|
email: cukes@googlegroups.com
|
|
162
162
|
executables: []
|
|
@@ -169,17 +169,16 @@ files:
|
|
|
169
169
|
- lib/cucumber/core.rb
|
|
170
170
|
- lib/cucumber/core/compiler.rb
|
|
171
171
|
- lib/cucumber/core/event.rb
|
|
172
|
+
- lib/cucumber/core/event/base.rb
|
|
173
|
+
- lib/cucumber/core/event/envelope.rb
|
|
174
|
+
- lib/cucumber/core/event/gherkin_source_parsed.rb
|
|
175
|
+
- lib/cucumber/core/event/test_case_created.rb
|
|
176
|
+
- lib/cucumber/core/event/test_case_finished.rb
|
|
177
|
+
- lib/cucumber/core/event/test_case_started.rb
|
|
178
|
+
- lib/cucumber/core/event/test_step_created.rb
|
|
179
|
+
- lib/cucumber/core/event/test_step_finished.rb
|
|
180
|
+
- lib/cucumber/core/event/test_step_started.rb
|
|
172
181
|
- lib/cucumber/core/event_bus.rb
|
|
173
|
-
- lib/cucumber/core/events.rb
|
|
174
|
-
- lib/cucumber/core/events/base.rb
|
|
175
|
-
- lib/cucumber/core/events/envelope.rb
|
|
176
|
-
- lib/cucumber/core/events/gherkin_source_parsed.rb
|
|
177
|
-
- lib/cucumber/core/events/test_case_created.rb
|
|
178
|
-
- lib/cucumber/core/events/test_case_finished.rb
|
|
179
|
-
- lib/cucumber/core/events/test_case_started.rb
|
|
180
|
-
- lib/cucumber/core/events/test_step_created.rb
|
|
181
|
-
- lib/cucumber/core/events/test_step_finished.rb
|
|
182
|
-
- lib/cucumber/core/events/test_step_started.rb
|
|
183
182
|
- lib/cucumber/core/filter.rb
|
|
184
183
|
- lib/cucumber/core/gherkin/document.rb
|
|
185
184
|
- lib/cucumber/core/gherkin/parser.rb
|
|
@@ -261,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
261
260
|
- !ruby/object:Gem::Version
|
|
262
261
|
version: 3.2.8
|
|
263
262
|
requirements: []
|
|
264
|
-
rubygems_version: 4.0.
|
|
263
|
+
rubygems_version: 4.0.16
|
|
265
264
|
specification_version: 4
|
|
266
|
-
summary: cucumber-core-
|
|
265
|
+
summary: cucumber-core-19.0.0
|
|
267
266
|
test_files: []
|
data/lib/cucumber/core/events.rb
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'events/envelope'
|
|
4
|
-
require_relative 'events/gherkin_source_parsed'
|
|
5
|
-
require_relative 'events/test_case_created'
|
|
6
|
-
require_relative 'events/test_case_started'
|
|
7
|
-
require_relative 'events/test_case_finished'
|
|
8
|
-
require_relative 'events/test_step_created'
|
|
9
|
-
require_relative 'events/test_step_started'
|
|
10
|
-
require_relative 'events/test_step_finished'
|
|
11
|
-
|
|
12
|
-
module Cucumber
|
|
13
|
-
module Core
|
|
14
|
-
module Events
|
|
15
|
-
# The registry contains all the events registered in the core, that will be used by the {EventBus} by default.
|
|
16
|
-
def self.registry
|
|
17
|
-
build_registry(
|
|
18
|
-
Envelope,
|
|
19
|
-
GherkinSourceParsed,
|
|
20
|
-
TestCaseCreated,
|
|
21
|
-
TestCaseStarted,
|
|
22
|
-
TestCaseFinished,
|
|
23
|
-
TestStepCreated,
|
|
24
|
-
TestStepStarted,
|
|
25
|
-
TestStepFinished
|
|
26
|
-
)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# Build an event registry to be passed to the {EventBus} constructor from a list of types.
|
|
30
|
-
# Each type must respond to `event_id` so that it can be added to the registry hash
|
|
31
|
-
#
|
|
32
|
-
# @return [Hash{Symbol => Class}]
|
|
33
|
-
def self.build_registry(*types)
|
|
34
|
-
types.to_h { |type| [type.event_id, type] }
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|