cucumber 0.2.3 → 0.3.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.
Files changed (128) hide show
  1. data/History.txt +56 -1
  2. data/Manifest.txt +70 -49
  3. data/config/hoe.rb +1 -1
  4. data/cucumber.yml +1 -1
  5. data/examples/i18n/bg/Rakefile +6 -0
  6. data/examples/i18n/bg/features/addition.feature +11 -0
  7. data/examples/i18n/bg/features/consecutive_calculations.feature +18 -0
  8. data/examples/i18n/bg/features/division.feature +16 -0
  9. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  10. data/examples/i18n/bg/features/support/env.rb +6 -0
  11. data/examples/i18n/bg/features/support/world.rb +8 -0
  12. data/examples/i18n/bg/lib/calculator.rb +24 -0
  13. data/examples/i18n/ru/features/support/world.rb +4 -3
  14. data/examples/i18n/sk/Rakefile +6 -0
  15. data/examples/i18n/sk/features/addition.feature +16 -0
  16. data/examples/i18n/sk/features/division.feature +9 -0
  17. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  18. data/examples/i18n/sk/lib/calculator.rb +14 -0
  19. data/examples/self_test/features/background/background_with_name.feature +7 -0
  20. data/examples/self_test/features/background/passing_background.feature +2 -2
  21. data/examples/self_test/features/step_definitions/sample_steps.rb +18 -2
  22. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  23. data/examples/sinatra/features/support/env.rb +2 -6
  24. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +1 -4
  25. data/examples/tickets/Rakefile +1 -1
  26. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  27. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  28. data/examples/tickets/features/270/back.feature +14 -0
  29. data/examples/tickets/features/270/back.steps.rb +14 -0
  30. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  31. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  32. data/examples/tickets/features/279/wrong.feature_ +11 -0
  33. data/examples/tickets/features/step_definitons/tickets_steps.rb +0 -7
  34. data/features/background.feature +21 -3
  35. data/features/cucumber_cli.feature +18 -5
  36. data/features/cucumber_cli_outlines.feature +4 -1
  37. data/features/rake_task.feature +132 -0
  38. data/features/snippet.feature +23 -0
  39. data/features/step_definitions/cucumber_steps.rb +46 -15
  40. data/features/support/env.rb +61 -4
  41. data/features/usage.feature +5 -0
  42. data/gem_tasks/deployment.rake +1 -1
  43. data/lib/cucumber/ast/background.rb +14 -4
  44. data/lib/cucumber/ast/examples.rb +0 -12
  45. data/lib/cucumber/ast/feature.rb +2 -12
  46. data/lib/cucumber/ast/feature_element.rb +4 -8
  47. data/lib/cucumber/ast/features.rb +1 -1
  48. data/lib/cucumber/ast/outline_table.rb +20 -20
  49. data/lib/cucumber/ast/py_string.rb +6 -11
  50. data/lib/cucumber/ast/scenario.rb +1 -8
  51. data/lib/cucumber/ast/scenario_outline.rb +1 -11
  52. data/lib/cucumber/ast/step.rb +3 -9
  53. data/lib/cucumber/ast/step_collection.rb +0 -4
  54. data/lib/cucumber/ast/step_invocation.rb +5 -6
  55. data/lib/cucumber/ast/table.rb +5 -22
  56. data/lib/cucumber/ast/tags.rb +9 -9
  57. data/lib/cucumber/ast/visitor.rb +12 -25
  58. data/lib/cucumber/cli/configuration.rb +4 -4
  59. data/lib/cucumber/cli/main.rb +10 -3
  60. data/lib/cucumber/core_ext/instance_exec.rb +17 -4
  61. data/lib/cucumber/formatter/ansicolor.rb +1 -1
  62. data/lib/cucumber/formatter/console.rb +2 -1
  63. data/lib/cucumber/formatter/html.rb +21 -7
  64. data/lib/cucumber/formatter/pretty.rb +27 -20
  65. data/lib/cucumber/formatter/usage.rb +16 -0
  66. data/lib/cucumber/languages.yml +23 -5
  67. data/lib/cucumber/parser/feature.rb +231 -114
  68. data/lib/cucumber/parser/feature.tt +120 -25
  69. data/lib/cucumber/parser/table.rb +37 -25
  70. data/lib/cucumber/parser/table.tt +15 -3
  71. data/lib/cucumber/parser/treetop_ext.rb +48 -9
  72. data/lib/cucumber/rake/task.rb +29 -6
  73. data/lib/cucumber/step_definition.rb +4 -2
  74. data/lib/cucumber/step_mother.rb +143 -26
  75. data/lib/cucumber/version.rb +2 -2
  76. data/rails_generators/cucumber/templates/paths.rb +13 -4
  77. data/rails_generators/cucumber/templates/webrat_steps.rb +16 -0
  78. data/{specs → spec}/cucumber/ast/background_spec.rb +1 -0
  79. data/{specs → spec}/cucumber/ast/feature_factory.rb +1 -1
  80. data/{specs → spec}/cucumber/ast/feature_spec.rb +2 -2
  81. data/{specs → spec}/cucumber/ast/py_string_spec.rb +0 -0
  82. data/{specs → spec}/cucumber/ast/scenario_outline_spec.rb +0 -0
  83. data/{specs → spec}/cucumber/ast/scenario_spec.rb +0 -27
  84. data/{specs → spec}/cucumber/ast/step_collection_spec.rb +0 -0
  85. data/{specs → spec}/cucumber/ast/step_spec.rb +0 -0
  86. data/{specs → spec}/cucumber/ast/table_spec.rb +2 -2
  87. data/{specs → spec}/cucumber/broadcaster_spec.rb +0 -0
  88. data/{specs → spec}/cucumber/cli/configuration_spec.rb +0 -0
  89. data/{specs → spec}/cucumber/cli/main_spec.rb +5 -1
  90. data/spec/cucumber/core_ext/proc_spec.rb +54 -0
  91. data/{specs → spec}/cucumber/core_ext/string_spec.rb +0 -0
  92. data/{specs → spec}/cucumber/formatter/ansicolor_spec.rb +0 -0
  93. data/{specs → spec}/cucumber/formatter/color_io_spec.rb +0 -0
  94. data/{specs → spec}/cucumber/formatter/html/cucumber.css +0 -0
  95. data/{specs → spec}/cucumber/formatter/html/cucumber.js +0 -0
  96. data/{specs → spec}/cucumber/formatter/html/index.html +0 -0
  97. data/{specs → spec}/cucumber/formatter/html/jquery-1.3.min.js +0 -0
  98. data/{specs → spec}/cucumber/formatter/html/jquery.uitableedit.js +0 -0
  99. data/{specs → spec}/cucumber/formatters/profile_formatter_spec.rb +0 -0
  100. data/{specs → spec}/cucumber/parser/feature_parser_spec.rb +43 -41
  101. data/{specs → spec}/cucumber/parser/table_parser_spec.rb +0 -0
  102. data/{specs → spec}/cucumber/rails/stubs/mini_rails.rb +0 -0
  103. data/{specs → spec}/cucumber/rails/stubs/test_help.rb +0 -0
  104. data/{specs → spec}/cucumber/rails/world_spec.rb +0 -0
  105. data/{specs → spec}/cucumber/sell_cucumbers.feature +0 -0
  106. data/{specs → spec}/cucumber/step_definition_spec.rb +0 -0
  107. data/{specs → spec}/cucumber/step_mother_spec.rb +63 -4
  108. data/{specs → spec}/cucumber/treetop_parser/empty_feature.feature +0 -0
  109. data/{specs → spec}/cucumber/treetop_parser/empty_scenario.feature +0 -0
  110. data/{specs → spec}/cucumber/treetop_parser/empty_scenario_outline.feature +0 -0
  111. data/{specs → spec}/cucumber/treetop_parser/fit_scenario.feature +0 -0
  112. data/{specs → spec}/cucumber/treetop_parser/given_scenario.feature +0 -0
  113. data/{specs → spec}/cucumber/treetop_parser/invalid_scenario_outlines.feature +0 -0
  114. data/{specs → spec}/cucumber/treetop_parser/multiline_steps.feature +0 -0
  115. data/{specs → spec}/cucumber/treetop_parser/multiple_tables.feature +0 -0
  116. data/{specs → spec}/cucumber/treetop_parser/scenario_outline.feature +0 -0
  117. data/{specs → spec}/cucumber/treetop_parser/spaces.feature +0 -0
  118. data/{specs → spec}/cucumber/treetop_parser/test_dos.feature +0 -0
  119. data/{specs → spec}/cucumber/treetop_parser/with_comments.feature +0 -0
  120. data/{specs → spec}/cucumber/treetop_parser/with_tags.feature +0 -0
  121. data/{specs → spec}/cucumber/world/pending_spec.rb +0 -0
  122. data/{specs → spec}/spec.opts +0 -0
  123. data/{specs → spec}/spec_helper.rb +2 -11
  124. metadata +72 -51
  125. data/examples/tickets/cucumber.yml +0 -3
  126. data/lib/cucumber/parser/basic.rb +0 -0
  127. data/specs/cucumber/ast/tags_spec.rb +0 -19
  128. data/specs/cucumber/core_ext/proc_spec.rb +0 -37
