cucumber 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +19 -0
- data/Manifest.txt +5 -1
- data/examples/self_test/features/tons_of_cukes.feature +52 -0
- data/examples/sinatra/features/support/env.rb +6 -2
- data/examples/tickets/features/248.feature +11 -0
- data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
- data/features/cucumber_cli.feature +1 -1
- data/features/custom_formatter.feature +2 -2
- data/features/usage.feature +108 -0
- data/lib/autotest/cucumber_mixin.rb +1 -1
- data/lib/cucumber/ast/feature.rb +1 -1
- data/lib/cucumber/ast/features.rb +6 -0
- data/lib/cucumber/ast/step.rb +2 -13
- data/lib/cucumber/ast/step_invocation.rb +11 -3
- data/lib/cucumber/ast/table.rb +4 -0
- data/lib/cucumber/cli/configuration.rb +11 -14
- data/lib/cucumber/cli/main.rb +14 -21
- data/lib/cucumber/formatter.rb +1 -1
- data/lib/cucumber/formatter/html.rb +47 -8
- data/lib/cucumber/formatter/pretty.rb +1 -2
- data/lib/cucumber/formatter/rerun.rb +8 -0
- data/lib/cucumber/formatter/usage.rb +69 -0
- data/lib/cucumber/jbehave.rb +1 -0
- data/lib/cucumber/rails/world.rb +22 -21
- data/lib/cucumber/step_definition.rb +65 -54
- data/lib/cucumber/step_match.rb +10 -2
- data/lib/cucumber/step_mother.rb +1 -8
- data/lib/cucumber/version.rb +1 -1
- data/rails_generators/cucumber/templates/env.rb +2 -0
- data/rails_generators/feature/templates/steps.erb +1 -1
- data/spec/cucumber/ast/feature_spec.rb +2 -1
- data/spec/cucumber/ast/step_collection_spec.rb +8 -0
- data/spec/cucumber/cli/configuration_spec.rb +18 -6
- data/spec/cucumber/cli/main_spec.rb +1 -13
- data/spec/cucumber/parser/feature_parser_spec.rb +15 -15
- data/spec/cucumber/step_definition_spec.rb +21 -9
- metadata +7 -3
- data/gem_tasks/jar.rake +0 -67
data/History.txt
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
== 0.2.1 2009-03-25
|
2
|
+
|
3
|
+
This release fixes a few minor bugs and adds a couple of new features.
|
4
|
+
|
5
|
+
== Bugfixes
|
6
|
+
* Fixed Cucumber, and rails controller error handling (#49 Matt Patterson)
|
7
|
+
* HTML Formatter doesn't work correctly with scenario Outlines. (#260 Aslak Hellesøy)
|
8
|
+
* After blocks are run in reverse order of registration. (#113 Aslak Hellesøy)
|
9
|
+
* Snippets are showing 'Ands' (#249 Aslak Hellesøy)
|
10
|
+
|
11
|
+
=== New features
|
12
|
+
* Snippets use a regexp and block arguments if the step name has "quoted" arguments. (Aslak Hellesøy)
|
13
|
+
* Cucumber::Ast::Feature#to_sexp includes the file name. (Aslak Hellesøy)
|
14
|
+
* support/env.rb is not loaded when --dry-run is specified. This is to increase performance. (Aslak Hellesøy)
|
15
|
+
* New usage formatter. This is the foundation for editor autocompletion and navigation between steps and step definitions. (#209 Aslak Hellesøy)
|
16
|
+
|
17
|
+
=== Removed features
|
18
|
+
* -S/--step-definitions option introduced in 0.2.0 is removed. Use --format usage [--dry-run] [--no-color].
|
19
|
+
|
1
20
|
== 0.2.0 2009-03-18
|
2
21
|
|
3
22
|
This release sports a bunch of new and exciting features, as well a major rewrite of Cucumber's internals.
|
data/Manifest.txt
CHANGED
@@ -158,6 +158,7 @@ examples/self_test/features/sample.feature
|
|
158
158
|
examples/self_test/features/step_definitions/sample_steps.rb
|
159
159
|
examples/self_test/features/support/env.rb
|
160
160
|
examples/self_test/features/support/tag_count_formatter.rb
|
161
|
+
examples/self_test/features/tons_of_cukes.feature
|
161
162
|
examples/sinatra/Rakefile
|
162
163
|
examples/sinatra/app.rb
|
163
164
|
examples/sinatra/features/add.feature
|
@@ -177,9 +178,11 @@ examples/tickets/features/177/3.feature
|
|
177
178
|
examples/tickets/features/180.feature
|
178
179
|
examples/tickets/features/236.feature
|
179
180
|
examples/tickets/features/241.feature
|
181
|
+
examples/tickets/features/248.feature
|
180
182
|
examples/tickets/features/lib/eatting_machine.rb
|
181
183
|
examples/tickets/features/lib/pantry.rb
|
182
184
|
examples/tickets/features/scenario_outline.feature
|
185
|
+
examples/tickets/features/step_definitons/248_steps.rb
|
183
186
|
examples/tickets/features/step_definitons/scenario_outline_steps.rb
|
184
187
|
examples/tickets/features/step_definitons/tickets_steps.rb
|
185
188
|
examples/tickets/features/tickets.feature
|
@@ -197,13 +200,13 @@ features/report_called_undefined_steps.feature
|
|
197
200
|
features/step_definitions/cucumber_steps.rb
|
198
201
|
features/step_definitions/extra_steps.rb
|
199
202
|
features/support/env.rb
|
203
|
+
features/usage.feature
|
200
204
|
gem_tasks/deployment.rake
|
201
205
|
gem_tasks/environment.rake
|
202
206
|
gem_tasks/features.rake
|
203
207
|
gem_tasks/fix_cr_lf.rake
|
204
208
|
gem_tasks/flog.rake
|
205
209
|
gem_tasks/gemspec.rake
|
206
|
-
gem_tasks/jar.rake
|
207
210
|
gem_tasks/rspec.rake
|
208
211
|
gem_tasks/yard.rake
|
209
212
|
lib/autotest/cucumber.rb
|
@@ -250,6 +253,7 @@ lib/cucumber/formatter/profile.rb
|
|
250
253
|
lib/cucumber/formatter/progress.rb
|
251
254
|
lib/cucumber/formatter/rerun.rb
|
252
255
|
lib/cucumber/formatter/unicode.rb
|
256
|
+
lib/cucumber/formatter/usage.rb
|
253
257
|
lib/cucumber/formatters/unicode.rb
|
254
258
|
lib/cucumber/jbehave.rb
|
255
259
|
lib/cucumber/languages.yml
|
@@ -0,0 +1,52 @@
|
|
1
|
+
@lots
|
2
|
+
Feature: Tons of cukes
|
3
|
+
Scenario: Lots and lots
|
4
|
+
Given '2' cukes
|
5
|
+
Given '2' cukes
|
6
|
+
Given '2' cukes
|
7
|
+
Given '2' cukes
|
8
|
+
Given '2' cukes
|
9
|
+
Given '2' cukes
|
10
|
+
Given '2' cukes
|
11
|
+
Given '2' cukes
|
12
|
+
Given '2' cukes
|
13
|
+
Given '2' cukes
|
14
|
+
Given '2' cukes
|
15
|
+
Given '2' cukes
|
16
|
+
Given '2' cukes
|
17
|
+
Given '2' cukes
|
18
|
+
Given '2' cukes
|
19
|
+
Given '2' cukes
|
20
|
+
Given '2' cukes
|
21
|
+
Given '2' cukes
|
22
|
+
Given '2' cukes
|
23
|
+
Given '2' cukes
|
24
|
+
Given '2' cukes
|
25
|
+
Given '2' cukes
|
26
|
+
Given '2' cukes
|
27
|
+
Given '2' cukes
|
28
|
+
Given '2' cukes
|
29
|
+
Given '2' cukes
|
30
|
+
Given '2' cukes
|
31
|
+
Given '2' cukes
|
32
|
+
Given '2' cukes
|
33
|
+
Given '2' cukes
|
34
|
+
Given '2' cukes
|
35
|
+
Given '2' cukes
|
36
|
+
Given '2' cukes
|
37
|
+
Given '2' cukes
|
38
|
+
Given '2' cukes
|
39
|
+
Given '2' cukes
|
40
|
+
Given '2' cukes
|
41
|
+
Given '2' cukes
|
42
|
+
Given '2' cukes
|
43
|
+
Given '2' cukes
|
44
|
+
Given '2' cukes
|
45
|
+
Given '2' cukes
|
46
|
+
Given '2' cukes
|
47
|
+
Given '2' cukes
|
48
|
+
Given '2' cukes
|
49
|
+
Given '2' cukes
|
50
|
+
Given '2' cukes
|
51
|
+
Given '2' cukes
|
52
|
+
Given '2' cukes
|
@@ -1,7 +1,11 @@
|
|
1
|
+
# See http://wiki.github.com/aslakhellesoy/cucumber/sinatra
|
2
|
+
# for more details about Sinatra with Cucumber
|
3
|
+
|
1
4
|
# Sinatra
|
2
|
-
|
5
|
+
app_file = File.join(File.dirname(__FILE__), *%w[.. .. app.rb])
|
6
|
+
require app_file
|
3
7
|
# Force the application name because polyglot breaks the auto-detection logic.
|
4
|
-
Sinatra::Application.app_file =
|
8
|
+
Sinatra::Application.app_file = app_file
|
5
9
|
|
6
10
|
# RSpec
|
7
11
|
require 'spec/expectations'
|
@@ -166,7 +166,7 @@ Feature: Cucumber command line
|
|
166
166
|
"""
|
167
167
|
|
168
168
|
Scenario: --dry-run
|
169
|
-
When I run cucumber --dry-run --no-snippets features/*.feature
|
169
|
+
When I run cucumber --dry-run --no-snippets features/*.feature --tags ~@lots
|
170
170
|
Then it should pass with
|
171
171
|
"""
|
172
172
|
Feature: Calling undefined step
|
@@ -0,0 +1,108 @@
|
|
1
|
+
Feature: Cucumber command line
|
2
|
+
In order to be able to write an editor plugin that can jump between
|
3
|
+
steps and step definitions, Cucumber must provide a way to
|
4
|
+
display how they are related.
|
5
|
+
|
6
|
+
Scenario: List usage of step definitions
|
7
|
+
When I run cucumber features --format usage --dry-run
|
8
|
+
Then it should pass with
|
9
|
+
"""
|
10
|
+
/^passing without a table$/ # features/step_definitions/sample_steps.rb:12
|
11
|
+
Given passing without a table # features/background/failing_background_after_success.feature:4
|
12
|
+
Given <state> without a table # features/outline_sample.feature:6
|
13
|
+
Given <other_state> without a table # features/outline_sample.feature:7
|
14
|
+
/^failing without a table$/ # features/step_definitions/sample_steps.rb:15
|
15
|
+
Given failing without a table # features/background/failing_background.feature:4
|
16
|
+
Given failing without a table # features/background/scenario_outline_failing_background.feature:4
|
17
|
+
/^a step definition that calls an undefined step$/ # features/step_definitions/sample_steps.rb:19
|
18
|
+
Given a step definition that calls an undefined step # features/call_undefined_step_from_step_def.feature:4
|
19
|
+
/^call step "(.*)"$/ # features/step_definitions/sample_steps.rb:23
|
20
|
+
Given call step "a step definition that calls an undefined step" # features/call_undefined_step_from_step_def.feature:7
|
21
|
+
/^'(.+)' cukes$/ # features/step_definitions/sample_steps.rb:27
|
22
|
+
And '10' cukes # features/background/failing_background.feature:5
|
23
|
+
Given '10' cukes # features/background/passing_background.feature:4
|
24
|
+
Given '10' cukes # features/background/scenario_outline_passing_background.feature:4
|
25
|
+
Given '2' cukes # features/tons_of_cukes.feature:4
|
26
|
+
Given '2' cukes # features/tons_of_cukes.feature:5
|
27
|
+
Given '2' cukes # features/tons_of_cukes.feature:6
|
28
|
+
Given '2' cukes # features/tons_of_cukes.feature:7
|
29
|
+
Given '2' cukes # features/tons_of_cukes.feature:8
|
30
|
+
Given '2' cukes # features/tons_of_cukes.feature:9
|
31
|
+
Given '2' cukes # features/tons_of_cukes.feature:10
|
32
|
+
Given '2' cukes # features/tons_of_cukes.feature:11
|
33
|
+
Given '2' cukes # features/tons_of_cukes.feature:12
|
34
|
+
Given '2' cukes # features/tons_of_cukes.feature:13
|
35
|
+
Given '2' cukes # features/tons_of_cukes.feature:14
|
36
|
+
Given '2' cukes # features/tons_of_cukes.feature:15
|
37
|
+
Given '2' cukes # features/tons_of_cukes.feature:16
|
38
|
+
Given '2' cukes # features/tons_of_cukes.feature:17
|
39
|
+
Given '2' cukes # features/tons_of_cukes.feature:18
|
40
|
+
Given '2' cukes # features/tons_of_cukes.feature:19
|
41
|
+
Given '2' cukes # features/tons_of_cukes.feature:20
|
42
|
+
Given '2' cukes # features/tons_of_cukes.feature:21
|
43
|
+
Given '2' cukes # features/tons_of_cukes.feature:22
|
44
|
+
Given '2' cukes # features/tons_of_cukes.feature:23
|
45
|
+
Given '2' cukes # features/tons_of_cukes.feature:24
|
46
|
+
Given '2' cukes # features/tons_of_cukes.feature:25
|
47
|
+
Given '2' cukes # features/tons_of_cukes.feature:26
|
48
|
+
Given '2' cukes # features/tons_of_cukes.feature:27
|
49
|
+
Given '2' cukes # features/tons_of_cukes.feature:28
|
50
|
+
Given '2' cukes # features/tons_of_cukes.feature:29
|
51
|
+
Given '2' cukes # features/tons_of_cukes.feature:30
|
52
|
+
Given '2' cukes # features/tons_of_cukes.feature:31
|
53
|
+
Given '2' cukes # features/tons_of_cukes.feature:32
|
54
|
+
Given '2' cukes # features/tons_of_cukes.feature:33
|
55
|
+
Given '2' cukes # features/tons_of_cukes.feature:34
|
56
|
+
Given '2' cukes # features/tons_of_cukes.feature:35
|
57
|
+
Given '2' cukes # features/tons_of_cukes.feature:36
|
58
|
+
Given '2' cukes # features/tons_of_cukes.feature:37
|
59
|
+
Given '2' cukes # features/tons_of_cukes.feature:38
|
60
|
+
Given '2' cukes # features/tons_of_cukes.feature:39
|
61
|
+
Given '2' cukes # features/tons_of_cukes.feature:40
|
62
|
+
Given '2' cukes # features/tons_of_cukes.feature:41
|
63
|
+
Given '2' cukes # features/tons_of_cukes.feature:42
|
64
|
+
Given '2' cukes # features/tons_of_cukes.feature:43
|
65
|
+
Given '2' cukes # features/tons_of_cukes.feature:44
|
66
|
+
Given '2' cukes # features/tons_of_cukes.feature:45
|
67
|
+
Given '2' cukes # features/tons_of_cukes.feature:46
|
68
|
+
Given '2' cukes # features/tons_of_cukes.feature:47
|
69
|
+
Given '2' cukes # features/tons_of_cukes.feature:48
|
70
|
+
Given '2' cukes # features/tons_of_cukes.feature:49
|
71
|
+
Given '2' cukes # features/tons_of_cukes.feature:50
|
72
|
+
Given '2' cukes # features/tons_of_cukes.feature:51
|
73
|
+
Given '2' cukes # features/tons_of_cukes.feature:52
|
74
|
+
/^I should have '(.+)' cukes$/ # features/step_definitions/sample_steps.rb:31
|
75
|
+
Then I should have '10' cukes # features/background/failing_background.feature:8
|
76
|
+
Then I should have '10' cukes # features/background/failing_background.feature:11
|
77
|
+
Then I should have '10' cukes # features/background/passing_background.feature:7
|
78
|
+
Then I should have '10' cukes # features/background/passing_background.feature:10
|
79
|
+
Then I should have '10' cukes # features/background/pending_background.feature:7
|
80
|
+
Then I should have '10' cukes # features/background/pending_background.feature:10
|
81
|
+
Then I should have '<count>' cukes # features/background/scenario_outline_failing_background.feature:7
|
82
|
+
Then I should have '<count>' cukes # features/background/scenario_outline_failing_background.feature:13
|
83
|
+
Then I should have '<count>' cukes # features/background/scenario_outline_passing_background.feature:7
|
84
|
+
Then I should have '<count>' cukes # features/background/scenario_outline_passing_background.feature:13
|
85
|
+
/^'(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:35
|
86
|
+
And '10' global cukes # features/background/failing_background_after_success.feature:5
|
87
|
+
/^I should have '(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:42
|
88
|
+
Then I should have '10' global cukes # features/background/failing_background_after_success.feature:8
|
89
|
+
Then I should have '10' global cukes # features/background/failing_background_after_success.feature:11
|
90
|
+
/^table$/ # features/step_definitions/sample_steps.rb:46
|
91
|
+
Given table # features/background/multiline_args_background.feature:4
|
92
|
+
/^multiline string$/ # features/step_definitions/sample_steps.rb:50
|
93
|
+
And multiline string # features/background/multiline_args_background.feature:7
|
94
|
+
/^the table should be$/ # features/step_definitions/sample_steps.rb:54
|
95
|
+
Then the table should be # features/background/multiline_args_background.feature:14
|
96
|
+
Then the table should be # features/background/multiline_args_background.feature:24
|
97
|
+
/^the multiline string should be$/ # features/step_definitions/sample_steps.rb:58
|
98
|
+
Then the multiline string should be # features/background/multiline_args_background.feature:17
|
99
|
+
Then the multiline string should be # features/background/multiline_args_background.feature:27
|
100
|
+
/^passing$/ # features/step_definitions/sample_steps.rb:5
|
101
|
+
Given passing # features/sample.feature:10
|
102
|
+
/^failing expectation$/ # features/step_definitions/sample_steps.rb:62
|
103
|
+
Given failing expectation # features/failing_expectation.feature:4
|
104
|
+
/^failing$/ # features/step_definitions/sample_steps.rb:8
|
105
|
+
Given failing # features/sample.feature:16
|
106
|
+
|
107
|
+
"""
|
108
|
+
|
data/lib/cucumber/ast/feature.rb
CHANGED
data/lib/cucumber/ast/step.rb
CHANGED
@@ -78,19 +78,8 @@ module Cucumber
|
|
78
78
|
@file_colon_line ||= @feature_element.file_colon_line(@line) unless @feature_element.nil?
|
79
79
|
end
|
80
80
|
|
81
|
-
def
|
82
|
-
|
83
|
-
previous_step.actual_keyword
|
84
|
-
else
|
85
|
-
@keyword
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
protected
|
90
|
-
|
91
|
-
# TODO: Remove when we use StepCollection everywhere
|
92
|
-
def previous_step
|
93
|
-
@feature_element.previous_step(self)
|
81
|
+
def dom_id
|
82
|
+
@dom_id ||= file_colon_line.gsub(/\//, '_').gsub(/\./, '_').gsub(/:/, '_')
|
94
83
|
end
|
95
84
|
|
96
85
|
private
|
@@ -28,7 +28,7 @@ module Cucumber
|
|
28
28
|
unless @skip_invoke || options[:dry_run] || exception || @step_collection.exception
|
29
29
|
@skip_invoke = true
|
30
30
|
begin
|
31
|
-
step_mother.current_world.__cucumber_current_step = self
|
31
|
+
step_mother.current_world.__cucumber_current_step = self if step_mother.current_world # Nil in Pure Java
|
32
32
|
@step_match.invoke(step_mother.current_world, @multiline_arg)
|
33
33
|
status!(:passed)
|
34
34
|
rescue Pending => e
|
@@ -79,10 +79,10 @@ module Cucumber
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def actual_keyword
|
82
|
-
if [Cucumber.keyword_hash['and'], Cucumber.keyword_hash['but']].index(@keyword) && previous
|
82
|
+
if [Cucumber.keyword_hash['and'], Cucumber.keyword_hash['but']].index(@step.keyword) && previous
|
83
83
|
previous.actual_keyword
|
84
84
|
else
|
85
|
-
|
85
|
+
keyword
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
@@ -94,10 +94,18 @@ module Cucumber
|
|
94
94
|
@step.text_length
|
95
95
|
end
|
96
96
|
|
97
|
+
def keyword
|
98
|
+
@step.keyword
|
99
|
+
end
|
100
|
+
|
97
101
|
def file_colon_line
|
98
102
|
@step.file_colon_line
|
99
103
|
end
|
100
104
|
|
105
|
+
def dom_id
|
106
|
+
@step.dom_id
|
107
|
+
end
|
108
|
+
|
101
109
|
def backtrace_line
|
102
110
|
@step.backtrace_line
|
103
111
|
end
|
data/lib/cucumber/ast/table.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Cucumber
|
2
2
|
module Cli
|
3
3
|
class YmlLoadError < StandardError; end
|
4
|
-
|
4
|
+
|
5
5
|
class Configuration
|
6
6
|
FORMATS = %w{pretty profile progress rerun}
|
7
7
|
DEFAULT_FORMAT = 'pretty'
|
@@ -95,6 +95,7 @@ module Cucumber
|
|
95
95
|
Term::ANSIColor.coloring = v
|
96
96
|
end
|
97
97
|
opts.on("-d", "--dry-run", "Invokes formatters without executing the steps.",
|
98
|
+
"This also omits the loading of your support/env.rb file if it exists.",
|
98
99
|
"Implies --quiet.") do
|
99
100
|
@options[:dry_run] = true
|
100
101
|
@quiet = true
|
@@ -137,9 +138,6 @@ module Cucumber
|
|
137
138
|
opts.on("--no-diff", "Disable diff output on failing expectations.") do
|
138
139
|
@options[:diff_enabled] = false
|
139
140
|
end
|
140
|
-
opts.on("-S", "--step-definitions", "Print the regexp and line of all step definitions, then exit.") do
|
141
|
-
@options[:print_step_definitions] = true
|
142
|
-
end
|
143
141
|
opts.on_tail("--version", "Show version.") do
|
144
142
|
@out_stream.puts VERSION::STRING
|
145
143
|
Kernel.exit
|
@@ -175,10 +173,6 @@ module Cucumber
|
|
175
173
|
@options[:diff_enabled]
|
176
174
|
end
|
177
175
|
|
178
|
-
def print_step_definitions?
|
179
|
-
@options[:print_step_definitions]
|
180
|
-
end
|
181
|
-
|
182
176
|
def load_language
|
183
177
|
if Cucumber.language_incomplete?(@options[:lang])
|
184
178
|
list_keywords_and_exit(@options[:lang])
|
@@ -224,11 +218,12 @@ module Cucumber
|
|
224
218
|
|
225
219
|
def formatter_class(format)
|
226
220
|
case format
|
221
|
+
when 'html' then Formatter::Html
|
227
222
|
when 'pretty' then Formatter::Pretty
|
228
|
-
when 'progress' then Formatter::Progress
|
229
223
|
when 'profile' then Formatter::Profile
|
224
|
+
when 'progress' then Formatter::Progress
|
230
225
|
when 'rerun' then Formatter::Rerun
|
231
|
-
when '
|
226
|
+
when 'usage' then Formatter::Usage
|
232
227
|
else
|
233
228
|
constantize(format)
|
234
229
|
end
|
@@ -242,7 +237,9 @@ module Cucumber
|
|
242
237
|
end.flatten.uniq
|
243
238
|
sorted_files = files.sort { |a,b| (b =~ %r{/support/} || -1) <=> (a =~ %r{/support/} || -1) }.reject{|f| f =~ /^http/}
|
244
239
|
env_files = sorted_files.select {|f| f =~ %r{/support/env.rb} }
|
245
|
-
env_files + sorted_files.reject {|f| f =~ %r{/support/env.rb} }
|
240
|
+
files = env_files + sorted_files.reject {|f| f =~ %r{/support/env.rb} }
|
241
|
+
files.reject! {|f| f =~ %r{/support/env.rb} } if @options[:dry_run]
|
242
|
+
files
|
246
243
|
end
|
247
244
|
|
248
245
|
def feature_files
|
@@ -305,18 +302,18 @@ Defined profiles in cucumber.yml:
|
|
305
302
|
def cucumber_yml
|
306
303
|
return @cucumber_yml if @cucumber_yml
|
307
304
|
unless File.exist?('cucumber.yml')
|
308
|
-
raise(YmlLoadError,"cucumber.yml was not found. Please refer to cucumber's
|
305
|
+
raise(YmlLoadError,"cucumber.yml was not found. Please refer to cucumber's documentation on defining profiles in cucumber.yml. You must define a 'default' profile to use the cucumber command without any arguments.\nType 'cucumber --help' for usage.\n")
|
309
306
|
end
|
310
307
|
|
311
308
|
require 'yaml'
|
312
309
|
begin
|
313
310
|
@cucumber_yml = YAML::load(IO.read('cucumber.yml'))
|
314
311
|
rescue Exception => e
|
315
|
-
raise(YmlLoadError,"cucumber.yml was found, but could not be parsed. Please refer to cucumber's
|
312
|
+
raise(YmlLoadError,"cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentation on correct profile usage.\n")
|
316
313
|
end
|
317
314
|
|
318
315
|
if @cucumber_yml.nil? || !@cucumber_yml.is_a?(Hash)
|
319
|
-
raise(YmlLoadError,"cucumber.yml was found, but was blank or malformed. Please refer to cucumber's
|
316
|
+
raise(YmlLoadError,"cucumber.yml was found, but was blank or malformed. Please refer to cucumber's documentation on correct profile usage.\n")
|
320
317
|
end
|
321
318
|
|
322
319
|
return @cucumber_yml
|