cucumber-core 16.2.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +19 -1
- data/LICENSE +14 -13
- data/lib/cucumber/core/compiler.rb +11 -10
- data/lib/cucumber/core/event.rb +12 -10
- data/lib/cucumber/core/event_bus.rb +1 -1
- data/lib/cucumber/core/events/base.rb +26 -0
- data/lib/cucumber/core/events/envelope.rb +13 -2
- data/lib/cucumber/core/events/gherkin_source_parsed.rb +12 -3
- data/lib/cucumber/core/events/test_case_created.rb +12 -6
- data/lib/cucumber/core/events/test_case_finished.rb +11 -1
- data/lib/cucumber/core/events/test_case_started.rb +12 -3
- data/lib/cucumber/core/events/test_step_created.rb +12 -6
- data/lib/cucumber/core/events/test_step_finished.rb +14 -4
- data/lib/cucumber/core/events/test_step_started.rb +12 -3
- data/lib/cucumber/core/gherkin/document.rb +16 -6
- data/lib/cucumber/core/gherkin/parser.rb +5 -9
- data/lib/cucumber/core/report/summary.rb +2 -2
- data/lib/cucumber/core/test/action/defined.rb +3 -3
- data/lib/cucumber/core/test/action.rb +6 -6
- data/lib/cucumber/core/test/around_hook.rb +4 -4
- data/lib/cucumber/core/test/case.rb +27 -26
- data/lib/cucumber/core/test/data_table.rb +37 -39
- data/lib/cucumber/core/test/doc_string.rb +23 -23
- data/lib/cucumber/core/test/empty_multiline_argument.rb +8 -8
- data/lib/cucumber/core/test/filters/locations_filter.rb +1 -1
- data/lib/cucumber/core/test/filters/name_filter.rb +1 -1
- data/lib/cucumber/core/test/filters/tag_filter.rb +1 -1
- data/lib/cucumber/core/test/filters.rb +3 -3
- data/lib/cucumber/core/test/hook_step.rb +1 -1
- data/lib/cucumber/core/test/location.rb +0 -2
- data/lib/cucumber/core/test/result/ambiguous.rb +41 -0
- data/lib/cucumber/core/test/result/boolean_methods.rb +28 -0
- data/lib/cucumber/core/test/result/duration.rb +33 -0
- data/lib/cucumber/core/test/result/failed.rb +72 -0
- data/lib/cucumber/core/test/result/flaky.rb +21 -0
- data/lib/cucumber/core/test/result/passed.rb +57 -0
- data/lib/cucumber/core/test/result/pending.rb +41 -0
- data/lib/cucumber/core/test/result/raisable.rb +46 -0
- data/lib/cucumber/core/test/result/skipped.rb +41 -0
- data/lib/cucumber/core/test/result/summary.rb +89 -0
- data/lib/cucumber/core/test/result/undefined.rb +41 -0
- data/lib/cucumber/core/test/result/unknown.rb +40 -0
- data/lib/cucumber/core/test/result/unknown_duration.rb +26 -0
- data/lib/cucumber/core/test/result.rb +15 -458
- data/lib/cucumber/core/test/runner.rb +25 -22
- data/lib/cucumber/core/test/step.rb +22 -23
- data/lib/cucumber/core/test/tag.rb +2 -0
- data/lib/cucumber/core/test/timer.rb +1 -1
- data/lib/cucumber/core.rb +6 -5
- metadata +26 -16
- data/lib/cucumber/core/platform.rb +0 -17
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'cucumber/
|
|
3
|
+
require 'cucumber/messages/helpers/test_step_result_comparator'
|
|
4
|
+
|
|
5
|
+
require_relative 'timer'
|
|
4
6
|
|
|
5
7
|
module Cucumber
|
|
6
8
|
module Core
|
|
@@ -45,6 +47,8 @@ module Cucumber
|
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
class RunningTestCase
|
|
50
|
+
include Cucumber::Messages::Helpers::TestStepResultComparator
|
|
51
|
+
|
|
48
52
|
def initialize
|
|
49
53
|
@timer = Timer.new.start
|
|
50
54
|
@status = Status::Unknown.new(Result::Unknown.new)
|
|
@@ -59,27 +63,27 @@ module Cucumber
|
|
|
59
63
|
end
|
|
60
64
|
|
|
61
65
|
def failed(step_result)
|
|
62
|
-
|
|
66
|
+
not_passing(step_result)
|
|
63
67
|
self
|
|
64
68
|
end
|
|
65
69
|
|
|
66
70
|
def ambiguous(step_result)
|
|
67
|
-
|
|
71
|
+
failed(step_result)
|
|
68
72
|
self
|
|
69
73
|
end
|
|
70
74
|
|
|
71
75
|
def passed(step_result)
|
|
72
|
-
@status = Status::Passing.new(step_result)
|
|
76
|
+
@status = Status::Passing.new(step_result) if test_step_result_rankings[step_result.to_message.status] > test_step_result_rankings[status.step_result_message.status]
|
|
73
77
|
self
|
|
74
78
|
end
|
|
75
79
|
|
|
76
80
|
def pending(_message, step_result)
|
|
77
|
-
|
|
81
|
+
failed(step_result)
|
|
78
82
|
self
|
|
79
83
|
end
|
|
80
84
|
|
|
81
85
|
def skipped(step_result)
|
|
82
|
-
|
|
86
|
+
failed(step_result)
|
|
83
87
|
self
|
|
84
88
|
end
|
|
85
89
|
|
|
@@ -96,6 +100,13 @@ module Cucumber
|
|
|
96
100
|
self
|
|
97
101
|
end
|
|
98
102
|
|
|
103
|
+
private
|
|
104
|
+
|
|
105
|
+
def not_passing(step_result)
|
|
106
|
+
@status = Status::NotPassing.new(step_result) if test_step_result_rankings[step_result.to_message.status] > test_step_result_rankings[status.step_result_message.status]
|
|
107
|
+
self
|
|
108
|
+
end
|
|
109
|
+
|
|
99
110
|
attr_reader :status
|
|
100
111
|
private :status
|
|
101
112
|
|
|
@@ -118,6 +129,10 @@ module Cucumber
|
|
|
118
129
|
def result
|
|
119
130
|
raise NoMethodError, 'Override me'
|
|
120
131
|
end
|
|
132
|
+
|
|
133
|
+
def step_result_message
|
|
134
|
+
step_result.to_message
|
|
135
|
+
end
|
|
121
136
|
end
|
|
122
137
|
|
|
123
138
|
class Unknown < Base
|
|
@@ -132,26 +147,14 @@ module Cucumber
|
|
|
132
147
|
end
|
|
133
148
|
end
|
|
134
149
|
|
|
135
|
-
class
|
|
150
|
+
class NotPassing < Base
|
|
136
151
|
def execute(test_step, monitor)
|
|
137
152
|
result = test_step.skip(monitor.result)
|
|
138
|
-
if result.undefined?
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
end
|
|
142
|
-
result
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
def result(duration)
|
|
146
|
-
step_result.with_duration(duration)
|
|
153
|
+
result = result.with_message(%(Undefined step: "#{test_step.text}")) if result.undefined?
|
|
154
|
+
result = result.with_appended_backtrace(test_step) unless test_step.hook?
|
|
155
|
+
result.describe_to(monitor, result)
|
|
147
156
|
end
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
Pending = Class.new(Failing)
|
|
151
|
-
|
|
152
|
-
Ambiguous = Class.new(Failing)
|
|
153
157
|
|
|
154
|
-
class Skipping < Failing
|
|
155
158
|
def result(duration)
|
|
156
159
|
step_result.with_duration(duration)
|
|
157
160
|
end
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'cucumber/core/test/empty_multiline_argument'
|
|
3
|
+
require_relative 'action'
|
|
4
|
+
require_relative 'empty_multiline_argument'
|
|
6
5
|
|
|
7
6
|
module Cucumber
|
|
8
7
|
module Core
|
|
@@ -20,48 +19,48 @@ module Cucumber
|
|
|
20
19
|
@action = action
|
|
21
20
|
end
|
|
22
21
|
|
|
23
|
-
def
|
|
24
|
-
|
|
22
|
+
def action_location
|
|
23
|
+
@action.location
|
|
25
24
|
end
|
|
26
25
|
|
|
27
|
-
def
|
|
28
|
-
|
|
26
|
+
def backtrace_line
|
|
27
|
+
"#{location}:in `#{text}'"
|
|
29
28
|
end
|
|
30
29
|
|
|
31
|
-
def
|
|
32
|
-
|
|
30
|
+
def describe_to(visitor, *)
|
|
31
|
+
visitor.test_step(self, *)
|
|
33
32
|
end
|
|
34
33
|
|
|
35
34
|
def execute(*)
|
|
36
35
|
@action.execute(*)
|
|
37
36
|
end
|
|
38
37
|
|
|
39
|
-
def
|
|
40
|
-
|
|
38
|
+
def hook?
|
|
39
|
+
false
|
|
41
40
|
end
|
|
42
41
|
|
|
43
|
-
def
|
|
44
|
-
self.class
|
|
42
|
+
def inspect
|
|
43
|
+
"#<#{self.class}: #{location}>"
|
|
45
44
|
end
|
|
46
45
|
|
|
47
|
-
def
|
|
48
|
-
|
|
46
|
+
def matching_locations
|
|
47
|
+
[location.merge(multiline_arg)]
|
|
49
48
|
end
|
|
50
49
|
|
|
51
|
-
def
|
|
52
|
-
|
|
50
|
+
def skip(*)
|
|
51
|
+
@action.skip(*)
|
|
53
52
|
end
|
|
54
53
|
|
|
55
|
-
def
|
|
56
|
-
|
|
54
|
+
def to_s
|
|
55
|
+
text
|
|
57
56
|
end
|
|
58
57
|
|
|
59
|
-
def
|
|
60
|
-
|
|
58
|
+
def with_action(action_location = nil, &)
|
|
59
|
+
self.class.new(id, text, location, multiline_arg, Test::Action::Defined.new(action_location, &))
|
|
61
60
|
end
|
|
62
61
|
|
|
63
|
-
def
|
|
64
|
-
|
|
62
|
+
def with_unskippable_action(action_location = nil, &)
|
|
63
|
+
self.class.new(id, text, location, multiline_arg, Test::Action::Unskippable.new(action_location, &))
|
|
65
64
|
end
|
|
66
65
|
end
|
|
67
66
|
end
|
data/lib/cucumber/core.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
require_relative 'core/gherkin/parser'
|
|
4
|
+
require_relative 'core/gherkin/document'
|
|
5
|
+
require_relative 'core/test/runner'
|
|
6
|
+
require_relative 'core/compiler'
|
|
7
|
+
require_relative 'core/event_bus'
|
|
8
|
+
|
|
8
9
|
require 'cucumber/messages'
|
|
9
10
|
require 'gherkin/query'
|
|
10
11
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cucumber-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 17.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Aslak Hellesøy
|
|
@@ -9,10 +9,9 @@ authors:
|
|
|
9
9
|
- Steve Tooke
|
|
10
10
|
- Oleg Sukhodolsky
|
|
11
11
|
- Tom Brand
|
|
12
|
-
autorequire:
|
|
13
12
|
bindir: bin
|
|
14
13
|
cert_chain: []
|
|
15
|
-
date:
|
|
14
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
16
15
|
dependencies:
|
|
17
16
|
- !ruby/object:Gem::Dependency
|
|
18
17
|
name: cucumber-gherkin
|
|
@@ -63,7 +62,7 @@ dependencies:
|
|
|
63
62
|
version: '6'
|
|
64
63
|
- - "<"
|
|
65
64
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: '
|
|
65
|
+
version: '10'
|
|
67
66
|
type: :runtime
|
|
68
67
|
prerelease: false
|
|
69
68
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -73,7 +72,7 @@ dependencies:
|
|
|
73
72
|
version: '6'
|
|
74
73
|
- - "<"
|
|
75
74
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: '
|
|
75
|
+
version: '10'
|
|
77
76
|
- !ruby/object:Gem::Dependency
|
|
78
77
|
name: rake
|
|
79
78
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -108,14 +107,14 @@ dependencies:
|
|
|
108
107
|
requirements:
|
|
109
108
|
- - "~>"
|
|
110
109
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: 1.
|
|
110
|
+
version: 1.87.0
|
|
112
111
|
type: :development
|
|
113
112
|
prerelease: false
|
|
114
113
|
version_requirements: !ruby/object:Gem::Requirement
|
|
115
114
|
requirements:
|
|
116
115
|
- - "~>"
|
|
117
116
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: 1.
|
|
117
|
+
version: 1.87.0
|
|
119
118
|
- !ruby/object:Gem::Dependency
|
|
120
119
|
name: rubocop-packaging
|
|
121
120
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,28 +135,28 @@ dependencies:
|
|
|
136
135
|
requirements:
|
|
137
136
|
- - "~>"
|
|
138
137
|
- !ruby/object:Gem::Version
|
|
139
|
-
version: 0.7.
|
|
138
|
+
version: 0.7.1
|
|
140
139
|
type: :development
|
|
141
140
|
prerelease: false
|
|
142
141
|
version_requirements: !ruby/object:Gem::Requirement
|
|
143
142
|
requirements:
|
|
144
143
|
- - "~>"
|
|
145
144
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: 0.7.
|
|
145
|
+
version: 0.7.1
|
|
147
146
|
- !ruby/object:Gem::Dependency
|
|
148
147
|
name: rubocop-rspec
|
|
149
148
|
requirement: !ruby/object:Gem::Requirement
|
|
150
149
|
requirements:
|
|
151
150
|
- - "~>"
|
|
152
151
|
- !ruby/object:Gem::Version
|
|
153
|
-
version: 3.
|
|
152
|
+
version: 3.9.0
|
|
154
153
|
type: :development
|
|
155
154
|
prerelease: false
|
|
156
155
|
version_requirements: !ruby/object:Gem::Requirement
|
|
157
156
|
requirements:
|
|
158
157
|
- - "~>"
|
|
159
158
|
- !ruby/object:Gem::Version
|
|
160
|
-
version: 3.
|
|
159
|
+
version: 3.9.0
|
|
161
160
|
description: Core library for the Cucumber BDD app
|
|
162
161
|
email: cukes@googlegroups.com
|
|
163
162
|
executables: []
|
|
@@ -172,6 +171,7 @@ files:
|
|
|
172
171
|
- lib/cucumber/core/event.rb
|
|
173
172
|
- lib/cucumber/core/event_bus.rb
|
|
174
173
|
- lib/cucumber/core/events.rb
|
|
174
|
+
- lib/cucumber/core/events/base.rb
|
|
175
175
|
- lib/cucumber/core/events/envelope.rb
|
|
176
176
|
- lib/cucumber/core/events/gherkin_source_parsed.rb
|
|
177
177
|
- lib/cucumber/core/events/test_case_created.rb
|
|
@@ -196,7 +196,6 @@ files:
|
|
|
196
196
|
- lib/cucumber/core/gherkin/writer/scenario_outline.rb
|
|
197
197
|
- lib/cucumber/core/gherkin/writer/step.rb
|
|
198
198
|
- lib/cucumber/core/gherkin/writer/table.rb
|
|
199
|
-
- lib/cucumber/core/platform.rb
|
|
200
199
|
- lib/cucumber/core/report/summary.rb
|
|
201
200
|
- lib/cucumber/core/test/action.rb
|
|
202
201
|
- lib/cucumber/core/test/action/defined.rb
|
|
@@ -214,6 +213,19 @@ files:
|
|
|
214
213
|
- lib/cucumber/core/test/hook_step.rb
|
|
215
214
|
- lib/cucumber/core/test/location.rb
|
|
216
215
|
- lib/cucumber/core/test/result.rb
|
|
216
|
+
- lib/cucumber/core/test/result/ambiguous.rb
|
|
217
|
+
- lib/cucumber/core/test/result/boolean_methods.rb
|
|
218
|
+
- lib/cucumber/core/test/result/duration.rb
|
|
219
|
+
- lib/cucumber/core/test/result/failed.rb
|
|
220
|
+
- lib/cucumber/core/test/result/flaky.rb
|
|
221
|
+
- lib/cucumber/core/test/result/passed.rb
|
|
222
|
+
- lib/cucumber/core/test/result/pending.rb
|
|
223
|
+
- lib/cucumber/core/test/result/raisable.rb
|
|
224
|
+
- lib/cucumber/core/test/result/skipped.rb
|
|
225
|
+
- lib/cucumber/core/test/result/summary.rb
|
|
226
|
+
- lib/cucumber/core/test/result/undefined.rb
|
|
227
|
+
- lib/cucumber/core/test/result/unknown.rb
|
|
228
|
+
- lib/cucumber/core/test/result/unknown_duration.rb
|
|
217
229
|
- lib/cucumber/core/test/runner.rb
|
|
218
230
|
- lib/cucumber/core/test/step.rb
|
|
219
231
|
- lib/cucumber/core/test/tag.rb
|
|
@@ -228,7 +240,6 @@ metadata:
|
|
|
228
240
|
mailing_list_uri: https://groups.google.com/forum/#!forum/cukes
|
|
229
241
|
source_code_uri: https://github.com/cucumber/cucumber-ruby-core
|
|
230
242
|
funding_uri: https://opencollective.com/cucumber
|
|
231
|
-
post_install_message:
|
|
232
243
|
rdoc_options:
|
|
233
244
|
- "--charset=UTF-8"
|
|
234
245
|
require_paths:
|
|
@@ -244,8 +255,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
244
255
|
- !ruby/object:Gem::Version
|
|
245
256
|
version: 3.2.8
|
|
246
257
|
requirements: []
|
|
247
|
-
rubygems_version:
|
|
248
|
-
signing_key:
|
|
258
|
+
rubygems_version: 4.0.10
|
|
249
259
|
specification_version: 4
|
|
250
|
-
summary: cucumber-core-
|
|
260
|
+
summary: cucumber-core-17.0.0
|
|
251
261
|
test_files: []
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Detect the platform we're running on so we can tweak behaviour
|
|
4
|
-
# in various places.
|
|
5
|
-
require 'rbconfig'
|
|
6
|
-
|
|
7
|
-
module Cucumber
|
|
8
|
-
unless defined?(Cucumber::VERSION)
|
|
9
|
-
JRUBY = defined?(JRUBY_VERSION)
|
|
10
|
-
IRONRUBY = defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ironruby'
|
|
11
|
-
WINDOWS = RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
|
|
12
|
-
OS_X = RbConfig::CONFIG['host_os'] =~ /darwin/
|
|
13
|
-
WINDOWS_MRI = WINDOWS && !JRUBY && !IRONRUBY
|
|
14
|
-
RUBY_2_0 = RUBY_VERSION =~ /^2\.0/
|
|
15
|
-
RUBY_1_9 = RUBY_VERSION =~ /^1\.9/
|
|
16
|
-
end
|
|
17
|
-
end
|