@@ -0,0 +1,14 @@
1
+ class Calculator
2
+ def push(n)
3
+ @args ||= []
4
+ @args << n
5
+ end
6
+
7
+ def add
8
+ @args.inject(0){|n,sum| sum+=n}
9
+ end
10
+
11
+ def divide
12
+ @args[0].to_f / @args[1].to_f
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ Feature: background with name
2
+
3
+ Background: I'm a background and I'm ok
4
+ Given '10' cukes
5
+
6
+ Scenario: example
7
+ Then I should have '10' cukes
@@ -4,7 +4,7 @@ Feature: Passing background sample
4
4
  Given '10' cukes
5
5
 
6
6
  Scenario: passing background
7
- Then I should have '10' cukes
8
-
7
+ Then I should have '10' cukes
8
+
9
9
  Scenario: another passing background
10
10
  Then I should have '10' cukes
@@ -25,9 +25,9 @@ Given /^call step "(.*)"$/ do |step|
25
25
  end
26
26
 
27
27
  Given /^'(.+)' cukes$/ do |cukes|
28
+ raise "We already have #{@cukes} cukes!" if @cukes
28
29
  @cukes = cukes
29
30
  end
30
-
31
31
  Then /^I should have '(.+)' cukes$/ do |cukes|
32
32
  @cukes.should == cukes
