cucumber-core 19.0.0 → 20.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 +12 -1
- data/README.md +1 -2
- data/lib/cucumber/core/test/no_retries.rb +11 -0
- data/lib/cucumber/core/test/runner.rb +8 -5
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3bd84b9a07bbf230ece3ada9777d26e770e14ca4177f9d402d42b787161bb428
|
|
4
|
+
data.tar.gz: a8a9d63be60d9ce6730a9051e3baf4d2e1f31603a9f7d5f1a6d422b3acf26e53
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 982d630ac7ea748ba08618bf3e0b4c42f6b9b9d01715772a28087610abc3bb1e7acd5ddf2d47e82ba2bf4bb01912f9e314ebbebfa6301e8b3fa3333dd2413a9a
|
|
7
|
+
data.tar.gz: cbf97dd45ce2b701f652a0ece83419ae1d798f6a167989b4f312197b24fec540ab2518a77d0ce42885c34ffdf7c4b27cd77ef53d26f781e9810774e202a44e7a
|
data/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,16 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [20.0.0] - 2026-10-09
|
|
14
|
+
### Changed
|
|
15
|
+
- **BREAKING CHANGE:** `Cucumber::Core::Test::Runner` now takes a retry policy instead of a maximum number of attempts, and
|
|
16
|
+
asks it whether a finished test case will be retried. Its optional constructor arguments became keyword arguments. See upgrading notes for
|
|
17
|
+
[20.0.0.md](upgrading_notes/20.0.0.md#upgrading-to-cucumber-core-2000), for full changes
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- The `TestCaseFinished` envelope is now emitted before the `test_case_finished` event, so a test case retried from
|
|
21
|
+
that event no longer has its envelope emitted out of order and with the started id of the retry
|
|
22
|
+
|
|
13
23
|
## [19.0.0] - 2026-08-19
|
|
14
24
|
### Added
|
|
15
25
|
- 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))
|
|
@@ -164,7 +174,8 @@ See upgrading notes for [13.0.0.md](upgrading_notes/13.0.0.md#upgrading-to-cucum
|
|
|
164
174
|
### Changed
|
|
165
175
|
- Updated `cucumber-gherkin` and `cucumber-messages`
|
|
166
176
|
|
|
167
|
-
[Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/
|
|
177
|
+
[Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v20.0.0...HEAD
|
|
178
|
+
[20.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v19.0.0...v20.0.0
|
|
168
179
|
[19.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v18.0.0...v19.0.0
|
|
169
180
|
[18.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v17.0.0...v18.0.0
|
|
170
181
|
[17.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v16.2.0...v17.0.0
|
data/README.md
CHANGED
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
[](https://vshymanskyy.github.io/StandWithUkraine)
|
|
6
6
|
[](https://opencollective.com/cucumber)
|
|
7
7
|
[](https://opencollective.com/cucumber)
|
|
8
|
-
[](https://codeclimate.com/github/cucumber/cucumber-ruby-core)
|
|
8
|
+
[](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/test-ruby.yaml)
|
|
10
9
|
|
|
11
10
|
Cucumber is a tool for running automated tests written in plain language. Because they're
|
|
12
11
|
written in plain language, they can be read by anyone on your team. Because they can be
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'cucumber/messages/helpers/test_step_result_comparator'
|
|
4
4
|
|
|
5
|
+
require_relative 'no_retries'
|
|
5
6
|
require_relative 'timer'
|
|
6
7
|
require 'cucumber/messages'
|
|
7
8
|
|
|
@@ -14,11 +15,13 @@ module Cucumber
|
|
|
14
15
|
attr_reader :event_bus, :running_test_case, :running_test_step, :id_generator
|
|
15
16
|
private :event_bus, :running_test_case, :running_test_step, :id_generator
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
# @param retry_policy [#will_be_retried?] asked, once a test case has finished, whether it is going to be
|
|
19
|
+
# run again. It receives the test case and its result. By default, no test case is ever reported as retried.
|
|
20
|
+
def initialize(event_bus, id_generator: Cucumber::Messages::Helpers::IdGenerator::UUID.new, backtrace_filter: nil, retry_policy: NoRetries.new)
|
|
18
21
|
@event_bus = event_bus
|
|
19
22
|
@id_generator = id_generator
|
|
20
23
|
@backtrace_filter = backtrace_filter
|
|
21
|
-
@
|
|
24
|
+
@retry_policy = retry_policy
|
|
22
25
|
@current_test_case = nil
|
|
23
26
|
end
|
|
24
27
|
|
|
@@ -34,8 +37,8 @@ module Cucumber
|
|
|
34
37
|
descend.call(self)
|
|
35
38
|
|
|
36
39
|
result = calculate_test_case_result(test_case)
|
|
40
|
+
event_bus.envelope(to_test_case_finished_envelope(test_case, result))
|
|
37
41
|
event_bus.test_case_finished(test_case, result)
|
|
38
|
-
event_bus.envelope(to_test_case_finished_envelope(result))
|
|
39
42
|
self
|
|
40
43
|
end
|
|
41
44
|
|
|
@@ -82,12 +85,12 @@ module Cucumber
|
|
|
82
85
|
)
|
|
83
86
|
end
|
|
84
87
|
|
|
85
|
-
def to_test_case_finished_envelope(result)
|
|
88
|
+
def to_test_case_finished_envelope(test_case, result)
|
|
86
89
|
Cucumber::Messages::Envelope.new(
|
|
87
90
|
test_case_finished: Cucumber::Messages::TestCaseFinished.new(
|
|
88
91
|
test_case_started_id: @current_test_case_started_id,
|
|
89
92
|
timestamp: time_to_timestamp(Time.now),
|
|
90
|
-
will_be_retried:
|
|
93
|
+
will_be_retried: @retry_policy.will_be_retried?(test_case, result)
|
|
91
94
|
)
|
|
92
95
|
)
|
|
93
96
|
end
|
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: 20.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aslak Hellesøy
|
|
@@ -217,6 +217,7 @@ files:
|
|
|
217
217
|
- lib/cucumber/core/test/filters/tag_filter.rb
|
|
218
218
|
- lib/cucumber/core/test/hook_step.rb
|
|
219
219
|
- lib/cucumber/core/test/location.rb
|
|
220
|
+
- lib/cucumber/core/test/no_retries.rb
|
|
220
221
|
- lib/cucumber/core/test/result.rb
|
|
221
222
|
- lib/cucumber/core/test/result/ambiguous.rb
|
|
222
223
|
- lib/cucumber/core/test/result/boolean_methods.rb
|
|
@@ -262,5 +263,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
262
263
|
requirements: []
|
|
263
264
|
rubygems_version: 4.0.16
|
|
264
265
|
specification_version: 4
|
|
265
|
-
summary: cucumber-core-
|
|
266
|
+
summary: cucumber-core-20.0.0
|
|
266
267
|
test_files: []
|