cucumber-core 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|