33
33
  end
@@ -52,7 +52,7 @@ Given /^multiline string$/ do |string|
52
52
  end
53
53
 
54
54
  Then /^the table should be$/ do |table|
55
- @table.to_sexp.should == table.to_sexp
55
+ @table.raw.should == table.raw
56
56
  end
57
57
 
58
58
  Then /^the multiline string should be$/ do |string|
@@ -62,3 +62,19 @@ end
62
62
  Given /^failing expectation$/ do
63
63
  'this'.should == 'that'
64
64
  end
65
+
66
+ Given /^unused$/ do
67
+ end
68
+
69
+ Given /^another unused$/ do
70
+ end
71
+
72
+ after_file = File.dirname(__FILE__) + '/../../tmp/after.txt'
73
+
74
+ Before('@after_file') do
75
+ FileUtils.rm(after_file) if File.exist?(after_file)
76
+ end
77
+
78
+ After('@after_file') do
79
+ FileUtils.touch(after_file)
80
+ end
@@ -0,0 +1,12 @@
1
+ Feature: undefined multiline args
2
+
3
+ Scenario: pystring
4
+ Given a pystring
5
+ """
6
+ example
7
+ """
8
+
9
+ Scenario: table
10
+ Given a table
11
+ | table |
12
+ |example|
@@ -16,9 +16,5 @@ Webrat.configure do |config|
16
16
  config.mode = :sinatra
17
17
  end
18
18
 
19
- World do
20
- session = Webrat::SinatraSession.new
21
- session.extend(Webrat::Matchers)
22
- session.extend(Webrat::HaveTagMatcher)
23
- session
24
- end
19
+ World{Webrat::SinatraSession.new}
20
+ World(Webrat::Matchers, Webrat::HaveTagMatcher)
@@ -1,8 +1,5 @@
1
1
  require 'test/unit/assertions'
