cucumber-core 3.1.0 → 3.2.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 +9 -9
- data/lib/cucumber/core.rb +4 -4
- data/lib/cucumber/core/ast/step.rb +9 -0
- data/lib/cucumber/core/events.rb +13 -1
- data/lib/cucumber/core/gherkin/parser.rb +5 -3
- data/lib/cucumber/core/test/runner.rb +6 -1
- data/lib/cucumber/core/test/step.rb +4 -0
- data/lib/cucumber/core/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: def2f4af0efb06a5de6bca015b7459e1a53e20c1
|
4
|
+
data.tar.gz: 9ed2ba01df834b8d3459c5c7355c88e07b8a3376
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4a7e7bdda20e2cc93169f9ae804d602e2b988441eef65ea41897dbc9b4903a9149d15285e1e38f98dda1b4b547b495e54b32e4e4a209d55f18f0e6d3e3114fe
|
7
|
+
data.tar.gz: 0037d709bd4b60ea7d5f7366d32c2e8e569f2021fef5141037f08220e75668b2e96ca209e114fc54130ff0141cfcd89ba159c16e6cce786dcc2a1354f54fa1bd
|
data/CHANGELOG.md
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber.
|
2
2
|
|
3
|
-
## [
|
4
|
-
|
5
|
-
### Changed
|
6
|
-
|
7
|
-
* N/A
|
3
|
+
## [3.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0)
|
8
4
|
|
9
5
|
### Added
|
10
6
|
|
11
|
-
*
|
7
|
+
* Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
|
8
|
+
* 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)
|
12
9
|
|
13
10
|
### Fixed
|
14
11
|
|
15
|
-
*
|
12
|
+
* Set message and backtrace for undefined result also when skipping (@brasmusson)
|
16
13
|
|
17
|
-
|
14
|
+
## [3.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0)
|
15
|
+
|
16
|
+
### Changed
|
18
17
|
|
19
|
-
*
|
18
|
+
* Upgraded to `cucumber-tag_expressions` 1.1.0
|
19
|
+
* Upgraded to `gherkin` 5.0.0
|
20
20
|
|
21
21
|
## [3.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0) (2017-09-27)
|
22
22
|
|
data/lib/cucumber/core.rb
CHANGED
@@ -15,17 +15,17 @@ module Cucumber
|
|
15
15
|
self
|
16
16
|
end
|
17
17
|
|
18
|
-
def compile(gherkin_documents, last_receiver, filters = [])
|
18
|
+
def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)
|
19
19
|
first_receiver = compose(filters, last_receiver)
|
20
20
|
compiler = Compiler.new(first_receiver)
|
21
|
-
parse gherkin_documents, compiler
|
21
|
+
parse gherkin_documents, compiler, event_bus
|
22
22
|
self
|
23
23
|
end
|
24
24
|
|
25
25
|
private
|
26
26
|
|
27
|
-
def parse(gherkin_documents, compiler)
|
28
|
-
parser = Core::Gherkin::Parser.new(compiler)
|
27
|
+
def parse(gherkin_documents, compiler, event_bus)
|
28
|
+
parser = Core::Gherkin::Parser.new(compiler, event_bus)
|
29
29
|
gherkin_documents.each do |document|
|
30
30
|
parser.document document
|
31
31
|
end
|
@@ -35,11 +35,16 @@ module Cucumber
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
def original_location
|
39
|
+
location
|
40
|
+
end
|
41
|
+
|
38
42
|
def inspect
|
39
43
|
keyword_and_text = [keyword, text].join(": ")
|
40
44
|
%{#<#{self.class} "#{keyword_and_text}" (#{location})>}
|
41
45
|
end
|
42
46
|
|
47
|
+
|
43
48
|
private
|
44
49
|
|
45
50
|
def children
|
@@ -61,6 +66,10 @@ module Cucumber
|
|
61
66
|
@outline_step.all_locations
|
62
67
|
end
|
63
68
|
|
69
|
+
def original_location
|
70
|
+
@outline_step.location
|
71
|
+
end
|
72
|
+
|
64
73
|
alias :step_backtrace_line :backtrace_line
|
65
74
|
|
66
75
|
def backtrace_line
|
data/lib/cucumber/core/events.rb
CHANGED
@@ -1,9 +1,20 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
require 'cucumber/core/event'
|
2
3
|
|
3
4
|
module Cucumber
|
4
5
|
module Core
|
5
6
|
module Events
|
6
7
|
|
8
|
+
# Signals that a gherkin source has been parsed
|
9
|
+
class GherkinSourceParsed < Event.new(:uri, :gherkin_document)
|
10
|
+
# The uri of the file
|
11
|
+
attr_reader :uri
|
12
|
+
|
13
|
+
# @return [GherkinDocument] the GherkinDocument Ast Node
|
14
|
+
attr_reader :gherkin_document
|
15
|
+
|
16
|
+
end
|
17
|
+
|
7
18
|
# Signals that a {Test::Case} is about to be executed
|
8
19
|
class TestCaseStarted < Event.new(:test_case)
|
9
20
|
|
@@ -43,10 +54,11 @@ module Cucumber
|
|
43
54
|
|
44
55
|
end
|
45
56
|
|
46
|
-
# The registry contains all the events registered in the core,
|
57
|
+
# The registry contains all the events registered in the core,
|
47
58
|
# that will be used by the {EventBus} by default.
|
48
59
|
def self.registry
|
49
60
|
build_registry(
|
61
|
+
GherkinSourceParsed,
|
50
62
|
TestCaseStarted,
|
51
63
|
TestStepStarted,
|
52
64
|
TestStepFinished,
|
@@ -11,11 +11,12 @@ module Cucumber
|
|
11
11
|
ParseError = Class.new(StandardError)
|
12
12
|
|
13
13
|
class Parser
|
14
|
-
attr_reader :receiver
|
15
|
-
private :receiver
|
14
|
+
attr_reader :receiver, :event_bus
|
15
|
+
private :receiver, :event_bus
|
16
16
|
|
17
|
-
def initialize(receiver)
|
17
|
+
def initialize(receiver, event_bus)
|
18
18
|
@receiver = receiver
|
19
|
+
@event_bus = event_bus
|
19
20
|
end
|
20
21
|
|
21
22
|
def document(document)
|
@@ -26,6 +27,7 @@ module Cucumber
|
|
26
27
|
|
27
28
|
begin
|
28
29
|
result = parser.parse(scanner, token_matcher)
|
30
|
+
event_bus.gherkin_source_parsed(document.uri, result.dup)
|
29
31
|
|
30
32
|
receiver.feature core_builder.feature(result)
|
31
33
|
rescue *PARSER_ERRORS => e
|
@@ -126,7 +126,12 @@ module Cucumber
|
|
126
126
|
|
127
127
|
class Failing < Base
|
128
128
|
def execute(test_step, monitor, &continue)
|
129
|
-
test_step.skip(monitor.result)
|
129
|
+
result = test_step.skip(monitor.result)
|
130
|
+
if result.undefined?
|
131
|
+
result = result.with_message(%(Undefined step: "#{test_step.text}"))
|
132
|
+
result = result.with_appended_backtrace(test_step.source.last)
|
133
|
+
end
|
134
|
+
result
|
130
135
|
end
|
131
136
|
|
132
137
|
def result(duration)
|
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: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: gherkin
|
@@ -229,8 +229,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
229
229
|
version: '0'
|
230
230
|
requirements: []
|
231
231
|
rubyforge_project:
|
232
|
-
rubygems_version: 2.
|
232
|
+
rubygems_version: 2.5.2
|
233
233
|
signing_key:
|
234
234
|
specification_version: 4
|
235
|
-
summary: cucumber-core-3.
|
235
|
+
summary: cucumber-core-3.2.0
|
236
236
|
test_files: []
|