cucumber-core 11.0.0 → 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 +204 -291
  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 +7 -0
  10. data/lib/cucumber/core/test/step.rb +4 -0
  11. metadata +21 -86
  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: 60b27377ea97fd56c134f94c5b763c065a1a491b804ccbe6b0def5110a164c29
4
- data.tar.gz: e075c8ffb073c1de897ca63279277788fa1b2ebcbd773ca2cc2f81b66ac534b2
3
+ metadata.gz: 77d6adff3297c714ad2fb6540ab3543055573e60384202a70397cd2107199f70
4
+ data.tar.gz: 8bc40c9d9ce7a710648f18de73b00f4c97d82c66e5736cecf82264a4c2377a46
5
5
  SHA512:
6
- metadata.gz: 8009056404faf8f0ab3731301d108629b929ce48d712fcc59640cd46f98b0a3164795ec818976d0690f39ebb88e658c0f892795c19b3da718a500b1956f6e10c
7
- data.tar.gz: 198e062613c2c2110acf579e5aceb0fecd100c1a76ed2824e06e4468cf1cb87d35c36e76ac9676a04d7ceacfc57f702046b9e71aaab7e0e42cdd0d6939d6229b
6
+ metadata.gz: 0677a26978ed5a6a8688fe06e63cf8f3a5ca5aa71067332331f4682afd6349fd8acdf7b8525b815d276e7113029e10d11f08aa3725b49bd0081828f99a4b0a8f
7
+ data.tar.gz: 0516ef912bd9a1562c8d399aa1b68574a88cbae054b9a83c8bc357e03735f431e4e1bf9e37cc7acf1c31361e356ebb9611c0e98f07b59f5631e719d79ddc6af7
data/CHANGELOG.md CHANGED
@@ -1,365 +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
- ## [Unreleased](https://github.com/cucumber/cucumber-ruby-core/compare/v11.0.0...main)
4
-
5
- ### Added
3
+ ## [Unreleased]
6
4
 
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
- ## [11.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.1...v11.0.0)
18
-
19
- ### Dependencies
20
-
21
- * Updated `cucumber-gherkin` and `cucumber-messages`
22
-
23
- ## [10.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.1.0...v10.1.1)
24
-
25
- ### Dependencies
26
-
27
- * Patched `cucumber-tag-expressions`
28
-
29
- ## [10.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.1...v10.1.0)
30
-
31
- ### Dependencies
32
-
33
- * Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
34
-
35
- ## [10.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v10.0.0...v10.0.1)
36
-
37
- ### Dependencies
38
-
39
- * Patched `cucumber-gherkin` and `cucumber-messages`
40
-
41
- ## [10.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v9.0.1...v10.0.0)
42
-
43
- ### Dependencies
12
+ ## [11.0.0]
13
+ ### Changed
14
+ - Updated `cucumber-gherkin` and `cucumber-messages`
44
15
 
45
- * Upgraded to gherkin v20 and messages v17.
16
+ ## [10.1.1]
17
+ ### Changed
18
+ - Patched `cucumber-tag-expressions`
46
19
 
47
- This removes protocol buffers from the runtime dependencies.
20
+ ## [10.1.0]
21
+ ### Changed
22
+ - Patched `cucumber-gherkin`, `cucumber-messages` and `cucumber-tag-expressions`
48
23
 
49
- This deeply impacts the API as the internal representation of messages has changed from
50
- Protocol Buffer objects to new auto-generated DTOs.
24
+ ## [10.0.1]
25
+ ### Changed
26
+ - Patched `cucumber-gherkin` and `cucumber-messages`
51
27
 
52
- ## [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.
53
31
 
32
+ ## [9.0.1]
54
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)
55
36
 
