cucumber-core 10.1.1 → 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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +203 -284
  3. data/README.md +0 -1
  4. data/lib/cucumber/core/test/case.rb +11 -1
  5. data/lib/cucumber/core/test/data_table.rb +4 -0
  6. data/lib/cucumber/core/test/doc_string.rb +4 -1
  7. data/lib/cucumber/core/test/empty_multiline_argument.rb +2 -2
  8. data/lib/cucumber/core/test/filters/locations_filter.rb +1 -1
  9. data/lib/cucumber/core/test/location.rb +15 -5
  10. data/lib/cucumber/core/test/step.rb +4 -0
  11. metadata +29 -94
  12. data/lib/cucumber/core/version.rb +0 -10
  13. data/spec/coverage.rb +0 -12
  14. data/spec/cucumber/core/compiler_spec.rb +0 -241
  15. data/spec/cucumber/core/event_bus_spec.rb +0 -163
  16. data/spec/cucumber/core/event_spec.rb +0 -40
  17. data/spec/cucumber/core/filter_spec.rb +0 -101
  18. data/spec/cucumber/core/gherkin/parser_spec.rb +0 -162
  19. data/spec/cucumber/core/gherkin/writer_spec.rb +0 -332
  20. data/spec/cucumber/core/report/summary_spec.rb +0 -178
  21. data/spec/cucumber/core/test/action_spec.rb +0 -153
  22. data/spec/cucumber/core/test/case_spec.rb +0 -125
  23. data/spec/cucumber/core/test/data_table_spec.rb +0 -79
  24. data/spec/cucumber/core/test/doc_string_spec.rb +0 -111
  25. data/spec/cucumber/core/test/duration_matcher.rb +0 -20
  26. data/spec/cucumber/core/test/empty_multiline_argument_spec.rb +0 -28
  27. data/spec/cucumber/core/test/filters/locations_filter_spec.rb +0 -271
  28. data/spec/cucumber/core/test/location_spec.rb +0 -129
  29. data/spec/cucumber/core/test/result_spec.rb +0 -504
  30. data/spec/cucumber/core/test/runner_spec.rb +0 -320
  31. data/spec/cucumber/core/test/step_spec.rb +0 -88
  32. data/spec/cucumber/core/test/timer_spec.rb +0 -25
  33. data/spec/cucumber/core_spec.rb +0 -262
  34. data/spec/report_api_spy.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d28116d7a57602d84409608413da13e92d4793db2aa35d5afefb4cd4434a1359
4
- data.tar.gz: 3f6c77d8561055c1dd1693b5d5e2fc6467aa8030b9f06335e43b6ab3732e2bbf
3
+ metadata.gz: 77d6adff3297c714ad2fb6540ab3543055573e60384202a70397cd2107199f70
4
+ data.tar.gz: 8bc40c9d9ce7a710648f18de73b00f4c97d82c66e5736cecf82264a4c2377a46
5
5
  SHA512:
6
- metadata.gz: 299ba7480beafee776b473b376ccc3c39099bca5c5492362d3384edbb66388b9415e80e9c6c3040a2f4cc37150b6320258437b268b6759085f2651f1338546be
7
- data.tar.gz: 243a558c0e6bdcbd87705e74f4a28085625f908c600f732b1e72c3a2818b451ea48db7f721f7193535cd8745ebcd40b6ff2185e4acfc34502f0255af4db1e162
6
+ metadata.gz: 0677a26978ed5a6a8688fe06e63cf8f3a5ca5aa71067332331f4682afd6349fd8acdf7b8525b815d276e7113029e10d11f08aa3725b49bd0081828f99a4b0a8f
7
+ data.tar.gz: 0516ef912bd9a1562c8d399aa1b68574a88cbae054b9a83c8bc357e03735f431e4e1bf9e37cc7acf1c31361e356ebb9611c0e98f07b59f5631e719d79ddc6af7
data/CHANGELOG.md CHANGED
@@ -1,359 +1,278 @@
1
- Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber.
1
+ # Changelog
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ### Added
6
-
5
+ ## [11.1.0] - 2022-12-22
7
6
  ### Changed
8
-
9
- ### Deprecate
10
-
11
- ### Removed
7
+ - Update gherkin and messsages dependencies
12
8
 
13
9
  ### Fixed
