kosmas58-cucumber 0.1.99.23 → 0.1.100.5
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.
- data/History.txt +8 -23
- data/Manifest.txt +14 -2
- data/examples/i18n/en-lol/Rakefile +6 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +8 -0
- data/examples/i18n/en-lol/lib/basket.rb +12 -0
- data/examples/i18n/en-lol/lib/belly.rb +11 -0
- data/examples/i18n/et/features/jagamine.feature +9 -0
- data/examples/jbehave/README.textile +4 -1
- data/examples/jbehave/features/trading.feature +4 -0
- data/examples/jbehave/pom.xml +5 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +6 -1
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/Rakefile +6 -0
- data/examples/selenium_webrat/features/search.feature +9 -0
- data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium_webrat/features/support/env.rb +41 -0
- data/examples/self_test/Rakefile +1 -1
- data/examples/self_test/features/background/failing_background.feature +1 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +1 -1
- data/examples/self_test/features/support/tag_count_formatter.rb +1 -1
- data/examples/tickets/Rakefile +13 -8
- data/examples/tickets/cucumber.yml +2 -1
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +17 -4
- data/examples/tickets/features/tickets.feature +1 -1
- data/features/background.feature +9 -11
- data/features/cucumber_cli.feature +24 -1
- data/features/cucumber_cli_outlines.feature +10 -19
- data/features/report_called_undefined_steps.feature +2 -0
- data/gem_tasks/rspec.rake +3 -2
- data/lib/cucumber.rb +7 -15
- data/lib/cucumber/ast.rb +3 -3
- data/lib/cucumber/ast/background.rb +28 -66
- data/lib/cucumber/ast/examples.rb +15 -3
- data/lib/cucumber/ast/feature.rb +20 -24
- data/lib/cucumber/ast/feature_element.rb +46 -0
- data/lib/cucumber/ast/features.rb +2 -21
- data/lib/cucumber/ast/outline_table.rb +46 -14
- data/lib/cucumber/ast/py_string.rb +9 -3
- data/lib/cucumber/ast/scenario.rb +34 -73
- data/lib/cucumber/ast/scenario_outline.rb +40 -42
- data/lib/cucumber/ast/step.rb +51 -90
- data/lib/cucumber/ast/step_collection.rb +66 -0
- data/lib/cucumber/ast/step_invocation.rb +110 -0
- data/lib/cucumber/ast/table.rb +41 -21
- data/lib/cucumber/ast/tags.rb +4 -11
- data/lib/cucumber/ast/visitor.rb +35 -19
- data/lib/cucumber/broadcaster.rb +1 -3
- data/lib/cucumber/cli/configuration.rb +25 -17
- data/lib/cucumber/cli/language_help_formatter.rb +4 -4
- data/lib/cucumber/cli/main.rb +6 -4
- data/lib/cucumber/core_ext/proc.rb +2 -2
- data/lib/cucumber/formatter/ansicolor.rb +0 -1
- data/lib/cucumber/formatter/console.rb +24 -34
- data/lib/cucumber/formatter/html.rb +18 -11
- data/lib/cucumber/formatter/pretty.rb +48 -36
- data/lib/cucumber/formatter/profile.rb +6 -6
- data/lib/cucumber/formatter/progress.rb +14 -22
- data/lib/cucumber/formatter/rerun.rb +6 -6
- data/lib/cucumber/jbehave.rb +21 -26
- data/lib/cucumber/languages.yml +17 -2
- data/lib/cucumber/parser/feature.rb +26 -29
- data/lib/cucumber/parser/feature.tt +17 -12
- data/lib/cucumber/parser/treetop_ext.rb +13 -13
- data/lib/cucumber/platform.rb +0 -1
- data/lib/cucumber/rails/world.rb +2 -2
- data/lib/cucumber/rake/task.rb +1 -2
- data/lib/cucumber/step_definition.rb +21 -12
- data/lib/cucumber/step_match.rb +49 -0
- data/lib/cucumber/step_mother.rb +100 -80
- data/lib/cucumber/version.rb +2 -2
- data/lib/cucumber/world.rb +53 -0
- data/rails_generators/cucumber/templates/paths.rb +1 -1
- data/rails_generators/cucumber/templates/webrat_steps.rb +17 -17
- data/rails_generators/feature/feature_generator.rb +5 -1
- data/rails_generators/feature/templates/steps.erb +0 -4
- data/spec/cucumber/ast/background_spec.rb +32 -41
- data/spec/cucumber/ast/feature_factory.rb +10 -1
- data/spec/cucumber/ast/feature_spec.rb +7 -30
- data/spec/cucumber/ast/py_string_spec.rb +7 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +3 -0
- data/spec/cucumber/ast/scenario_spec.rb +8 -25
- data/spec/cucumber/ast/step_collection_spec.rb +8 -0
- data/spec/cucumber/ast/step_spec.rb +49 -28
- data/spec/cucumber/ast/table_spec.rb +13 -3
- data/spec/cucumber/ast/tags_spec.rb +2 -18
- data/spec/cucumber/broadcaster_spec.rb +6 -5
- data/spec/cucumber/cli/configuration_spec.rb +7 -0
- data/spec/cucumber/cli/main_spec.rb +1 -1
- data/spec/cucumber/parser/feature_parser_spec.rb +6 -5
- data/spec/cucumber/step_definition_spec.rb +16 -5
- data/spec/cucumber/step_mother_spec.rb +6 -6
- data/spec/cucumber/world/pending_spec.rb +1 -1
- metadata +24 -5
- data/lib/cucumber/ast/filter.rb +0 -22
- data/lib/cucumber/ast/steps.rb +0 -13
@@ -23,7 +23,7 @@ module Cucumber
|
|
23
23
|
|
24
24
|
def visit_features(features)
|
25
25
|
super
|
26
|
-
print_summary
|
26
|
+
print_summary unless @options[:autoformat]
|
27
27
|
end
|
28
28
|
|
29
29
|
def visit_feature(feature)
|
@@ -34,14 +34,10 @@ module Cucumber
|
|
34
34
|
mkdir_p(dir) unless File.directory?(dir)
|
35
35
|
File.open(file, Cucumber.file_mode('w')) do |io|
|
36
36
|
@io = io
|
37
|
-
|
38
|
-
feature.accept(self)
|
39
|
-
end
|
37
|
+
super
|
40
38
|
end
|
41
39
|
else
|
42
|
-
|
43
|
-
feature.accept(self)
|
44
|
-
end
|
40
|
+
super
|
45
41
|
end
|
46
42
|
end
|
47
43
|
|
@@ -79,21 +75,22 @@ module Cucumber
|
|
79
75
|
|
80
76
|
def visit_feature_element(feature_element)
|
81
77
|
@indent = 2
|
82
|
-
|
83
|
-
feature_element.accept(self)
|
78
|
+
super
|
84
79
|
@io.puts
|
85
80
|
@io.flush
|
86
81
|
end
|
87
82
|
|
88
|
-
|
83
|
+
def visit_background(background)
|
89
84
|
@indent = 2
|
90
|
-
|
91
|
-
|
92
|
-
@
|
85
|
+
@in_background = true
|
86
|
+
super
|
87
|
+
@in_background = nil
|
88
|
+
@io.puts
|
89
|
+
@io.flush
|
93
90
|
end
|
94
91
|
|
95
|
-
def
|
96
|
-
|
92
|
+
def visit_background_name(keyword, name, file_colon_line, source_indent)
|
93
|
+
visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
97
94
|
end
|
98
95
|
|
99
96
|
def visit_examples_name(keyword, name)
|
@@ -102,12 +99,15 @@ module Cucumber
|
|
102
99
|
@indent = 4
|
103
100
|
end
|
104
101
|
|
105
|
-
def visit_scenario_name(keyword, name,
|
102
|
+
def visit_scenario_name(keyword, name, file_colon_line, source_indent)
|
103
|
+
visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
104
|
+
end
|
105
|
+
|
106
|
+
def visit_feature_element_name(keyword, name, file_colon_line, source_indent)
|
106
107
|
line = " #{keyword} #{name}"
|
107
|
-
line = format_string(line, :undefined) if @last_undefined
|
108
108
|
@io.print(line)
|
109
109
|
if @options[:source]
|
110
|
-
line_comment = " # #{
|
110
|
+
line_comment = " # #{file_colon_line}".indent(source_indent)
|
111
111
|
@io.print(format_string(line_comment, :comment))
|
112
112
|
end
|
113
113
|
@io.puts
|
@@ -116,27 +116,39 @@ module Cucumber
|
|
116
116
|
|
117
117
|
def visit_step(step)
|
118
118
|
@indent = 6
|
119
|
-
|
120
|
-
print_exception(exception, @indent) if exception
|
119
|
+
super
|
121
120
|
end
|
122
121
|
|
123
|
-
def visit_step_name(keyword,
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
@
|
122
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
123
|
+
@step_matches ||= []
|
124
|
+
|
125
|
+
non_failed_background_step_outside_background = !@in_background && background && (status != :failed)
|
126
|
+
@skip_step = @step_matches.index(step_match) || non_failed_background_step_outside_background
|
127
|
+
|
128
|
+
unless(@skip_step)
|
129
|
+
source_indent = nil unless @options[:source]
|
130
|
+
formatted_step_name = format_step(keyword, step_match, status, source_indent)
|
131
|
+
@io.puts(" " + formatted_step_name)
|
132
|
+
end
|
133
|
+
@step_matches << step_match
|
134
|
+
end
|
135
|
+
|
136
|
+
def visit_multiline_arg(multiline_arg)
|
137
|
+
return if @options[:no_multiline] || @skip_step
|
138
|
+
super
|
128
139
|
end
|
129
140
|
|
130
|
-
def
|
131
|
-
return if @
|
132
|
-
|
141
|
+
def visit_exception(exception, status)
|
142
|
+
return if @skip_step
|
143
|
+
print_exception(exception, status, @indent)
|
144
|
+
@io.flush
|
133
145
|
end
|
134
146
|
|
135
|
-
def visit_table_row(table_row
|
147
|
+
def visit_table_row(table_row)
|
136
148
|
@io.print @delim.indent(@indent)
|
137
|
-
|
149
|
+
super
|
138
150
|
@io.puts
|
139
|
-
print_exception(exception,
|
151
|
+
print_exception(table_row.exception, :failed, @indent) if table_row.exception
|
140
152
|
end
|
141
153
|
|
142
154
|
def visit_py_string(string, status)
|
@@ -146,8 +158,8 @@ module Cucumber
|
|
146
158
|
@io.flush
|
147
159
|
end
|
148
160
|
|
149
|
-
def visit_table_cell(table_cell
|
150
|
-
|
161
|
+
def visit_table_cell(table_cell)
|
162
|
+
super
|
151
163
|
end
|
152
164
|
|
153
165
|
def visit_table_cell_value(value, width, status)
|
@@ -157,9 +169,9 @@ module Cucumber
|
|
157
169
|
|
158
170
|
private
|
159
171
|
|
160
|
-
def print_summary
|
161
|
-
print_counts
|
162
|
-
print_snippets(
|
172
|
+
def print_summary
|
173
|
+
print_counts
|
174
|
+
print_snippets(@options)
|
163
175
|
end
|
164
176
|
|
165
177
|
end
|
@@ -17,17 +17,17 @@ module Cucumber
|
|
17
17
|
super
|
18
18
|
end
|
19
19
|
|
20
|
-
def visit_step_name(keyword,
|
20
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
21
21
|
duration = Time.now - @step_duration
|
22
22
|
super
|
23
23
|
|
24
|
-
if step_definition
|
25
|
-
description = format_step(keyword,
|
26
|
-
@step_definition_durations[step_definition] << [duration, description, @step.
|
24
|
+
if step_match.step_definition
|
25
|
+
description = format_step(keyword, step_match, status, nil)
|
26
|
+
@step_definition_durations[step_match.step_definition] << [duration, description, @step.file_colon_line]
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
def print_summary
|
30
|
+
def print_summary
|
31
31
|
super
|
32
32
|
@io.puts "\n\nTop #{NUMBER_OF_STEP_DEFINITONS_TO_SHOW} average slowest steps with #{NUMBER_OF_STEP_INVOCATIONS_TO_SHOW} slowest matches:\n"
|
33
33
|
|
@@ -60,7 +60,7 @@ module Cucumber
|
|
60
60
|
|
61
61
|
def print_step_definition(step_definition, mean_duration)
|
62
62
|
duration = sprintf("%.7f", mean_duration)
|
63
|
-
@io.puts format_string("#{duration} #{step_definition.
|
63
|
+
@io.puts format_string("#{duration} #{step_definition.backtrace_line}", :failed)
|
64
64
|
end
|
65
65
|
|
66
66
|
def print_step_definitions(duration_description_location, step_definition)
|
@@ -12,41 +12,33 @@ module Cucumber
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def visit_features(features)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
print_summary(features)
|
20
|
-
end
|
15
|
+
super
|
16
|
+
@io.puts
|
17
|
+
@io.puts
|
18
|
+
print_summary
|
21
19
|
end
|
22
20
|
|
23
|
-
def visit_multiline_arg(multiline_arg
|
21
|
+
def visit_multiline_arg(multiline_arg)
|
24
22
|
@multiline_arg = true
|
25
23
|
super
|
26
24
|
@multiline_arg = false
|
27
25
|
end
|
28
26
|
|
29
|
-
def
|
30
|
-
progress(:undefined) if feature_element.undefined?
|
31
|
-
super
|
32
|
-
end
|
33
|
-
|
34
|
-
def visit_step_name(keyword, step_name, status, step_definition, source_indent)
|
27
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
35
28
|
progress(status) unless status == :outline
|
36
29
|
end
|
37
30
|
|
38
31
|
def visit_table_cell_value(value, width, status)
|
39
32
|
progress(status) if (status != :thead) && !@multiline_arg
|
40
33
|
end
|
41
|
-
|
34
|
+
|
42
35
|
private
|
43
36
|
|
44
|
-
def print_summary
|
45
|
-
|
46
|
-
print_steps(
|
47
|
-
|
48
|
-
|
49
|
-
print_snippets(features, @options)
|
37
|
+
def print_summary
|
38
|
+
print_steps(:pending)
|
39
|
+
print_steps(:failed)
|
40
|
+
print_counts
|
41
|
+
print_snippets(@options)
|
50
42
|
end
|
51
43
|
|
52
44
|
CHARS = {
|
@@ -54,7 +46,7 @@ module Cucumber
|
|
54
46
|
:failed => 'F',
|
55
47
|
:undefined => 'U',
|
56
48
|
:pending => 'P',
|
57
|
-
:skipped => '
|
49
|
+
:skipped => '-'
|
58
50
|
}
|
59
51
|
|
60
52
|
def progress(status)
|
@@ -65,4 +57,4 @@ module Cucumber
|
|
65
57
|
|
66
58
|
end
|
67
59
|
end
|
68
|
-
end
|
60
|
+
end
|
@@ -5,13 +5,13 @@ module Cucumber
|
|
5
5
|
super(step_mother)
|
6
6
|
@io = io
|
7
7
|
@file_names = []
|
8
|
-
@
|
8
|
+
@file_colon_lines = Hash.new{|h,k| h[k] = []}
|
9
9
|
end
|
10
10
|
|
11
11
|
def visit_features(features)
|
12
12
|
super
|
13
13
|
files = @file_names.uniq.map do |file|
|
14
|
-
lines = @
|
14
|
+
lines = @file_colon_lines[file]
|
15
15
|
"#{file}:#{lines.join(':')}"
|
16
16
|
end
|
17
17
|
@io.puts files.join(' ')
|
@@ -21,15 +21,15 @@ module Cucumber
|
|
21
21
|
@rerun = false
|
22
22
|
super
|
23
23
|
if @rerun
|
24
|
-
file, line = *feature_element.
|
25
|
-
@
|
24
|
+
file, line = *feature_element.file_colon_line.split(':')
|
25
|
+
@file_colon_lines[file] << line
|
26
26
|
@file_names << file
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
def visit_step_name(keyword,
|
30
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
31
31
|
@rerun = true if [:failed].index(status)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
data/lib/cucumber/jbehave.rb
CHANGED
@@ -23,65 +23,60 @@ if defined?(JRUBY_VERSION)
|
|
23
23
|
def initialize(jbehave_steps, jbehave_candidate_step)
|
24
24
|
@jbehave_steps = jbehave_steps
|
25
25
|
@jbehave_candidate_step = jbehave_candidate_step
|
26
|
+
@regexp = Regexp.new(jbehave_candidate_step.pattern.pattern)
|
26
27
|
end
|
27
|
-
|
28
|
-
def
|
29
|
-
|
30
|
-
|
28
|
+
|
29
|
+
def step_match(name_to_match, name_to_report)
|
30
|
+
if(match = name_to_match.match(@regexp))
|
31
|
+
StepMatch.new(self, name_to_match, name_to_report, match.captures)
|
32
|
+
else
|
33
|
+
nil
|
34
|
+
end
|
31
35
|
end
|
32
|
-
|
36
|
+
|
33
37
|
def file_colon_line
|
34
38
|
@jbehave_steps.java_class.name
|
35
39
|
end
|
36
40
|
|
37
41
|
def format_args(step_name, format)
|
38
|
-
|
39
|
-
regexp = Regexp.new(java_pattern)
|
40
|
-
step_name.gzub(regexp, format)
|
42
|
+
step_name.gzub(@regexp, format)
|
41
43
|
end
|
42
44
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
step_name.match(regexp).captures
|
47
|
-
end
|
45
|
+
def invoke(world, args, step_name)
|
46
|
+
step = @jbehave_candidate_step.createFrom("Given #{step_name}") # JBehave doesn't care about the adverb.
|
47
|
+
step = @jbehave_candidate_step.__send__(:createStep, "Given #{step_name}", args) # JBehave doesn't care about the adverb.
|
48
48
|
|
49
|
-
def execute(step_name, world, *args)
|
50
|
-
step = @jbehave_candidate_step.createFrom("Given #{step_name}")
|
51
49
|
result = step.perform
|
52
|
-
result.describeTo(
|
50
|
+
result.describeTo(Reporter)
|
53
51
|
end
|
54
52
|
end
|
55
53
|
|
56
|
-
class JBehaveException < Exception
|
57
|
-
end
|
58
|
-
|
59
54
|
# Implements the org.jbehave.scenario.reporters.ScenarioReporter methods
|
60
55
|
class Reporter
|
61
|
-
def successful(step_text)
|
56
|
+
def self.successful(step_text)
|
62
57
|
# noop
|
63
58
|
end
|
64
59
|
|
65
|
-
def failed(step, java_exception)
|
60
|
+
def self.failed(step, java_exception)
|
66
61
|
raise java_exception_to_ruby_exception(java_exception)
|
67
62
|
end
|
68
63
|
|
69
64
|
private
|
70
65
|
|
71
|
-
def java_exception_to_ruby_exception(java_exception)
|
66
|
+
def self.java_exception_to_ruby_exception(java_exception)
|
72
67
|
# OK, this is a little funky - JRuby weirdness
|
73
68
|
ruby_exception = org.jruby.NativeException.new(JRuby.runtime, JBehaveException, java_exception)
|
74
69
|
ruby_exception.set_backtrace([]) # work around backtrace bug in jruby
|
75
|
-
|
76
|
-
exception = JBehaveException.new(java_exception.getMessage)
|
70
|
+
exception = JBehaveException.new("#{java_exception.getClass.getName}: #{java_exception.getMessage}")
|
77
71
|
bt = ruby_exception.backtrace
|
78
72
|
Exception.cucumber_strip_backtrace!(bt, nil, nil)
|
79
73
|
exception.set_backtrace(bt)
|
80
74
|
exception
|
81
75
|
end
|
82
76
|
end
|
83
|
-
|
84
|
-
|
77
|
+
|
78
|
+
class JBehaveException < Exception
|
79
|
+
end
|
85
80
|
|
86
81
|
def self.snippet_text(step_keyword, step_name)
|
87
82
|
camel = step_name.gsub(/(\s.)/) {$1.upcase.strip}
|
data/lib/cucumber/languages.yml
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
then: Then
|
21
21
|
and: And
|
22
22
|
but: But
|
23
|
+
|
23
24
|
# Please help us keeping the languages below uptodate. The parsers for a language
|
24
25
|
# that is missing a keyword will expect the English word until the missing word(s)
|
25
26
|
# are added.
|
@@ -94,6 +95,20 @@
|
|
94
95
|
then: Dann
|
95
96
|
and: Und
|
96
97
|
but: Aber
|
98
|
+
"en-au":
|
99
|
+
name: Australian
|
100
|
+
native: Australian
|
101
|
+
encoding: UTF-8
|
102
|
+
feature: Crikey
|
103
|
+
background: Background
|
104
|
+
scenario: Mate
|
105
|
+
scenario_outline: Blokes
|
106
|
+
examples: Cobber
|
107
|
+
given: Ya know how
|
108
|
+
when: When
|
109
|
+
then: Ya gotta
|
110
|
+
and: N
|
111
|
+
but: Cept
|
97
112
|
"en-lol":
|
98
113
|
name: LOLCAT
|
99
114
|
native: LOLCAT
|
@@ -103,7 +118,7 @@
|
|
103
118
|
scenario: MISHUN
|
104
119
|
scenario_outline: MISHUN SRSLY
|
105
120
|
examples: EXAMPLZ
|
106
|
-
given:
|
121
|
+
given: I CAN HAZ
|
107
122
|
when: WEN
|
108
123
|
then: DEN
|
109
124
|
and: AN
|
@@ -115,7 +130,7 @@
|
|
115
130
|
feature: Feature
|
116
131
|
background: Background
|
117
132
|
scenario: Scenario
|
118
|
-
scenario_outline:
|
133
|
+
scenario_outline: All y'all
|
119
134
|
examples: Examples
|
120
135
|
given: Given y'all
|
121
136
|
when: When y'all
|
@@ -45,7 +45,7 @@ module Cucumber
|
|
45
45
|
elements[5]
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
48
|
+
def bg
|
49
49
|
elements[6]
|
50
50
|
end
|
51
51
|
|
@@ -57,11 +57,14 @@ module Cucumber
|
|
57
57
|
|
58
58
|
module Feature2
|
59
59
|
def build
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
background = bg.respond_to?(:build) ? bg.build : nil
|
61
|
+
Ast::Feature.new(
|
62
|
+
background,
|
63
|
+
comment.build,
|
64
|
+
tags.build,
|
65
|
+
header.text_value,
|
66
|
+
feature_elements.build(background)
|
67
|
+
)
|
65
68
|
end
|
66
69
|
end
|
67
70
|
|
@@ -311,7 +314,7 @@ module Cucumber
|
|
311
314
|
if r1
|
312
315
|
s2, i2 = [], index
|
313
316
|
loop do
|
314
|
-
if input.index(Regexp.new('[^@\\n\\t ]'), index) == index
|
317
|
+
if input.index(Regexp.new('[^@\\r\\n\\t ]'), index) == index
|
315
318
|
r3 = (SyntaxNode).new(input, index...(index + 1))
|
316
319
|
@index += 1
|
317
320
|
else
|
@@ -548,8 +551,8 @@ module Cucumber
|
|
548
551
|
end
|
549
552
|
|
550
553
|
module FeatureElements0
|
551
|
-
def build
|
552
|
-
elements.map{|s| s.build}
|
554
|
+
def build(background)
|
555
|
+
elements.map{|s| s.build(background)}
|
553
556
|
end
|
554
557
|
end
|
555
558
|
|
@@ -611,6 +614,10 @@ module Cucumber
|
|
611
614
|
elements[5]
|
612
615
|
end
|
613
616
|
|
617
|
+
def white
|
618
|
+
elements[6]
|
619
|
+
end
|
620
|
+
|
614
621
|
def steps
|
615
622
|
elements[7]
|
616
623
|
end
|
@@ -621,8 +628,9 @@ module Cucumber
|
|
621
628
|
end
|
622
629
|
|
623
630
|
module Scenario1
|
624
|
-
def build
|
631
|
+
def build(background)
|
625
632
|
Ast::Scenario.new(
|
633
|
+
background,
|
626
634
|
comment.build,
|
627
635
|
tags.build,
|
628
636
|
scenario_keyword.line,
|
@@ -669,26 +677,14 @@ module Cucumber
|
|
669
677
|
r7 = _nt_line_to_eol
|
670
678
|
s0 << r7
|
671
679
|
if r7
|
672
|
-
|
673
|
-
r9 = _nt_white
|
674
|
-
if r9
|
675
|
-
r8 = r9
|
676
|
-
else
|
677
|
-
r10 = _nt_eof
|
678
|
-
if r10
|
679
|
-
r8 = r10
|
680
|
-
else
|
681
|
-
self.index = i8
|
682
|
-
r8 = nil
|
683
|
-
end
|
684
|
-
end
|
680
|
+
r8 = _nt_white
|
685
681
|
s0 << r8
|
686
682
|
if r8
|
687
|
-
|
688
|
-
s0 <<
|
689
|
-
if
|
690
|
-
|
691
|
-
s0 <<
|
683
|
+
r9 = _nt_steps
|
684
|
+
s0 << r9
|
685
|
+
if r9
|
686
|
+
r10 = _nt_white
|
687
|
+
s0 << r10
|
692
688
|
end
|
693
689
|
end
|
694
690
|
end
|
@@ -750,8 +746,9 @@ module Cucumber
|
|
750
746
|
end
|
751
747
|
|
752
748
|
module ScenarioOutline1
|
753
|
-
def build
|
749
|
+
def build(background)
|
754
750
|
Ast::ScenarioOutline.new(
|
751
|
+
background,
|
755
752
|
comment.build,
|
756
753
|
tags.build,
|
757
754
|
scenario_outline_keyword.line,
|