56
- * Skipped scenarios do not affect anymore status of flaky scenarios on retry
57
- ([#218](https://github.com/cucumber/cucumber-ruby-core/pull/218) @eduardrudko)
58
-
59
- ## [9.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v8.0.1...v9.0.0)
60
-
61
- ### Dependencies
62
-
63
- * Upgraded to gherkin v18 and messages v15
64
- * Updated other dependencies (look at the diff for details)
65
-
66
- ## [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)
67
41
 
42
+ ## [8.0.1]
68
43
  ### Fixed
44
+ - Make releases from docker using secrets from keybase
69
45
 
70
- * Make releases from docker using secrets from keybase
71
-
72
- ## [8.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.1.0...v8.0.0)
73
-
74
- This release failed
75
-
76
- ### Dependencies
77
-
78
- * Updated dependencies (look at the diff for details)
79
-
80
- ## [7.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v7.0.0...v7.1.0)
81
-
46
+ ## [8.0.0]
82
47
  ### Changed
48
+ - Updated dependencies (look at the diff for details)
83
49
 
84
- * Updated gems:
85
- * `cucumber-gherkin` ~> 14.0.1
86
- * `cucumber-messages` ~> 12.2.0
87
-
88
- ## [7.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v6.0.0...v7.0.0)
89
-
50
+ ## [7.1.0]
90
51
  ### Changed
52
+ - Updated gems:
53
+ - `cucumber-gherkin` ~> 14.0.1
54
+ - `cucumber-messages` ~> 12.2.0
91
55
 
92
- * Updated monorepo libraries:
56
+ ## [7.0.0]
57
+ ### Changed
58
+ - Updated monorepo libraries:
93
59
  - cucumber-gherkin ~> 13
94
60
  - cucumber-messages ~> 12
95
61
 
96
- ## [6.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.2...v6.0.0)
97
-
98
- ### Changed
99
-
100
- * Update to Gherkin 10
101
-
62
+ ## [6.0.0]
102
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))
103
72
 