10
+ - Restore support for matching a scenario by tag and step line numbers. ([#237](https://github.com/cucumber/cucumber-ruby-core/pull/237), [#238](https://github.com/cucumber/cucumber-ruby-core/pull/238), [#239](https://github.com/cucumber/cucumber-ruby-core/pull/239))
14
11
 
15
- ### Dependencies
16
-
17
- ## [10.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.0...v10.1.1)
18
-
19
- ### Dependencies
20
-
21
- * Patched `cucumber-tag-expressions`
22
-
23
- ## [10.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.1...v10.1.0)
24
-
25
- ### Dependencies
26
-
27
- * Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
28
-
29
- ## [10.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.0...v10.0.1)
30
-
31
- ### Dependencies
32
-
33
- * Patched `cucumber-gherkin` and `cucumber-messages`
34
-
35
- ## [10.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.1...v10.0.0)
36
-
37
- ### Dependencies
12
+ ## [11.0.0]
13
+ ### Changed
14
+ - Updated `cucumber-gherkin` and `cucumber-messages`
38
15
 
39
- * Upgraded to gherkin v20 and messages v17.
16
+ ## [10.1.1]
17
+ ### Changed
18
+ - Patched `cucumber-tag-expressions`
40
19
 
41
- This removes protocol buffers from the runtime dependencies.
20
+ ## [10.1.0]
21
+ ### Changed
22
+ - Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
42
23
 
43
- This deeply impacts the API as the internal representation of messages has changed from
44
- Protocol Buffer objects to new auto-generated DTOs.
24
+ ## [10.0.1]
25
+ ### Changed
26
+ - Patched `cucumber-gherkin` and `cucumber-messages`
45
27
 
46
- ## [9.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.0...v9.0.1)
28
+ ## [10.0.0]
29
+ ### Changed
30
+ - Upgraded to gherkin v20 and messages v17.
47
31
 
32
+ ## [9.0.1]
48
33
  ### Fixed
34
+ - Skipped scenarios do not affect anymore status of flaky scenarios on retry
35
+ ([#218](https://github.com/cucumber/cucumber-ruby-core/pull/218) @eduardrudko)
49
36
 
50
- * Skipped scenarios do not affect anymore status of flaky scenarios on retry
51
- ([#218](https://github.com/cucumber/cucumber-ruby-core/pull/218) @eduardrudko)
52
-
53
- ## [9.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.1...v9.0.0)
54
-
55
- ### Dependencies
56
-
57
- * Upgraded to gherkin v18 and messages v15
58
- * Updated other dependencies (look at the diff for details)
59
-
60
- ## [8.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.0...v8.0.1)
37
+ ## [9.0.0]
38
+ ### Changed
39
+ - Upgraded to gherkin v18 and messages v15
40
+ - Updated other dependencies (look at the diff for details)
61
41
 
42
+ ## [8.0.1]
62
43
  ### Fixed
44
+ - Make releases from docker using secrets from keybase
63
45
 
64
- * Make releases from docker using secrets from keybase
65
-
66
- ## [8.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.1.0...v8.0.0)
67
-
68
- This release failed
69
-
70
- ### Dependencies
71
-
72
- * Updated dependencies (look at the diff for details)
73
-
74
- ## [7.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.0.0...v7.1.0)
75
-
46
+ ## [8.0.0]
76
47
  ### Changed
48
+ - Updated dependencies (look at the diff for details)
77
49
 
78
- * Updated gems:
79
- * `cucumber-gherkin` ~> 14.0.1
80
- * `cucumber-messages` ~> 12.2.0
81
-
82
- ## [7.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v6.0.0...v7.0.0)
83
-
50
+ ## [7.1.0]
84
51
  ### Changed
52
+ - Updated gems:
53
+ - `cucumber-gherkin` ~> 14.0.1
54
+ - `cucumber-messages` ~> 12.2.0
85
55
 
86
- * Updated monorepo libraries:
56
+ ## [7.0.0]
57
+ ### Changed
58
+ - Updated monorepo libraries:
87
59
  - cucumber-gherkin ~> 13
88
60
  - cucumber-messages ~> 12
89
61
 
90
- ## [6.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.2...v6.0.0)
91
-
92
- ### Changed
93
-
94
- * Update to Gherkin 10
95
-
62
+ ## [6.0.0]
96
63
  ### Added
64
+ - Add `envelope` event, which are used when emitting `Cucumber::Messages`
65
+ - Add `TestCaseCreated` and `TestStepCreated` events, emitted when compiling a `Pickle`
66
+ - Add `Id` field to `TestCase` and `TestStep`
67
+ - Added rubocop (with todo file), and removed backports gems
68
+ ([#186](https://github.com/cucumber/cucumber-ruby-core/pull/186),
69
+ [#182](https://github.com/cucumber/cucumber-ruby-core/issues/182)
70
+ [tas50](https://github.com/tas50),
71
+ [luke-hill](https://github.com/luke-hill))
97
72
 
98
- * Add `envelope` event, which are used when emitting `Cucumber::Messages`
99
- * Add `TestCaseCreated` and `TestStepCreated` events, emitted when compiling a `Pickle`
100
- * Add `Id` field to `TestCase` and `TestStep`
101
- * Added rubocop (with todo file), and removed backports gems
102
- ([#186](https://github.com/cucumber/cucumber-ruby-core/pull/186),
103
- [#182](https://github.com/cucumber/cucumber-ruby-core/issues/182)
104
- [tas50](https://github.com/tas50),
105
- [luke-hill](https://github.com/luke-hill))
73
+ ### Changed
74
+ - Update to Gherkin 10
106
75
 
107
76
  ### Removed
77
+ - Remove location for MultiLine arguments
108
78
 
109
- * Remove location for MultiLine arguments
110
-
111
-
112
- ## [5.0.2](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.1...v5.0.2)
113
-
79
+ ## [5.0.2]
114
80
  ### Changed
81
+ - Update to use Gherkin v8
115
82
 
116
- * Update to use Gherkin v8
117
-
118
- ## [5.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.0...v5.0.1)
119
-
83
+ ## [5.0.1]
120
84
  ### Removed
85
+ - Remove support for ruby 2.2 and below. 2.3 or higher is required now.
121
86
 
122
- * Remove support for ruby 2.2 and below. 2.3 or higher is required now.
123
-
124
- ## [5.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v4.0.0...v5.0.0)
125
-
87
+ ## [5.0.0]
126
88
  ### Changed
89
+ - Update to use Gherkin v7
127
90
 
128
- * Update to use Gherkin v7
129
-
130
- ## [4.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v4.0.0)
131
-
91
+ ## [4.0.0]
132
92
  ### Changed
133
-
134
- * Update to use Gherkin v6 ([#158](https://github.com/cucumber/cucumber-ruby-core/pull/158) @brasmusson)
135
- * Let Scenarios with no Steps get the result status Undefined ([#157](https://github.com/cucumber/cucumber-ruby-core/pull/157) @brasmusson)
136
- * Convert to use the Gherkin compiler and Pickles ([#156](https://github.com/cucumber/cucumber-ruby-core/pull/156) @brasmusson)
137
-
138
- ### Added
139
-
140
- * N/A
141
-
142
- ### Fixed
143
-
144
- * N/A
93
+ - Update to use Gherkin v6 ([#158](https://github.com/cucumber/cucumber-ruby-core/pull/158) @brasmusson)
94
+ - Let Scenarios with no Steps get the result status Undefined ([#157](https://github.com/cucumber/cucumber-ruby-core/pull/157) @brasmusson)
95
+ - Convert to use the Gherkin compiler and Pickles ([#156](https://github.com/cucumber/cucumber-ruby-core/pull/156) @brasmusson)
145
96
 
146
97
  ### Removed
98
+ - Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
147
99
 
148
- * Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
149
-
150
- ### Improved
151
-
152
- * N/A
153
-
154
- ## [3.2.1](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v3.2.1)
155
-
100
+ ## [3.2.1]
156
101
  ### Fixed
102
+ - Switched `gherkin` in Gemspec to use _pessimistic_ versioning. (These two commits aren't merged into `master`, as they already exist in newer commits. This is a 'backported' patch to resolve [#160](https://github.com/cucumber/cucumber-ruby-core/issues/160)).
157
103
 
158
- * Switched `gherkin` in Gemspec to use _pessimistic_ versioning. (These two commits aren't merged into `master`, as they already exist in newer commits. This is a 'backported' patch to resolve [#160](https://github.com/cucumber/cucumber-ruby-core/issues/160)).
159
-
160
- ## [3.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0)
161
-
104
+ ## [3.2.0]
162
105
  ### Added
163
-
164
- * Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
165
- * Add #original_location to Cucumber::Core::Ast::Step and Cucumber::Core::Test::Step ([#150](https://github.com/cucumber/cucumber-ruby-core/pull/150), [#149](https://github.com/cucumber/cucumber-ruby-core/issues/149) @brasmusson)
106
+ - Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
107
+ - Add #original_location to Cucumber::Core::Ast::Step and Cucumber::Core::Test::Step ([#150](https://github.com/cucumber/cucumber-ruby-core/pull/150), [#149](https://github.com/cucumber/cucumber-ruby-core/issues/149) @brasmusson)
166
108
 
167
109
  ### Fixed
110
+ - Set message and backtrace for undefined result also when skipping (@brasmusson)
168
111
 
169
- * Set message and backtrace for undefined result also when skipping (@brasmusson)
170
-
171
- ## [3.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0)
172
-
112
+ ## [3.1.0]
173
113
  ### Changed
114
+ - Upgraded to `cucumber-tag_expressions` 1.1.0
115
+ - Upgraded to `gherkin` 5.0.0
174
116
 
175
- * Upgraded to `cucumber-tag_expressions` 1.1.0
176
- * Upgraded to `gherkin` 5.0.0
177
-
178
- ## [3.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0) (2017-09-27)
117
+ ## [3.0.0]
118
+ ### Added
119
+ - Do not create test cases for scenarios with no steps ([#144](https://github.com/cucumber/cucumber-ruby-core/pull/144) @brasmusson)
120
+ - Handle selective strict settings ([#143](https://github.com/cucumber/cucumber-ruby-core/pull/143) @brasmusson)
179
121
 
180
122
  ### Changed
123
+ - Step#name renamed to #text ([#137](https://github.com/cucumber/cucumber-ruby-core/pull/137) [@olleolleolle](https://github.com/olleolleolle))
124
+ - Use past tense in event names (`xStarting` -> `xStarted`) (see [cucumber/cucumber-ruby#1166](https://github.com/cucumber/cucumber-ruby/issues/1166) @brasmusson).
181
125
 
182
- * Step#name renamed to #text ([#137](https://github.com/cucumber/cucumber-ruby-core/pull/137) [@olleolleolle](https://github.com/olleolleolle))
183
- * Use past tense in event names (`xStarting` -> `xStarted`) (see [cucumber/cucumber-ruby#1166](https://github.com/cucumber/cucumber-ruby/issues/1166) @brasmusson).
126
+ ### Fixed
127
+ - Fix DataTable's Location to be aware of all of its lines ([#142](https://github.com/cucumber/cucumber-ruby-core/pull/142) @botandrose)
128
+ - As per [#251](https://github.com/cucumber/cucumber/issues/251): renamed History.md to CHANGELOG.md, added contributing message at beginning, and misc formatting. ([#145](https://github.com/cucumber/cucumber-ruby-core/pull/145) [jaysonesmith](https://github.com/jaysonesmith))
184
129
 
130
+ ## [3.0.0.pre.2]
185
131
  ### Added
186
-
187
- * Do not create test cases for scenarios with no steps ([#144](https://github.com/cucumber/cucumber-ruby-core/pull/144) @brasmusson)
188
- * Handle selective strict settings ([#143](https://github.com/cucumber/cucumber-ruby-core/pull/143) @brasmusson)
132
+ - Add a flaky result type to be used for flaky scenarios ([#141](https://github.com/cucumber/cucumber-ruby-core/pull/141), [cucumber/cucumber-ruby#1044](https://github.com/cucumber/cucumber-ruby/issues/1044) @brasmusson)
133
+ - Make the Summary report able to say if the total result is ok ([#140](https://github.com/cucumber/cucumber-ruby-core/pull/140) @brasmusson)
134
+ - Replay previous events to new subscribers ([#136](https://github.com/cucumber/cucumber-ruby-core/pull/136) @mattwynne)
135
+ - Ruby 2.4.0 compatibility ([#120](https://github.com/cucumber/cucumber-ruby-core/pull/120) @junaruga)
136
+ - Use tag expressions ([#116](https://github.com/cucumber/cucumber-ruby-core/pull/116) @brasmusson)
137
+ - Access example table row data by param name ([#118](https://github.com/cucumber/cucumber-ruby-core/pull/118) @enkessler)
189
138
 
190
139
  ### Fixed
140
+ - Travis: jruby-9.1.10.0 ([#130](https://github.com/cucumber/cucumber-ruby-core/pull/130) @olleolleolle)
141
+ - Travis: jruby-9.1.12.0 ([#133](https://github.com/cucumber/cucumber-ruby-core/pull/132) @olleolleolle)
191
142
 
192
- * Fix DataTable's Location to be aware of all of its lines ([#142](https://github.com/cucumber/cucumber-ruby-core/pull/142) @botandrose)
193
-
194
- ### Improved
195
-
196
- * As per [#251](https://github.com/cucumber/cucumber/issues/251): renamed History.md to CHANGELOG.md, added contributing message at beginning, and misc formatting. ([#145](https://github.com/cucumber/cucumber-ruby-core/pull/145) [jaysonesmith](https://github.com/jaysonesmith))
197
-
198
- ## [3.0.0.pre.2](https://github.com/cucumber/cucumber-ruby-core/compare/v2.0.0...3.0.0.pre.2) (2017-07-26)
199
-
200
- ### New Features
201
-
202
- * Add a flaky result type to be used for flaky scenarios ([#141](https://github.com/cucumber/cucumber-ruby-core/pull/141), [cucumber/cucumber-ruby#1044](https://github.com/cucumber/cucumber-ruby/issues/1044) @brasmusson)
203
- * Make the Summary report able to say if the total result is ok ([#140](https://github.com/cucumber/cucumber-ruby-core/pull/140) @brasmusson)
204
- * Replay previous events to new subscribers ([#136](https://github.com/cucumber/cucumber-ruby-core/pull/136) @mattwynne)
205
- * Ruby 2.4.0 compatibility ([#120](https://github.com/cucumber/cucumber-ruby-core/pull/120) @junaruga)
206
- * Use tag expressions ([#116](https://github.com/cucumber/cucumber-ruby-core/pull/116) @brasmusson)
207
- * Access example table row data by param name ([#118](https://github.com/cucumber/cucumber-ruby-core/pull/118) @enkessler)
208
-
209
- ### Bugfixes
210
-
211
- N/A
212
-
213
- ### Removed Features
214
-
215
- N/A
216
-
217
- ### Refactoring
218
-
219
- * Travis: jruby-9.1.10.0 ([#130](https://github.com/cucumber/cucumber-ruby-core/pull/130) @olleolleolle)
220
- * Travis: jruby-9.1.12.0 ([#133](https://github.com/cucumber/cucumber-ruby-core/pull/132) @olleolleolle)
221
-
222
- ## [2.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.5.0...2.0.0)
223
-
224
- ### New Features
225
-
226
- * Implement equality for test cases ([#111](https://github.com/cucumber/cucumber-ruby-core/pull/111) @mattwynne)
227
- * Implement an event bus (moved from Cucumber-Ruby) ([#106](https://github.com/cucumber/cucumber-ruby-core/pull/106) @mattwynne)
228
- * Use frozen string literals ([#105](https://github.com/cucumber/cucumber-ruby-core/pull/105) @twalpole)
229
-
230
- ### Bugfixes
231
-
232
- * Handle incomplete examples to scenario outlines. ([109](https://github.com/cucumber/cucumber-ruby-core/pull/109) @brasmusson)
233
- * Add with_filtered_backtrace method to unknown result ([107](https://github.com/cucumber/cucumber-ruby-core/pull/107) @danascheider)
234
-
235
- ### Removed Features
236
-
237
- * Remove support for Ruby v1.9.3. ([112](https://github.com/cucumber/cucumber-ruby-core/pull/112) @brasmusson)
238
-
239
- ### Refactoring
240
-
241
- N/A
242
-
243
- ## [1.5.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.4.0...v1.5.0)
244
-
245
- ### New Features
246
-
247
- * Update to Gherkin v4.0 (@brasmusson)
248
-
249
- ### Bugfixes
250
-
251
- * Use monotonic time ([#103](https://github.com/cucumber/cucumber-ruby-core/pull/103) @mikz)
252
-
253
- ## [1.4.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.1...v1.4.0)
254
-
255
- ### New Features
256
-
257
- * Update to Gherkin v3.2.0 (@brasmusson)
258
-
259
- ### Bugfixes
260
-
261
- ## [1.3.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.0...v1.3.1)
262
-
263
- ### New Features
264
-
265
- ### Bugfixes
266
-
267
- * Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
268
-
269
- ## [1.3.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...v1.3.0)
270
-
271
- ### New Features
272
-
273
- * Add factory method to Cucumber::Core::Ast::Location that uses the output from Proc#source_location (@brasmusson)
274
- * Integrate Gherkin3 parser (@brasmusson)
275
-
276
- ### Bugfixes
277
-
278
- * Make sure that `after_test_step` is sent also when a test step is interrupted by (a timeout in) an around hook ([cucumber/cucumber-ruby#909](https://github.com/cucumber/cucumber-ruby/issues/909) @brasmusson)
279
- * Improve the check that a test_step quacks like a Cucumber::Core::Test::Step ([95](https://github.com/cucumber/cucumber-ruby-core/issues/95) @brasmusson)
280
-
281
- ## [1.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0)
282
-
283
- ### New Features
284
-
285
- * Enable the location of actions to be the step or hook location (@brasmusson)
286
- * Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
287
- * Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
288
- * Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
289
- * Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
290
-
291
- ### Bugfixes
292
-
293
- ## [1.1.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3)
294
-
295
- ### New Features
296
-
297
- * Added custom `inspect` methods for AST Nodes (@tooky)
298
-
299
- ## [1.1.2](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.1...v1.1.2)
300
-
301
- ### New Features
302
-
303
- * Make Test Case names for Scenario Outlines language neutral [83](https://github.com/cucumber/cucumber-ruby-core/pull/83) (@brasmusson)
304
- * Add predicate methods for Multline arguments (@mattwynne)
305
- * Expose `Test::Case#feature` (@mattwynne)
306
- * Fail test case if around hook fails (@mattwynne, @tooky)
307
- * Expose `Test::Case#around_hooks` (@tooky)
308
-
309
- ## [1.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.0...v1.1.1)
310
-
311
-
312
- ### New Features
313
-
314
- * Calculate actual keyword for snippets (@brasmusson)
315
-
316
- ### Bugfixes
143
+ ## [2.0.0]
144
+ ### Added
145
+ - Implement equality for test cases ([#111](https://github.com/cucumber/cucumber-ruby-core/pull/111) @mattwynne)
146
+ - Implement an event bus (moved from Cucumber-Ruby) ([#106](https://github.com/cucumber/cucumber-ruby-core/pull/106) @mattwynne)
147
+ - Use frozen string literals ([#105](https://github.com/cucumber/cucumber-ruby-core/pull/105) @twalpole)
317
148
 
318
- * Remove keyword from `Test::Case#name` [82](https://github.com/cucumber/cucumber-ruby-core/pull/82) (@richarda)
149
+ ### Fixed
150
+ - Handle incomplete examples to scenario outlines. ([109](https://github.com/cucumber/cucumber-ruby-core/pull/109) @brasmusson)
151
+ - Add with_filtered_backtrace method to unknown result ([107](https://github.com/cucumber/cucumber-ruby-core/pull/107) @danascheider)
319
152
 
320
- ## [1.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0...v1.1.0)
153
+ ### Removed
154
+ - Remove support for Ruby v1.9.3. ([112](https://github.com/cucumber/cucumber-ruby-core/pull/112) @brasmusson)
321
155
 
322
- ### New features
156
+ ## [1.5.0]
157
+ ### Added
158
+ - Update to Gherkin v4.0 (@brasmusson)
323
159
 
324
- * LocationsFilter now sorts test cases as well as filtering them (@mattwynne)
160
+ ### Fixed
161
+ - Use monotonic time ([#103](https://github.com/cucumber/cucumber-ruby-core/pull/103) @mikz)
325
162
 
326
- ## [1.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.4...v1.0.0)
163
+ ## [1.4.0]
164
+ ### Added
165
+ - Update to Gherkin v3.2.0 (@brasmusson)
327
166
 
328
- ### Features Removed
167
+ ### Fixed
329
168
 
330
- * Removed the Mapper DSL (@mattwynne, @tooky)
331
- * Removed Cucumber.initializer (@tooky)
169
+ ## [1.3.1]
170
+ ### Added
332
171
 
333
- ### New Features
172
+ ### Fixed
173
+ - Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
334
174
 
335
- * Added dynamic filter class constructor (@mattwynne)
175
+ ## [1.3.0]
176
+ ### Added
177
+ - Add factory method to Cucumber::Core::Ast::Location that uses the output from Proc#source_location (@brasmusson)
178
+ - Integrate Gherkin3 parser (@brasmusson)
336
179
 
337
- ## [1.0.0.beta.4](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.3...v1.0.0.beta.4)
180
+ ### Fixed
181
+ - Make sure that `after_test_step` is sent also when a test step is interrupted by (a timeout in) an around hook ([cucumber/cucumber-ruby#909](https://github.com/cucumber/cucumber-ruby/issues/909) @brasmusson)
182
+ - Improve the check that a test_step quacks like a Cucumber::Core::Test::Step ([95](https://github.com/cucumber/cucumber-ruby-core/issues/95) @brasmusson)
338
183
 
339
- ### New Features
184
+ ## [1.2.0]
185
+ ### Added
186
+ - Enable the location of actions to be the step or hook location (@brasmusson)
187
+ - Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
188
+ - Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
189
+ - Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
190
+ - Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
340
191
 
341
- * Introduce a Duration object (#[71](https://github.com/cucumber/cucumber-ruby-core/pull/71) [@brasmusson](https://github.com/brasmusson))
342
- * BeforeStep hooks (#[70](https://github.com/cucumber/cucumber-ruby-core/pull/70) [@almostwhitehat](https://github.com/almostwhitehat))
343
- * Expose `Test::Case#test_steps` (@mattwynne)
192
+ ### Fixed
344
193
 
345
- ### Bugfixes
194
+ ## [1.1.3]
195
+ ### Added
196
+ - Added custom `inspect` methods for AST Nodes (@tooky)
346
197
 
347
- * Handle empty feature files (#[77](https://github.com/cucumber/cucumber-ruby-core/pull/77), [cucumber/cucumber-ruby#771](https://github.com/cucumber/cucumber-ruby/issues/771) [@brasmusson](https://github.com/brasmusson))
348
- * Run after hooks in reverse order (#[69](https://github.com/cucumber/cucumber-ruby-core/pull/69) [@erran](https://github.com/erran))
198
+ ## [1.1.2]
199
+ ### Added
200
+ - Make Test Case names for Scenario Outlines language neutral [83](https://github.com/cucumber/cucumber-ruby-core/pull/83) (@brasmusson)
201
+ - Add predicate methods for Multline arguments (@mattwynne)
202
+ - Expose `Test::Case#feature` (@mattwynne)
203
+ - Fail test case if around hook fails (@mattwynne, @tooky)
204
+ - Expose `Test::Case#around_hooks` (@tooky)
349
205
 
350
- ## [1.0.0.beta.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3)
206
+ ## [1.1.1]
207
+ ### Added
208
+ - Calculate actual keyword for snippets (@brasmusson)
351
209
 
352
- Changes were not logged.
210
+ ### Fixed
211
+ - Remove keyword from `Test::Case#name` [82](https://github.com/cucumber/cucumber-ruby-core/pull/82) (@richarda)
353
212
 
354
- ## [1.0.0.beta.2](https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2)
213
+ ## [1.1.0]
214
+ ### Added
215
+ - LocationsFilter now sorts test cases as well as filtering them (@mattwynne)
355
216
 
356
- Changes were not logged.
217
+ ## [1.0.0]
218
+ ### Added
219
+ - Added dynamic filter class constructor (@mattwynne)
357
220
 
221
+ ## [1.0.0.beta.4]
222
+ ### Added
223
+ - Introduce a Duration object (#[71](https://github.com/cucumber/cucumber-ruby-core/pull/71) [@brasmusson](https://github.com/brasmusson))
224
+ - BeforeStep hooks (#[70](https://github.com/cucumber/cucumber-ruby-core/pull/70) [@almostwhitehat](https://github.com/almostwhitehat))
225
+ - Expose `Test::Case#test_steps` (@mattwynne)
358
226
 
359
- [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
227
+ ### Fixed
228
+ - Handle empty feature files (#[77](https://github.com/cucumber/cucumber-ruby-core/pull/77), [cucumber/cucumber-ruby#771](https://github.com/cucumber/cucumber-ruby/issues/771) [@brasmusson](https://github.com/brasmusson))
229
+ - Run after hooks in reverse order (#[69](https://github.com/cucumber/cucumber-ruby-core/pull/69) [@erran](https://github.com/erran))
230
+
231
+ ## [1.0.0.beta.3]
232
+
233
+ ## [1.0.0.beta.2]
234
+
235
+ ## [1.0.0.beta.3]
236
+
237
+ ## [1.0.0.beta.2]
238
+
239
+ [Unreleased]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
240
+ [11.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...main
241
+ [11.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0
242
+ [10.1.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.0...v10.1.1
243
+ [10.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.1...v10.1.0
244
+ [10.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.0...v10.0.1
245
+ [10.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.1...v10.0.0
246
+ [9.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.0...v9.0.1
247
+ [9.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.1...v9.0.0
248
+ [8.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.0...v8.0.1
249
+ [8.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v7.1.0...v8.0.0
250
+ [7.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v7.0.0...v7.1.0
251
+ [7.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v6.0.0...v7.0.0
252
+ [6.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.2...v6.0.0
253
+ [5.0.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.1...v5.0.2
254
+ [5.0.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.0...v5.0.1
255
+ [5.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v4.0.0...v5.0.0
256
+ [4.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v4.0.0
257
+ [3.2.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v3.2.1
258
+ [3.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0
259
+ [3.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0
260
+ [3.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0
261
+ [3.0.0.pre.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v2.0.0...3.0.0.pre.2
262
+ [2.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.5.0...2.0.0
263
+ [1.5.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.4.0...v1.5.0
264
+ [1.4.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.1...v1.4.0
265
+ [1.3.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.0...v1.3.1
266
+ [1.3.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...v1.3.0
267
+ [1.2.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0
268
+ [1.1.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3
269
+ [1.1.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.1...v1.1.2
270
+ [1.1.1]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.0...v1.1.1
271
+ [1.1.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0...v1.1.0
272
+ [1.0.0]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.4...v1.0.0
273
+ [1.0.0.beta.4]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.3...v1.0.0.beta.4
274
+ [1.0.0.beta.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3
275
+ [1.0.0.beta.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2
276
+ [1.0.0.beta.3]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.2...v1.0.0.beta.3
277
+ [1.0.0.beta.2]: https://github.com/cucumber/cucumber-ruby-core/compare/v1.0.0.beta.1...v1.0.0.beta.2
278
+ ore/compare/v10.1.1...main
data/README.md CHANGED
@@ -10,7 +10,6 @@
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-core%2Fissues.csv)](https://oselvar.com/github/cucumber/oselvar-github-metrics/main/cucumber/cucumber-ruby-core)
11
11
  [![Test cucumber-core](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/cucumber-ruby-core.yml/badge.svg)](https://github.com/cucumber/cucumber-ruby-core/actions/workflows/cucumber-ruby-core.yml)
12
12
  [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby-core.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby-core)
13
- [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby-core/badge.svg?branch=main)](https://coveralls.io/r/cucumber/cucumber-ruby-core?branch=main)
14
13
 
15
14
  Cucumber is a tool for running automated tests written in plain language. Because they're
16
15
  written in plain language, they can be read by anyone on your team. Because they can be
@@ -53,10 +53,20 @@ module Cucumber
53
53
 
54
54
  def match_locations?(queried_locations)
55
55
  queried_locations.any? do |queried_location|
56
- queried_location.match? location
56
+ matching_locations.any? do |location|
57
+ queried_location.match? location
58
+ end
57
59
  end
58
60
  end
59
61
 
62
+ def matching_locations
63
+ [
64
+ location,
65
+ tags.map(&:location),
66
+ test_steps.map(&:matching_locations)
67
+ ].flatten
68
+ end
69
+
60
70
  def inspect
61
71
  "#<#{self.class}: #{location}>"
62
72
  end
@@ -80,6 +80,10 @@ module Cucumber
80
80
  self.class.new(new_raw)
81
81
  end
82
82
 
83
+ def lines_count
84
+ raw.count
85
+ end
86
+
83
87
  def ==(other)
84
88
  other.class == self.class && raw == other.raw
85
89
  end
@@ -50,6 +50,10 @@ module Cucumber
50
50
  self
51
51
  end
52
52
 
53
+ def lines_count
54
+ lines.count + 2
55
+ end
56
+
53
57
  def ==(other)
54
58
  if other.respond_to?(:content_type)
55
59
  return false unless content_type == other.content_type
@@ -68,7 +72,6 @@ module Cucumber
68
72
  %{ """>}
69
73
  ].join("\n")
70
74
  end
71
-
72
75
  end
73
76
  end
74
77
  end
@@ -19,8 +19,8 @@ module Cucumber
19
19
  self
20
20
  end
21
21
 
22
- def all_locations
23
- []
22
+ def lines_count
23
+ 0
24
24
  end
25
25
 
26
26
  def inspect