cucumber 0.8.5 → 0.8.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. data/.rspec +1 -1
  2. data/LICENSE +1 -1
  3. data/Rakefile +5 -51
  4. data/bin/cucumber +7 -1
  5. data/cucumber.gemspec +463 -679
  6. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -1
  7. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +1 -1
  8. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +4 -7
  9. data/examples/i18n/ru/features/division.feature +2 -2
  10. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +3 -3
  11. data/examples/sinatra/features/support/env.rb +2 -5
  12. data/examples/v8/features/fibonacci.feature +1 -1
  13. data/examples/watir/features/step_definitions/search_steps.rb +1 -1
  14. data/features/background.feature +284 -95
  15. data/features/custom_formatter.feature +3 -73
  16. data/features/json_formatter.feature +160 -245
  17. data/features/step_definitions/cucumber_steps.rb +7 -153
  18. data/features/support/env.rb +18 -140
  19. data/fixtures/junit/features/pending.feature +3 -1
  20. data/fixtures/self_test/features/support/env.rb +8 -0
  21. data/fixtures/tickets/features.html +1 -1
  22. data/gem_tasks/examples.rake +1 -1
  23. data/lib/cucumber.rb +12 -0
  24. data/lib/cucumber/ast.rb +1 -1
  25. data/lib/cucumber/ast/background.rb +21 -5
  26. data/lib/cucumber/ast/examples.rb +12 -4
  27. data/lib/cucumber/ast/feature.rb +13 -5
  28. data/lib/cucumber/ast/feature_element.rb +9 -4
  29. data/lib/cucumber/ast/outline_table.rb +4 -4
  30. data/lib/cucumber/ast/scenario.rb +7 -5
  31. data/lib/cucumber/ast/scenario_outline.rb +23 -15
  32. data/lib/cucumber/ast/step.rb +5 -0
  33. data/lib/cucumber/ast/step_invocation.rb +21 -15
  34. data/lib/cucumber/ast/table.rb +14 -8
  35. data/lib/cucumber/ast/tree_walker.rb +10 -48
  36. data/lib/cucumber/cli/configuration.rb +33 -8
  37. data/lib/cucumber/cli/main.rb +20 -35
  38. data/lib/cucumber/cli/options.rb +8 -7
  39. data/lib/cucumber/cli/profile_loader.rb +2 -0
  40. data/lib/cucumber/core_ext/proc.rb +2 -1
  41. data/lib/cucumber/feature_file.rb +47 -15
  42. data/lib/cucumber/formatter/ansicolor.rb +3 -5
  43. data/lib/cucumber/formatter/console.rb +27 -23
  44. data/lib/cucumber/formatter/cucumber.css +34 -17
  45. data/lib/cucumber/formatter/cucumber.sass +173 -182
  46. data/lib/cucumber/formatter/html.rb +46 -11
  47. data/lib/cucumber/formatter/io.rb +2 -4
  48. data/lib/cucumber/formatter/json.rb +15 -152
  49. data/lib/cucumber/formatter/json_pretty.rb +5 -6
  50. data/lib/cucumber/formatter/junit.rb +28 -22
  51. data/lib/cucumber/formatter/pdf.rb +6 -6
  52. data/lib/cucumber/formatter/pretty.rb +5 -5
  53. data/lib/cucumber/formatter/rerun.rb +22 -11
  54. data/lib/cucumber/formatter/unicode.rb +41 -20
  55. data/lib/cucumber/js_support/js_dsl.js +4 -4
  56. data/lib/cucumber/js_support/js_language.rb +9 -5
  57. data/lib/cucumber/js_support/js_snippets.rb +2 -2
  58. data/lib/cucumber/language_support.rb +2 -2
  59. data/lib/cucumber/parser/gherkin_builder.rb +35 -30
  60. data/lib/cucumber/platform.rb +8 -8
  61. data/lib/cucumber/py_support/py_language.rb +2 -2
  62. data/lib/cucumber/rake/task.rb +80 -31
  63. data/lib/cucumber/rb_support/rb_dsl.rb +1 -0
  64. data/lib/cucumber/rb_support/rb_language.rb +10 -8
  65. data/lib/cucumber/rb_support/rb_step_definition.rb +8 -0
  66. data/lib/cucumber/rb_support/rb_transform.rb +17 -0
  67. data/lib/cucumber/rb_support/rb_world.rb +26 -18
  68. data/lib/cucumber/rspec/doubles.rb +3 -3
  69. data/lib/cucumber/step_match.rb +6 -2
  70. data/lib/cucumber/step_mother.rb +6 -427
  71. data/lib/cucumber/wire_support/configuration.rb +4 -1
  72. data/lib/cucumber/wire_support/wire_language.rb +3 -10
  73. data/spec/cucumber/ast/background_spec.rb +68 -6
  74. data/spec/cucumber/ast/feature_factory.rb +5 -4
  75. data/spec/cucumber/ast/feature_spec.rb +4 -4
  76. data/spec/cucumber/ast/outline_table_spec.rb +1 -1
  77. data/spec/cucumber/ast/scenario_outline_spec.rb +15 -11
  78. data/spec/cucumber/ast/scenario_spec.rb +4 -4
  79. data/spec/cucumber/ast/step_spec.rb +3 -3
  80. data/spec/cucumber/ast/table_spec.rb +38 -2
  81. data/spec/cucumber/ast/tree_walker_spec.rb +2 -2
  82. data/spec/cucumber/broadcaster_spec.rb +1 -1
  83. data/spec/cucumber/cli/configuration_spec.rb +32 -6
  84. data/spec/cucumber/cli/drb_client_spec.rb +2 -3
  85. data/spec/cucumber/cli/main_spec.rb +43 -43
  86. data/spec/cucumber/cli/options_spec.rb +28 -1
  87. data/spec/cucumber/cli/profile_loader_spec.rb +1 -1
  88. data/spec/cucumber/core_ext/proc_spec.rb +1 -1
  89. data/spec/cucumber/formatter/ansicolor_spec.rb +1 -1
  90. data/spec/cucumber/formatter/duration_spec.rb +1 -1
  91. data/spec/cucumber/formatter/html_spec.rb +3 -5
  92. data/spec/cucumber/formatter/junit_spec.rb +16 -2
  93. data/spec/cucumber/formatter/progress_spec.rb +1 -1
  94. data/spec/cucumber/formatter/spec_helper.rb +11 -12
  95. data/spec/cucumber/rb_support/rb_language_spec.rb +241 -28
  96. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +33 -28
  97. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +1 -1
  98. data/spec/cucumber/step_match_spec.rb +11 -9
  99. data/spec/cucumber/wire_support/configuration_spec.rb +1 -1
  100. data/spec/cucumber/wire_support/connection_spec.rb +1 -1
  101. data/spec/cucumber/wire_support/wire_exception_spec.rb +1 -1
  102. data/spec/cucumber/wire_support/wire_language_spec.rb +1 -1
  103. data/spec/cucumber/wire_support/wire_packet_spec.rb +1 -1
  104. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +1 -1
  105. data/spec/cucumber/world/pending_spec.rb +2 -2
  106. data/spec/spec_helper.rb +13 -20
  107. metadata +11 -222
  108. data/.gitignore +0 -20
  109. data/Caliper.yml +0 -4
  110. data/History.txt +0 -1552
  111. data/README.rdoc +0 -26
  112. data/VERSION.yml +0 -5
  113. data/examples/i18n/ro/features/suma.feature +0 -11
  114. data/features/announce.feature +0 -164
  115. data/features/around_hooks.feature +0 -232
  116. data/features/bug_371.feature +0 -32
  117. data/features/bug_464.feature +0 -16
  118. data/features/bug_475.feature +0 -42
  119. data/features/bug_585_tab_indentation.feature +0 -22
  120. data/features/bug_600.feature +0 -67
  121. data/features/call_steps_from_stepdefs.feature +0 -154
  122. data/features/cucumber_cli.feature +0 -591
  123. data/features/cucumber_cli_outlines.feature +0 -117
  124. data/features/default_snippets.feature +0 -42
  125. data/features/diffing.feature +0 -25
  126. data/features/drb_server_integration.feature +0 -174
  127. data/features/exception_in_after_block.feature +0 -127
  128. data/features/exception_in_after_step_block.feature +0 -104
  129. data/features/exception_in_before_block.feature +0 -98
  130. data/features/exclude_files.feature +0 -20
  131. data/features/expand.feature +0 -60
  132. data/features/html_formatter.feature +0 -8
  133. data/features/html_formatter/a.html +0 -582
  134. data/features/junit_formatter.feature +0 -88
  135. data/features/language_from_header.feature +0 -30
  136. data/features/language_help.feature +0 -78
  137. data/features/listener_debugger_formatter.feature +0 -42
  138. data/features/multiline_names.feature +0 -44
  139. data/features/negative_tagged_hooks.feature +0 -60
  140. data/features/post_configuration_hook.feature +0 -37
  141. data/features/profiles.feature +0 -126
  142. data/features/rake_task.feature +0 -152
  143. data/features/report_called_undefined_steps.feature +0 -34
  144. data/features/rerun_formatter.feature +0 -45
  145. data/features/simplest.feature +0 -11
  146. data/features/snippet.feature +0 -23
  147. data/features/snippets_when_using_star_keyword.feature +0 -36
  148. data/features/step_definitions/extra_steps.rb +0 -2
  149. data/features/step_definitions/simplest_steps.rb +0 -3
  150. data/features/step_definitions/wire_steps.rb +0 -32
  151. data/features/support/env.rb.simplest +0 -7
  152. data/features/support/fake_wire_server.rb +0 -77
  153. data/features/table_diffing.feature +0 -45
  154. data/features/table_mapping.feature +0 -34
  155. data/features/tag_logic.feature +0 -258
  156. data/features/transform.feature +0 -245
  157. data/features/unicode_table.feature +0 -35
  158. data/features/usage_and_stepdefs_formatter.feature +0 -169
  159. data/features/wire_protocol.feature +0 -332
  160. data/features/wire_protocol_table_diffing.feature +0 -119
  161. data/features/wire_protocol_tags.feature +0 -87
  162. data/features/wire_protocol_timeouts.feature +0 -63
  163. data/features/work_in_progress.feature +0 -156
  164. data/fixtures/json/features/pystring.feature +0 -8
  165. data/fixtures/self_test/features/background/background_tagged_before_on_outline.feature +0 -12
  166. data/fixtures/self_test/features/background/background_with_name.feature +0 -7
  167. data/fixtures/self_test/features/background/failing_background.feature +0 -12
  168. data/fixtures/self_test/features/background/failing_background_after_success.feature +0 -11
  169. data/fixtures/self_test/features/background/multiline_args_background.feature +0 -32
  170. data/fixtures/self_test/features/background/passing_background.feature +0 -10
  171. data/fixtures/self_test/features/background/pending_background.feature +0 -10
  172. data/fixtures/self_test/features/background/scenario_outline_failing_background.feature +0 -16
  173. data/fixtures/self_test/features/background/scenario_outline_passing_background.feature +0 -16
  174. data/gem_tasks/features.rake +0 -14
  175. data/gem_tasks/sdoc.rake +0 -12
  176. data/lib/cucumber/ast/py_string.rb +0 -80
  177. data/lib/cucumber/formatter/color_io.rb +0 -23
  178. data/lib/cucumber/formatter/tag_cloud.rb +0 -35
  179. data/spec/cucumber/ast/py_string_spec.rb +0 -40
  180. data/spec/cucumber/formatter/color_io_spec.rb +0 -29
  181. data/spec/cucumber/step_mother_spec.rb +0 -302