104
- * Add `envelope` event, which are used when emitting `Cucumber::Messages`
105
- * Add `TestCaseCreated` and `TestStepCreated` events, emitted when compiling a `Pickle`
106
- * Add `Id` field to `TestCase` and `TestStep`
107
- * Added rubocop (with todo file), and removed backports gems
108
- ([#186](https://github.com/cucumber/cucumber-ruby-core/pull/186),
109
- [#182](https://github.com/cucumber/cucumber-ruby-core/issues/182)
110
- [tas50](https://github.com/tas50),
111
- [luke-hill](https://github.com/luke-hill))
73
+ ### Changed
74
+ - Update to Gherkin 10
112
75
 
113
76
  ### Removed
77
+ - Remove location for MultiLine arguments
114
78
 
115
- * Remove location for MultiLine arguments
116
-
117
-
118
- ## [5.0.2](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.1...v5.0.2)
119
-
79
+ ## [5.0.2]
120
80
  ### Changed
81
+ - Update to use Gherkin v8
121
82
 
122
- * Update to use Gherkin v8
123
-
124
- ## [5.0.1](https://github.com/cucumber/cucumber-ruby-core/compare/v5.0.0...v5.0.1)
125
-
83
+ ## [5.0.1]
126
84
  ### Removed
85
+ - Remove support for ruby 2.2 and below. 2.3 or higher is required now.
127
86
 
128
- * Remove support for ruby 2.2 and below. 2.3 or higher is required now.
129
-
130
- ## [5.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v4.0.0...v5.0.0)
131
-
87
+ ## [5.0.0]
132
88
  ### Changed
89
+ - Update to use Gherkin v7
133
90
 
134
- * Update to use Gherkin v7
135
-
136
- ## [4.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v4.0.0)
137
-
91
+ ## [4.0.0]
138
92
  ### Changed
139
-
140
- * Update to use Gherkin v6 ([#158](https://github.com/cucumber/cucumber-ruby-core/pull/158) @brasmusson)
141
- * Let Scenarios with no Steps get the result status Undefined ([#157](https://github.com/cucumber/cucumber-ruby-core/pull/157) @brasmusson)
142
- * Convert to use the Gherkin compiler and Pickles ([#156](https://github.com/cucumber/cucumber-ruby-core/pull/156) @brasmusson)
143
-
144
- ### Added
145
-
146
- * N/A
147
-
148
- ### Fixed
149
-
150
- * 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)
151
96
 
152
97
  ### Removed
98
+ - Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
153
99
 
154
- * Remove the support for old style tag expressions ([#159](https://github.com/cucumber/cucumber-ruby-core/pull/159) @brasmusson)
155
-
156
- ### Improved
157
-
158
- * N/A
159
-
160
- ## [3.2.1](https://github.com/cucumber/cucumber-ruby-core/compare/v3.2.0...v3.2.1)
161
-
100
+ ## [3.2.1]
162
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)).
163
103
 
164
- * 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)).
165
-
166
- ## [3.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0)
167
-
104
+ ## [3.2.0]
168
105
  ### Added
169
-
170
- * Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
171
- * 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)
172
108
 
173
109
  ### Fixed
110
+ - Set message and backtrace for undefined result also when skipping (@brasmusson)
174
111
 
175
- * Set message and backtrace for undefined result also when skipping (@brasmusson)
176
-
177
- ## [3.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0)
178
-
112
+ ## [3.1.0]
179
113
  ### Changed
114
+ - Upgraded to `cucumber-tag_expressions` 1.1.0
115
+ - Upgraded to `gherkin` 5.0.0
180
116
 
181
- * Upgraded to `cucumber-tag_expressions` 1.1.0
182
- * Upgraded to `gherkin` 5.0.0
183
-
184
- ## [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)
185
121
 
186
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).
187
125
 
188
- * Step#name renamed to #text ([#137](https://github.com/cucumber/cucumber-ruby-core/pull/137) [@olleolleolle](https://github.com/olleolleolle))
189
- * 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))
190
129
 
130
+ ## [3.0.0.pre.2]
191
131
  ### Added
192
-
193
- * Do not create test cases for scenarios with no steps ([#144](https://github.com/cucumber/cucumber-ruby-core/pull/144) @brasmusson)
194
- * 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)
195
138
 
196
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)
197
142
 
198
- * Fix DataTable's Location to be aware of all of its lines ([#142](https://github.com/cucumber/cucumber-ruby-core/pull/142) @botandrose)
199
-
200
- ### Improved
201
-
202
- * 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))
203
-
204
- ## [3.0.0.pre.2](https://github.com/cucumber/cucumber-ruby-core/compare/v2.0.0...3.0.0.pre.2) (2017-07-26)
205
-
206
- ### New Features
207
-
208
- * 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)
209
- * Make the Summary report able to say if the total result is ok ([#140](https://github.com/cucumber/cucumber-ruby-core/pull/140) @brasmusson)
210
- * Replay previous events to new subscribers ([#136](https://github.com/cucumber/cucumber-ruby-core/pull/136) @mattwynne)
211
- * Ruby 2.4.0 compatibility ([#120](https://github.com/cucumber/cucumber-ruby-core/pull/120) @junaruga)
212
- * Use tag expressions ([#116](https://github.com/cucumber/cucumber-ruby-core/pull/116) @brasmusson)
213
- * Access example table row data by param name ([#118](https://github.com/cucumber/cucumber-ruby-core/pull/118) @enkessler)
214
-
215
- ### Bugfixes
216
-
217
- N/A
218
-
219
- ### Removed Features
220
-
221
- N/A
222
-
223
- ### Refactoring
224
-
225
- * Travis: jruby-9.1.10.0 ([#130](https://github.com/cucumber/cucumber-ruby-core/pull/130) @olleolleolle)
226
- * Travis: jruby-9.1.12.0 ([#133](https://github.com/cucumber/cucumber-ruby-core/pull/132) @olleolleolle)
227
-
228
- ## [2.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.5.0...2.0.0)
229
-
230
- ### New Features
231
-
232
- * Implement equality for test cases ([#111](https://github.com/cucumber/cucumber-ruby-core/pull/111) @mattwynne)
233
- * Implement an event bus (moved from Cucumber-Ruby) ([#106](https://github.com/cucumber/cucumber-ruby-core/pull/106) @mattwynne)
234
- * Use frozen string literals ([#105](https://github.com/cucumber/cucumber-ruby-core/pull/105) @twalpole)
235
-
236
- ### Bugfixes
237
-
238
- * Handle incomplete examples to scenario outlines. ([109](https://github.com/cucumber/cucumber-ruby-core/pull/109) @brasmusson)
239
- * Add with_filtered_backtrace method to unknown result ([107](https://github.com/cucumber/cucumber-ruby-core/pull/107) @danascheider)
240
-
241
- ### Removed Features
242
-
243
- * Remove support for Ruby v1.9.3. ([112](https://github.com/cucumber/cucumber-ruby-core/pull/112) @brasmusson)
244
-
245
- ### Refactoring
246
-
247
- N/A
248
-
249
- ## [1.5.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.4.0...v1.5.0)
250
-
251
- ### New Features
252
-
253
- * Update to Gherkin v4.0 (@brasmusson)
254
-
255
- ### Bugfixes
256
-
257
- * Use monotonic time ([#103](https://github.com/cucumber/cucumber-ruby-core/pull/103) @mikz)
258
-
259
- ## [1.4.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.1...v1.4.0)
260
-
261
- ### New Features
262
-
263
- * Update to Gherkin v3.2.0 (@brasmusson)
264
-
265
- ### Bugfixes
266
-
267
- ## [1.3.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.3.0...v1.3.1)
268
-
269
- ### New Features
270
-
271
- ### Bugfixes
272
-
273
- * Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
274
-
275
- ## [1.3.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.2.0...v1.3.0)
276
-
277
- ### New Features
278
-
279
- * Add factory method to Cucumber::Core::Ast::Location that uses the output from Proc#source_location (@brasmusson)
280
- * Integrate Gherkin3 parser (@brasmusson)
281
-
282
- ### Bugfixes
283
-
284
- * 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)
285
- * 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)
286
-
287
- ## [1.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.3...v1.2.0)
288
-
289
- ### New Features
290
-
291
- * Enable the location of actions to be the step or hook location (@brasmusson)
292
- * Add the comments to the Steps, Examples tables and Examples table rows Ast classes (@brasmusson)
293
- * Expose name, description and examples_rows attributes of `Ast::ExamplesTable` (@mattwynne)
294
- * Add #to_sym to Cucumber::Core::Test::Result classes ([#89](https://github.com/cucumber/cucumber-ruby-core/pull/89) @pdswan)
295
- * Add #ok? to Cucumber::Core::Test::Result classes ([#92](https://github.com/cucumber/cucumber-ruby-core/pull/92) @brasmusson)
296
-
297
- ### Bugfixes
298
-
299
- ## [1.1.3](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.2...v1.1.3)
300
-
301
- ### New Features
302
-
303
- * Added custom `inspect` methods for AST Nodes (@tooky)
304
-
305
- ## [1.1.2](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.1...v1.1.2)
306
-
307
- ### New Features
308
-
309
- * Make Test Case names for Scenario Outlines language neutral [83](https://github.com/cucumber/cucumber-ruby-core/pull/83) (@brasmusson)
310
- * Add predicate methods for Multline arguments (@mattwynne)
311
- * Expose `Test::Case#feature` (@mattwynne)
312
- * Fail test case if around hook fails (@mattwynne, @tooky)
313
- * Expose `Test::Case#around_hooks` (@tooky)
314
-
315
- ## [1.1.1](https://github.com/cucumber/cucumber-ruby-core/compare/v1.1.0...v1.1.1)
316
-
317
-
318
- ### New Features
319
-
320
- * Calculate actual keyword for snippets (@brasmusson)
321
-
322
- ### 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)
323
148
 
324
- * 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)
325
152
 
326
- ## [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)
327
155
 
328
- ### New features
156
+ ## [1.5.0]
157
+ ### Added
158
+ - Update to Gherkin v4.0 (@brasmusson)
329
159
 
330
- * 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)
331
162
 
332
- ## [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)
333
166
 
334
- ### Features Removed
167
+ ### Fixed
335
168
 
336
- * Removed the Mapper DSL (@mattwynne, @tooky)
337
- * Removed Cucumber.initializer (@tooky)
169
+ ## [1.3.1]
170
+ ### Added
338
171
 
339
- ### New Features
172
+ ### Fixed
173
+ - Speed up location filtering ([#99](https://github.com/cucumber/cucumber-ruby-core/issues/99) @mattwynne @akostadinov @brasmusson)
340
174
 
341
- * 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)
342
179
 
343
- ## [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)
344
183
 
345
- ### 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)
346
191
 
347
- * Introduce a Duration object (#[71](https://github.com/cucumber/cucumber-ruby-core/pull/71) [@brasmusson](https://github.com/brasmusson))
348
- * BeforeStep hooks (#[70](https://github.com/cucumber/cucumber-ruby-core/pull/70) [@almostwhitehat](https://github.com/almostwhitehat))
349
- * Expose `Test::Case#test_steps` (@mattwynne)
192
+ ### Fixed
350
193
 
351
- ### Bugfixes
194
+ ## [1.1.3]
195
+ ### Added
196
+ - Added custom `inspect` methods for AST Nodes (@tooky)
352
197
 
353
- * 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))
354
- * 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)
355
205
 
356
- ## [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)
357
209
 
358
- Changes were not logged.
210
+ ### Fixed
211
+ - Remove keyword from `Test::Case#name` [82](https://github.com/cucumber/cucumber-ruby-core/pull/82) (@richarda)
359
212
 
360
- ## [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)
361
216
 
362
- Changes were not logged.
217
+ ## [1.0.0]
218
+ ### Added
219
+ - Added dynamic filter class constructor (@mattwynne)
363
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)
364
226
 
365
- [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