2
- World do |o|
3
- o.extend(Test::Unit::Assertions)
4
- o
5
- end
2
+ World(Test::Unit::Assertions)
6
3
 
7
4
  Given /^(\w+) = (\w+)$/ do |var, value|
8
5
  instance_variable_set("@#{var}", value)
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new(:pretty) do |t|
5
- t.cucumber_opts = "--format pretty"
5
+ t.cucumber_opts = "--format pretty -q"
6
6
  end
7
7
 
8
8
  Cucumber::Rake::Task.new(:html) do |t|
@@ -0,0 +1,8 @@
1
+ Feature: Tagged hooks
2
+ In order to provide more flexible setups
3
+ I should be able to specify exactly
4
+ where hooks are executed
5
+
6
+ @i_am_so_special
7
+ Scenario: Yes I am
8
+ When special me goes to town
@@ -0,0 +1,14 @@
1
+ require 'spec/expectations'
2
+
3
+ Before('@i_am_so_special') do
4
+ @something_special = 10
5
+ end
6
+
7
+ After('@i_am_so_special') do
8
+ @something_special.should == 20
9
+ end
10
+
11
+ When /special me goes to town/ do
12
+ @something_special.should == 10
13
+ @something_special = 20
14
+ end
@@ -0,0 +1,14 @@
1
+ Feature: Background
2
+ In for background to work properly
3
+ As a user
4
+ I want it to run transactionally and only once when I call an individual scenario
5
+
6
+ Background:
7
+ Given plop
8
+
9
+ Scenario: Barping
10
+ When I barp
11
+
12
+
13
+ Scenario: Wibbling
14
+ When I wibble
@@ -0,0 +1,14 @@
1
+ require 'spec/expectations'
2
+
3
+ Given /^plop$/ do
4
+ raise "Only one plop!" if @plop
5
+ @plop = true
6
+ end
7
+
8
+ When /^I barp$/ do
9
+ @plop.should == true
10
+ end
11
+
12
+ When /^I wibble$/ do
13
+ @plop.should == true
14
+ end
@@ -0,0 +1,25 @@
1
+ Feature: pystring indentaion testcase
2
+
3
+ Scenario: example of correct indentation
4
+ Given multiline string
5
+ """
6
+ I'm a cucumber and I'm ok
7
+ I sleep all night and test all day
8
+ """
9
+ Then string is
10
+ """
11
+ I'm a cucumber and I'm ok
12
+ I sleep all night and test all day
13
+ """
14
+
15
+ Scenario: example of wrong indentation
16
+ Given I am in tickets/features/279
17
+ When I run cucumber -q wrong.feature_
18
+ Then it should fail with
19
+ """
20
+
21
+ """
22
+ And STDERR should match
23
+ """
24
+ wrong.feature_:8:10: Parse error
25
+ """
@@ -0,0 +1,12 @@
1
+ require 'spec/expectations'
2
+
3
+ require File.dirname(__FILE__) + '/../../../../features/step_definitions/cucumber_steps.rb'
4
+ require File.dirname(__FILE__) + '/../../../../features/support/env.rb'
5
+
6
+ Given /^multiline string$/ do |string|
7
+ @string = string
8
+ end
9
+
10
+ Then /^string is$/ do |string|
11
+ @string.should == string
12
+ end
@@ -0,0 +1,11 @@
1
+ Feature: pystring indentaion testcase
2
+
3
+ Scenario: example of wrong indentation
4
+ Given multiline string
5
+
6
+
7
+
8
+ """
9
+ I'm a cucumber and I'm ok
10
+ I sleep all night and test all day
11
+ """
@@ -1,12 +1,5 @@
1
1
  require 'spec/expectations'
2
2
 
3
- World do
4
- Object.new
5
- end
6
-
7
- After do |scenario|
8
- end
9
-
10
3
  Given "be_empty" do
11
4
  [1,2].should_not be_empty
12
5
  end
@@ -16,7 +16,7 @@ Feature: backgrounds
16
16
  Then I should have '10' cukes
17
17
 