@@ -1,34 +0,0 @@
1
- Feature: Table mapping
2
- Scenario: Mapping table shouldn't change output
3
- Given a standard Cucumber project directory structure
4
- And a file named "features/f.feature" with:
5
- """
6
- Feature: F
7
- Scenario: S
8
- Given a table:
9
- | who |
10
- | aslak |
11
- """
12
- And a file named "features/step_definitions/steps.rb" with:
13
- """
14
- Given(/a table:/) { |table| table.map_headers!(/who/i => 'Who')
15
- table.map_column!('Who') { |who| "Cuke" }
16
- table.hashes[0]['Who'] = "Joe"
17
- table.hashes.should == [{"Who"=>"Joe"}]
18
- }
19
- """
20
- When I run cucumber features/f.feature
21
- Then STDERR should be empty
22
- And it should pass with
23
- """
24
- Feature: F
25
-
26
- Scenario: S # features/f.feature:2
27
- Given a table: # features/step_definitions/steps.rb:1
28
- | who |
29
- | aslak |
30
-
31
- 1 scenario (1 passed)
32
- 1 step (1 passed)
33
-
34
- """
@@ -1,258 +0,0 @@
1
- Feature: Tag logic
2
- In order to conveniently run subsets of features
3
- As a Cuker
4
- I want to select features using logical AND/OR of tags
5
-
6
- Background:
7
- Given a standard Cucumber project directory structure
8
- And a file named "features/tagulicious.feature" with:
9
- """
10
- Feature: Sample
11
-
12
- @one @three
13
- Scenario: Example
14
- Given passing
15
-
16
- @one
17
- Scenario: Another Example
18
- Given passing
19
-
20
- @three
21
- Scenario: Yet another Example
22
- Given passing
23
-
24
- @ignore
25
- Scenario: And yet another Example
26
- """
27
-
28
- Scenario: ANDing tags
29
- When I run cucumber -q -t @one -t @three features/tagulicious.feature
30
- Then it should pass
31
- And the output should contain
32
- """
33
- Feature: Sample
34
-
35
- @one @three
36
- Scenario: Example
37
- Given passing
38
-
39
- 1 scenario (1 undefined)
40
- 1 step (1 undefined)
41
-
42
- """
43
-
44
- Scenario: ORing tags
45
- When I run cucumber -q -t @one,@three features/tagulicious.feature
46
- Then it should pass
47
- And the output should contain
48
- """
49
- Feature: Sample
50
-
51
- @one @three
52
- Scenario: Example
53
- Given passing
54
-
55
- @one
56
- Scenario: Another Example
57
- Given passing
58
-
59
- @three
60
- Scenario: Yet another Example
61
- Given passing
62
-
63
- 3 scenarios (3 undefined)
64
- 3 steps (3 undefined)
65
-
66
- """
67
-
68
- Scenario: Before hooks ORing
69
- Given a file named "features/support/hooks.rb" with:
70
- """
71
- Before('@one,@three') do
72
- raise 'boom'
73
- end
74
- """
75
- When I run cucumber -q features/tagulicious.feature
76
- Then it should fail with
77
- """
78
- Feature: Sample
79
-
80
- @one @three
81
- Scenario: Example
82
- boom (RuntimeError)
83
- ./features/support/hooks.rb:2:in `Before'
84
- Given passing
85
-
86
- @one
87
- Scenario: Another Example
88
- boom (RuntimeError)
89
- ./features/support/hooks.rb:2:in `Before'
90
- Given passing
91
-
92
- @three
93
- Scenario: Yet another Example
94
- boom (RuntimeError)
95
- ./features/support/hooks.rb:2:in `Before'
96
- Given passing
97
-
98
- @ignore
99
- Scenario: And yet another Example
100
-
101
- Failing Scenarios:
102
- cucumber features/tagulicious.feature:4 # Scenario: Example
103
- cucumber features/tagulicious.feature:8 # Scenario: Another Example
104
- cucumber features/tagulicious.feature:12 # Scenario: Yet another Example
105
-
106
- 4 scenarios (3 failed, 1 passed)
107
- 3 steps (3 undefined)
108
-
109
- """
110
-
111
- Scenario: Before hooks ANDing
112
- Given a file named "features/support/hooks.rb" with:
113
- """
114
- Before('@one','@three') do
115
- raise 'boom'
116
- end
117
- """
118
- When I run cucumber -q features/tagulicious.feature
119
- Then it should fail with
120
- """
121
- Feature: Sample
122
-
123
- @one @three
124
- Scenario: Example
125
- boom (RuntimeError)
126
- ./features/support/hooks.rb:2:in `Before'
127
- Given passing
128
-
129
- @one
130
- Scenario: Another Example
131
- Given passing
132
-
133
- @three
134
- Scenario: Yet another Example
135
- Given passing
136
-
137
- @ignore
138
- Scenario: And yet another Example
139
-
140
- Failing Scenarios:
141
- cucumber features/tagulicious.feature:4 # Scenario: Example
142
-
143
- 4 scenarios (1 failed, 2 undefined, 1 passed)
144
- 3 steps (3 undefined)
145
-
146
- """
147
-
148
- Scenario: Before hooks ANDing with a bad hook matching nothing
149
- Given a file named "features/support/hooks.rb" with:
150
- """
151
- Before('@one','@notused') do
152
- raise 'boom'
153
- end
154
- """
155
- When I run cucumber -q features/tagulicious.feature
156
- Then it should pass with
157
- """
158
- Feature: Sample
159
-
160
- @one @three
161
- Scenario: Example
162
- Given passing
163
-
164
- @one
165
- Scenario: Another Example
166
- Given passing
167
-
168
- @three
169
- Scenario: Yet another Example
170
- Given passing
171
-
172
- @ignore
173
- Scenario: And yet another Example
174
-
175
- 4 scenarios (3 undefined, 1 passed)
176
- 3 steps (3 undefined)
177
-
178
- """
179
-
180
- Scenario: After hooks ORing
181
- Given a file named "features/support/hooks.rb" with:
182
- """
183
- After('@one,@three') do
184
- raise 'boom'
185
- end
186
- """
187
- When I run cucumber -q features/tagulicious.feature
188
- Then it should fail with
189
- """
190
- Feature: Sample
191
-
192
- @one @three
193
- Scenario: Example
194
- Given passing
195
- boom (RuntimeError)
196
- ./features/support/hooks.rb:2:in `After'
197
-
198
- @one
199
- Scenario: Another Example
200
- Given passing
201
- boom (RuntimeError)
202
- ./features/support/hooks.rb:2:in `After'
203
-
204
- @three
205
- Scenario: Yet another Example
206
- Given passing
207
- boom (RuntimeError)
208
- ./features/support/hooks.rb:2:in `After'
209
-
210
- @ignore
211
- Scenario: And yet another Example
212
-
213
- Failing Scenarios:
214
- cucumber features/tagulicious.feature:4 # Scenario: Example
215
- cucumber features/tagulicious.feature:8 # Scenario: Another Example
216
- cucumber features/tagulicious.feature:12 # Scenario: Yet another Example
217
-
218
- 4 scenarios (3 failed, 1 passed)
219
- 3 steps (3 undefined)
220
-
221
- """
222
-
223
- Scenario: After hooks ANDing
224
- Given a file named "features/support/hooks.rb" with:
225
- """
226
- After('@one','@three') do
227
- raise 'boom'
228
- end
229
- """
230
- When I run cucumber -q features/tagulicious.feature
231
- Then it should fail with
232
- """
233
- Feature: Sample
234
-
235
- @one @three
236
- Scenario: Example
237
- Given passing
238
- boom (RuntimeError)
239
- ./features/support/hooks.rb:2:in `After'
240
-
241
- @one
242
- Scenario: Another Example
243
- Given passing
244
-
245
- @three
246
- Scenario: Yet another Example
247
- Given passing
248
-
249
- @ignore
250
- Scenario: And yet another Example
251
-
252
- Failing Scenarios:
253
- cucumber features/tagulicious.feature:4 # Scenario: Example
254
-
255
- 4 scenarios (1 failed, 2 undefined, 1 passed)
256
- 3 steps (3 undefined)
257
-
258
- """
@@ -1,245 +0,0 @@
1
- Feature: transform
2
- In order to maintain modularity within step definitions
3
- As a step definition editor
4
- I want to register a regex to capture and tranform step definition arguments.
5
-
6
- Background:
7
- Given a standard Cucumber project directory structure
8
- And a file named "features/step_definitions/steps.rb" with:
9
- """
10
- Then /^I should transform ('\d+' to an Integer)$/ do |integer|
11
- integer.should be_kind_of(Integer)
12
- end
13
-
14
- Then /^I should transform ('\w+' to a Symbol)$/ do |symbol|
15
- symbol.should be_kind_of(Symbol)
16
- end
17
-
18
- Then /^I should transform ('\d+' to a Float)$/ do |float|
19
- float.should be_kind_of(Float)
20
- end
21
-
22
- Then /^I should transform ('\w+' to an Array)$/ do |array|
23
- array.should be_kind_of(Array)
24
- end
25
-
26
- Then /^I should transform ('\w+' to Nil)$/ do |string|
27
- string.should be_nil
28
- end
29
-
30
- Then /^I should not transform ('\d+') to an Integer$/ do |string|
31
- string.should be_kind_of(String)
32
- end
33
-
34
- Then /^I should transform ((?:nothing|'\d+') to an optional Integer)$/ do |integer|
35
- integer.should be_nil
36
- end
37
- """
38
- And a file named "features/support/env.rb" with:
39
- """
40
- Transform /^'\d+' to an Integer$/ do |step_arg|
41
- /'(\d+)' to an Integer/.match(step_arg).captures[0].to_i
42
- end
43
-
44
- Transform /^(?:nothing|'(\d+)') to an optional Integer$/ do |str|
45
- str ? str.to_i : nil
46
- end
47
-
48
- Transform /^'(\d+)' to a Float$/ do |integer_string|
49
- Transform("'#{integer_string}' to an Integer").to_f
50
- end
51
-
52
- Transform(/^('\w+') to Nil$/) {|str| nil }
53
-
54
- Transform(/^('\w+') to a Symbol$/) {|str| str.to_sym }
55
-
56
- module MyHelpers
57
- def fetch_array
58
- @array
59
- end
60
- end
61
-
62
- World(MyHelpers)
63
-
64
- Before do
65
- @array = []
66
- end
67
-
68
- Transform(/^('\w+') to an Array$/) {|str| fetch_array }
69
- """
70
-
71
- Scenario: run a specific scenario with a registered transform
72
- Given a file named "features/transform_sample.feature" with:
73
- """
74
- Feature: Step argument transformations
75
-
76
- Scenario: transform with matches
77
- Then I should transform '10' to an Integer
78
-
79
- Scenario: transform with matches that capture
80
- Then I should transform 'abc' to a Symbol
81
-
82
- Scenario: transform with matches that reuse transforms
83
- Then I should transform '10' to a Float
84
-
85
- Scenario: transform with matches that use current world
86
- Then I should transform 'abc' to an Array
87
-
88
- Scenario: transform with matches that return nil
89
- Then I should transform 'nil' to Nil
90
-
91
- Scenario: transform without matches
92
- Then I should not transform '10' to an Integer
93
-
94
- Scenario: transform with optional arguments not given
95
- Then I should transform nothing to an optional Integer
96
- """
97
- When I run cucumber --backtrace -s features
98
- Then it should pass with
99
- """
100
- Feature: Step argument transformations
101
-
102
- Scenario: transform with matches
103
- Then I should transform '10' to an Integer
104
-
105
- Scenario: transform with matches that capture
106
- Then I should transform 'abc' to a Symbol
107
-
108
- Scenario: transform with matches that reuse transforms
109
- Then I should transform '10' to a Float
110
-
111
- Scenario: transform with matches that use current world
112
- Then I should transform 'abc' to an Array
113
-
114
- Scenario: transform with matches that return nil
115
- Then I should transform 'nil' to Nil
116
-
117
- Scenario: transform without matches
118
- Then I should not transform '10' to an Integer
119
-
120
- Scenario: transform with optional arguments not given
121
- Then I should transform nothing to an optional Integer
122
-
123
- 7 scenarios (7 passed)
124
- 7 steps (7 passed)
125
-
126
- """
127
-
128
- Scenario: run a table scenario with an unrelated registered transform
129
- Given a file named "features/transform_sample.feature" with:
130
- """
131
- Feature: Step argument transformations
132
-
133
- Scenario: A table
134
- Then I should check the following table:
135
- | letter | letter_plus_a |
136
- | r | ra |
137
- | m | ma |
138
- | p | pa |
139
- """
140
- And a file named "features/support/table.rb" with:
141
- """
142
- Transform /^table:number,number_plus_a$/ do |table|
143
- :not_what_you_were_expecting
144
- end
145
-
146
- Then "I should check the following table:" do |table|
147
- table.hashes.each do |hash|
148
- hash['letter_plus_a'].should == (hash['letter'] + 'a')
149
- end
150
- end
151
- """
152
- When I run cucumber -s features
153
- Then it should pass with
154
- """
155
- Feature: Step argument transformations
156
-
157
- Scenario: A table
158
- Then I should check the following table:
159
- | letter | letter_plus_a |
160
- | r | ra |
161
- | m | ma |
162
- | p | pa |
163
-
164
- 1 scenario (1 passed)
165
- 1 step (1 passed)
166
-
167
- """
168
-
169
- Scenario: run a table scenario with an related registered transform not using table
170
- Given a file named "features/transform_sample.feature" with:
171
- """
172
- Feature: Step argument transformations
173
-
174
- Scenario: A table
175
- Then I should check the following table:
176
- | letter | letter_plus_a |
177
- | r | ra |
178
- | m | ma |
179
- | p | pa |
180
- """
181
- And a file named "features/support/table.rb" with:
182
- """
183
- Transform /^table:letter,letter_plus_a$/ do |table|
184
- 1
185
- end
186
-
187
- Then "I should check the following table:" do |columns|
188
- columns.should == 1
189
- end
190
- """
191
- When I run cucumber -s features
192
- Then it should pass with
193
- """
194
- Feature: Step argument transformations
195
-
196
- Scenario: A table
197
- Then I should check the following table:
198
- | letter | letter_plus_a |
199
- | r | ra |
200
- | m | ma |
201
- | p | pa |
202
-
203
- 1 scenario (1 passed)
204
- 1 step (1 passed)
205
-
206
- """
207
-
208
- Scenario: run a table scenario with an related registered transform using table
209
- Given a file named "features/transform_sample.feature" with:
210
- """
211
- Feature: Step argument transformations
212
-
213
- Scenario: A table
214
- Then I should check the following table:
215
- | letter | letter_plus_a |
216
- | r | ra |
217
- | m | ma |
218
- | p | pa |
219
- """
220
- And a file named "features/support/table.rb" with:
221
- """
222
- Transform /^table:letter,letter_plus_a$/ do |table|
223
- table.rows.map { |row| row.join(',') }
224
- end
225
-
226
- Then "I should check the following table:" do |rows_in_table|
227
- rows_in_table.should == ['r,ra','m,ma','p,pa']
228
- end
229
- """
230
- When I run cucumber -b -s features
231
- Then it should pass with
232
- """
233
- Feature: Step argument transformations
234
-
235
- Scenario: A table
236
- Then I should check the following table:
237
- | letter | letter_plus_a |
238
- | r | ra |
239
- | m | ma |
240
- | p | pa |
241
-
242
- 1 scenario (1 passed)
243
- 1 step (1 passed)
244
-
245
- """