cucumber-core 10.1.1 → 11.1.0

Sign up to get free protection for your applications and to get access to all the features.
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