18
18
  1 scenario
19
- 3 passed steps
19
+ 2 passed steps
20
20
 
21
21
  """
22
22
 
@@ -64,7 +64,7 @@ Feature: backgrounds
64
64
  | 10 |
65
65
 
66
66
  2 scenarios
67
- 5 passed steps
67
+ 4 passed steps
68
68
 
69
69
  """
70
70
 
@@ -93,6 +93,7 @@ Feature: backgrounds
93
93
  5 skipped steps
94
94
 
95
95
  """
96
+ And "examples/self_test/tmp/after.txt" should exist
96
97
 
97
98
  Scenario: run a feature with scenario outlines that has a background that fails
98
99
  When I run cucumber -q features/background/scenario_outline_failing_background.feature --require features
@@ -123,7 +124,7 @@ Feature: backgrounds
123
124
 
124
125
  2 scenarios
125
126
  1 failed step
126
- 4 skipped steps
127
+ 3 skipped steps
127
128
 
128
129
  """
129
130
 
@@ -217,5 +218,22 @@ Feature: backgrounds
217
218
 
218
219
  """
219
220
 
221
+ Scenario: background with name
222
+ When I run cucumber -q features/background/background_with_name.feature --require features
223
+ Then it should pass with
224
+ """
225
+ Feature: background with name
226
+
227
+ Background: I'm a background and I'm ok
228
+ Given '10' cukes
229
+
230
+ Scenario: example
231
+ Then I should have '10' cukes
232
+
233
+ 1 scenario
234
+ 2 passed steps
235
+
236
+ """
237
+
220
238
  @josephwilk
221
239
  Scenario: run a scenario showing explicit background steps --explicit-background
@@ -229,15 +229,28 @@ Feature: Cucumber command line
229
229
  hello
230
230
  \"\"\"
231
231
 
232
- 12 scenarios
232
+ Feature: undefined multiline args
233
+
234
+ Scenario: pystring
235
+ Given a pystring
236
+ \"\"\"
237
+ example
238
+ \"\"\"
239
+
240
+ Scenario: table
241
+ Given a table
242
+ | table |
243
+ | example |
244
+
245
+ 14 scenarios
233
246
  12 skipped steps
234
- 7 undefined steps
247
+ 9 undefined steps
235
248
 
236
249
  """
237
250
 
238
251
  Scenario: Multiple formatters and outputs
239
252
  When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --dry-run features/lots_of_undefined.feature
240
- And examples/self_test/tmp/progress.txt should contain
253
+ And "examples/self_test/tmp/progress.txt" should contain
241
254
  """
242
255
  UUUUU
243
256
 
@@ -245,7 +258,7 @@ Feature: Cucumber command line
245
258
  5 undefined steps
246
259
 
247
260
  """
248
- And examples/self_test/tmp/pretty.txt should match
261
+ And "examples/self_test/tmp/pretty.txt" should match
249
262
  """
250
263
  Feature: Lots of undefined
251
264
 
@@ -362,7 +375,7 @@ Feature: Cucumber command line
362
375
 
363
376
  Scenario: Reformat files with --autoformat
364
377
  When I run cucumber --autoformat tmp/formatted features
365
- Then examples/self_test/tmp/formatted/features/sample.feature should contain
378
+ Then "examples/self_test/tmp/formatted/features/sample.feature" should contain
366
379
  """
367
380
  @one
368
381
  Feature: Sample
@@ -41,7 +41,7 @@ Feature: Cucumber command line
41
41
  Feature: Outline Sample
42
42
 
43
43
  Scenario Outline: Test state # features/outline_sample.feature:5
44
- Given <state> without a table # features/step_definitions/sample_steps.rb:12
44
+ Given <state> without a table # features/step_definitions/sample_steps.rb:15
45
45
  Given <other_state> without a table # features/step_definitions/sample_steps.rb:12
46
46
 
47
47
  Examples: Rainbow colours
@@ -58,6 +58,9 @@ Feature: Cucumber command line
58
58
 
59
59
  """
60
60
 
61
+ # There are 10 characters in the progress, but only 8 reported steps. Needs investigation.
62
+ # Looks like we're outputting too many characters.
63
+ @buggy
61
64
  Scenario: Run all with progress formatter
62
65
  When I run cucumber -q --format progress features/outline_sample.feature
63
66
  Then it should fail with
@@ -0,0 +1,132 @@
1
+ Feature: Rake task
2
+ In order to ease the development process
3
+ As a developer and CI server administrator
4
+ Cucumber features should be executable via Rake
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/missing_step_definitions.feature" with:
9
+ """
10
+ Feature: Sample
11
+
12
+ Scenario: Wanted
13
+ Given I want to run this
14
+
15
+ Scenario: Unwanted
16
+ Given I don't want this ran
17
+ """
18
+
19
+
20
+ Scenario: rake task with a defined profile
21
+ Given the following profile is defined:
22
+ """
23
+ foo: --quiet --no-color features/missing_step_definitions.feature:3
24
+ """
25
+ And a file named "Rakefile" with:
26
+ """
27
+ $LOAD_PATH.unshift(CUCUMBER_LIB)
28
+ require 'cucumber/rake/task'
29
+
30
+ Cucumber::Rake::Task.new(:features) do |t|
31
+ t.profile = "foo"
32
+ end
33
+ """
34
+
35
+ When I run rake features
36
+ Then it should pass
37
+ And the output should contain
38
+ """
39
+ Feature: Sample
40
+
41
+ Scenario: Wanted
42
+ Given I want to run this
43
+
44
+ 1 scenario
45
+ 1 undefined step
46
+ """
47
+
48
+ Scenario: rake task with a defined profile and cucumber_opts
49
+ Given the following profile is defined:
50
+ """
51
+ bar: features/missing_step_definitions.feature:3
52
+ """
53
+ And a file named "Rakefile" with:
54
+ """
55
+ $LOAD_PATH.unshift(CUCUMBER_LIB)
56
+ require 'cucumber/rake/task'
57
+
58
+ Cucumber::Rake::Task.new(:features) do |t|
59
+ t.profile = "bar"
60
+ t.cucumber_opts = "--quiet --no-color"
61
+ end
62
+ """
63
+
64
+ When I run rake features
65
+ Then it should pass
66
+ And the output should contain
67
+ """
68
+ Feature: Sample
69
+
70
+ Scenario: Wanted
71
+ Given I want to run this
72
+
73
+ 1 scenario
74
+ 1 undefined step
75
+ """
76
+
77
+ Scenario: rake task with a defined profile and feature list
78
+ Given a file named "features/the_one_i_want_to_run.feature" with:
79
+ """
80
+ Feature: Desired
81
+
82
+ Scenario: Something
83
+ Given this is missing
84
+ """
85
+ Given the following profile is defined:
86
+ """
87
+ baz: --quiet --no-color
88
+ """
89
+ And a file named "Rakefile" with:
90
+ """
91
+ $LOAD_PATH.unshift(CUCUMBER_LIB)
92
+ require 'cucumber/rake/task'
93
+
94
+ Cucumber::Rake::Task.new(:features) do |t|
95
+ t.profile = "baz"
96
+ t.feature_list = ['features/the_one_i_want_to_run.feature']
97
+ end
98
+ """
99
+
100
+ When I run rake features
101
+ Then it should pass
102
+ And the output should contain
103
+ """
104
+ Feature: Desired
105
+
106
+ Scenario: Something
107
+ Given this is missing
108
+
109
+ 1 scenario
110
+ 1 undefined step
111
+ """
112
+
113
+ Scenario: deprecation warnings
114
+ Given a file named "Rakefile" with:
115
+ """
116
+ $LOAD_PATH.unshift(CUCUMBER_LIB)
117
+ require 'cucumber/rake/task'
118
+
119
+ Cucumber::Rake::Task.new(:features) do |t|
120
+ t.feature_list = ['features/missing_step_definitions.feature']
121
+ end
122
+ """
123
+ When I run rake features
124
+ Then it should pass
125
+ And STDERR should match
126
+ """
127
+ Cucumber::Rake::Task#feature_list is deprecated and will be removed in 0.4.0. Please use profiles for complex settings: http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
128
+ """
129
+
130
+
131
+
132
+