cucumber 0.8.6 → 0.8.7

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 (180) hide show
  1. data/.rspec +1 -1
  2. data/Caliper.yml +4 -0
  3. data/History.txt +1557 -0
  4. data/LICENSE +1 -1
  5. data/README.rdoc +26 -0
  6. data/Rakefile +51 -5
  7. data/VERSION.yml +5 -0
  8. data/bin/cucumber +1 -7
  9. data/cucumber.gemspec +77 -3
  10. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -1
  11. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +1 -1
  12. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +7 -4
  13. data/examples/i18n/ro/features/suma.feature +11 -0
  14. data/examples/i18n/ru/features/division.feature +2 -2
  15. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +3 -3
  16. data/examples/sinatra/features/support/env.rb +5 -2
  17. data/examples/v8/features/fibonacci.feature +1 -1
  18. data/examples/watir/features/step_definitions/search_steps.rb +1 -1
  19. data/features/announce.feature +164 -0
  20. data/features/around_hooks.feature +232 -0
  21. data/features/background.feature +95 -284
  22. data/features/bug_371.feature +32 -0
  23. data/features/bug_464.feature +16 -0
  24. data/features/bug_475.feature +42 -0
  25. data/features/bug_585_tab_indentation.feature +22 -0
  26. data/features/bug_600.feature +67 -0
  27. data/features/call_steps_from_stepdefs.feature +154 -0
  28. data/features/cucumber_cli.feature +591 -0
  29. data/features/cucumber_cli_outlines.feature +117 -0
  30. data/features/custom_formatter.feature +73 -3
  31. data/features/default_snippets.feature +42 -0
  32. data/features/diffing.feature +25 -0
  33. data/features/drb_server_integration.feature +174 -0
  34. data/features/exception_in_after_block.feature +127 -0
  35. data/features/exception_in_after_step_block.feature +104 -0
  36. data/features/exception_in_before_block.feature +98 -0
  37. data/features/exclude_files.feature +20 -0
  38. data/features/expand.feature +60 -0
  39. data/features/html_formatter.feature +8 -0
  40. data/features/html_formatter/a.html +582 -0
  41. data/features/json_formatter.feature +245 -160
  42. data/features/junit_formatter.feature +88 -0
  43. data/features/language_from_header.feature +30 -0
  44. data/features/language_help.feature +78 -0
  45. data/features/listener_debugger_formatter.feature +42 -0
  46. data/features/multiline_names.feature +44 -0
  47. data/features/negative_tagged_hooks.feature +60 -0
  48. data/features/post_configuration_hook.feature +37 -0
  49. data/features/profiles.feature +126 -0
  50. data/features/rake_task.feature +152 -0
  51. data/features/report_called_undefined_steps.feature +34 -0
  52. data/features/rerun_formatter.feature +45 -0
  53. data/features/simplest.feature +11 -0
  54. data/features/snippet.feature +23 -0
  55. data/features/snippets_when_using_star_keyword.feature +36 -0
  56. data/features/step_definitions/cucumber_steps.rb +153 -7
  57. data/features/step_definitions/extra_steps.rb +2 -0
  58. data/features/step_definitions/simplest_steps.rb +3 -0
  59. data/features/step_definitions/wire_steps.rb +32 -0
  60. data/features/support/env.rb +140 -18
  61. data/features/support/env.rb.simplest +7 -0
  62. data/features/support/fake_wire_server.rb +77 -0
  63. data/features/table_diffing.feature +45 -0
  64. data/features/table_mapping.feature +34 -0
  65. data/features/tag_logic.feature +258 -0
  66. data/features/transform.feature +245 -0
  67. data/features/unicode_table.feature +35 -0
  68. data/features/usage_and_stepdefs_formatter.feature +169 -0
  69. data/features/wire_protocol.feature +332 -0
  70. data/features/wire_protocol_table_diffing.feature +119 -0
  71. data/features/wire_protocol_tags.feature +87 -0
  72. data/features/wire_protocol_timeouts.feature +63 -0
  73. data/features/work_in_progress.feature +156 -0
  74. data/fixtures/json/features/pystring.feature +8 -0
  75. data/fixtures/junit/features/pending.feature +1 -3
  76. data/fixtures/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  77. data/fixtures/self_test/features/background/background_with_name.feature +7 -0
  78. data/fixtures/self_test/features/background/failing_background.feature +12 -0
  79. data/fixtures/self_test/features/background/failing_background_after_success.feature +11 -0
  80. data/fixtures/self_test/features/background/multiline_args_background.feature +32 -0
  81. data/fixtures/self_test/features/background/passing_background.feature +10 -0
  82. data/fixtures/self_test/features/background/pending_background.feature +10 -0
  83. data/fixtures/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  84. data/fixtures/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  85. data/fixtures/self_test/features/support/env.rb +0 -8
  86. data/fixtures/tickets/features.html +1 -1
  87. data/gem_tasks/examples.rake +1 -1
  88. data/gem_tasks/features.rake +14 -0
  89. data/gem_tasks/sdoc.rake +12 -0
  90. data/lib/cucumber.rb +0 -12
  91. data/lib/cucumber/ast.rb +1 -1
  92. data/lib/cucumber/ast/background.rb +5 -21
  93. data/lib/cucumber/ast/examples.rb +4 -12
  94. data/lib/cucumber/ast/feature.rb +5 -13
  95. data/lib/cucumber/ast/feature_element.rb +4 -9
  96. data/lib/cucumber/ast/outline_table.rb +4 -4
  97. data/lib/cucumber/ast/py_string.rb +80 -0
  98. data/lib/cucumber/ast/scenario.rb +5 -7
  99. data/lib/cucumber/ast/scenario_outline.rb +15 -23
  100. data/lib/cucumber/ast/step.rb +0 -5
  101. data/lib/cucumber/ast/step_invocation.rb +15 -21
  102. data/lib/cucumber/ast/table.rb +8 -14
  103. data/lib/cucumber/ast/tree_walker.rb +48 -10
  104. data/lib/cucumber/cli/configuration.rb +8 -33
  105. data/lib/cucumber/cli/main.rb +35 -20
  106. data/lib/cucumber/cli/options.rb +7 -8
  107. data/lib/cucumber/cli/profile_loader.rb +0 -2
  108. data/lib/cucumber/core_ext/proc.rb +1 -2
  109. data/lib/cucumber/feature_file.rb +15 -47
  110. data/lib/cucumber/formatter/ansicolor.rb +5 -3
  111. data/lib/cucumber/formatter/color_io.rb +23 -0
  112. data/lib/cucumber/formatter/console.rb +23 -27
  113. data/lib/cucumber/formatter/cucumber.css +17 -34
  114. data/lib/cucumber/formatter/cucumber.sass +182 -173
  115. data/lib/cucumber/formatter/html.rb +11 -46
  116. data/lib/cucumber/formatter/io.rb +4 -2
  117. data/lib/cucumber/formatter/json.rb +152 -15
  118. data/lib/cucumber/formatter/json_pretty.rb +6 -5
  119. data/lib/cucumber/formatter/junit.rb +22 -28
  120. data/lib/cucumber/formatter/pdf.rb +6 -6
  121. data/lib/cucumber/formatter/pretty.rb +5 -5
  122. data/lib/cucumber/formatter/rerun.rb +11 -22
  123. data/lib/cucumber/formatter/tag_cloud.rb +35 -0
  124. data/lib/cucumber/formatter/unicode.rb +20 -41
  125. data/lib/cucumber/js_support/js_dsl.js +4 -4
  126. data/lib/cucumber/js_support/js_language.rb +5 -9
  127. data/lib/cucumber/js_support/js_snippets.rb +2 -2
  128. data/lib/cucumber/language_support.rb +2 -2
  129. data/lib/cucumber/parser/gherkin_builder.rb +30 -35
  130. data/lib/cucumber/platform.rb +8 -8
  131. data/lib/cucumber/py_support/py_language.rb +2 -2
  132. data/lib/cucumber/rake/task.rb +31 -74
  133. data/lib/cucumber/rb_support/rb_dsl.rb +0 -1
  134. data/lib/cucumber/rb_support/rb_language.rb +8 -10
  135. data/lib/cucumber/rb_support/rb_step_definition.rb +0 -8
  136. data/lib/cucumber/rb_support/rb_transform.rb +0 -17
  137. data/lib/cucumber/rb_support/rb_world.rb +18 -26
  138. data/lib/cucumber/rspec/doubles.rb +3 -3
  139. data/lib/cucumber/step_match.rb +2 -6
  140. data/lib/cucumber/step_mother.rb +427 -6
  141. data/lib/cucumber/wire_support/configuration.rb +1 -4
  142. data/lib/cucumber/wire_support/wire_language.rb +10 -3
  143. data/spec/cucumber/ast/background_spec.rb +6 -68
  144. data/spec/cucumber/ast/feature_factory.rb +4 -5
  145. data/spec/cucumber/ast/feature_spec.rb +4 -4
  146. data/spec/cucumber/ast/outline_table_spec.rb +1 -1
  147. data/spec/cucumber/ast/py_string_spec.rb +40 -0
  148. data/spec/cucumber/ast/scenario_outline_spec.rb +11 -15
  149. data/spec/cucumber/ast/scenario_spec.rb +4 -4
  150. data/spec/cucumber/ast/step_spec.rb +3 -3
  151. data/spec/cucumber/ast/table_spec.rb +2 -38
  152. data/spec/cucumber/ast/tree_walker_spec.rb +2 -2
  153. data/spec/cucumber/broadcaster_spec.rb +1 -1
  154. data/spec/cucumber/cli/configuration_spec.rb +6 -32
  155. data/spec/cucumber/cli/drb_client_spec.rb +3 -2
  156. data/spec/cucumber/cli/main_spec.rb +43 -43
  157. data/spec/cucumber/cli/options_spec.rb +1 -28
  158. data/spec/cucumber/cli/profile_loader_spec.rb +1 -1
  159. data/spec/cucumber/core_ext/proc_spec.rb +1 -1
  160. data/spec/cucumber/formatter/ansicolor_spec.rb +1 -1
  161. data/spec/cucumber/formatter/color_io_spec.rb +29 -0
  162. data/spec/cucumber/formatter/duration_spec.rb +1 -1
  163. data/spec/cucumber/formatter/html_spec.rb +5 -3
  164. data/spec/cucumber/formatter/junit_spec.rb +2 -16
  165. data/spec/cucumber/formatter/progress_spec.rb +1 -1
  166. data/spec/cucumber/formatter/spec_helper.rb +12 -11
  167. data/spec/cucumber/rb_support/rb_language_spec.rb +28 -241
  168. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +28 -33
  169. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +1 -1
  170. data/spec/cucumber/step_match_spec.rb +9 -11
  171. data/spec/cucumber/step_mother_spec.rb +302 -0
  172. data/spec/cucumber/wire_support/configuration_spec.rb +1 -1
  173. data/spec/cucumber/wire_support/connection_spec.rb +1 -1
  174. data/spec/cucumber/wire_support/wire_exception_spec.rb +1 -1
  175. data/spec/cucumber/wire_support/wire_language_spec.rb +1 -1
  176. data/spec/cucumber/wire_support/wire_packet_spec.rb +1 -1
  177. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +1 -1
  178. data/spec/cucumber/world/pending_spec.rb +2 -2
  179. data/spec/spec_helper.rb +20 -13
  180. metadata +78 -4
@@ -0,0 +1,245 @@
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
+ """
@@ -0,0 +1,35 @@
1
+ Feature: Unicode in tables
2
+ In order to please the whole world,
3
+ unicode characters in tables should be
4
+ properly aligned
5
+
6
+ Scenario: All sorts of weird stuff
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/unicode.feature" with:
9
+ """
10
+ Feature: Featuring unicode
11
+
12
+ Scenario: So what, whatever
13
+ Given passing
14
+ | Brüno | abc |
15
+ | Bruno | æøå |
16
+ """
17
+ And a file named "features/env.rb" with:
18
+ """
19
+ $KCODE='u'
20
+ """
21
+ When I run cucumber -q --dry-run features/unicode.feature
22
+ Then it should pass with
23
+ """
24
+ Feature: Featuring unicode
25
+
26
+ Scenario: So what, whatever
27
+ Given passing
28
+ | Brüno | abc |
29
+ | Bruno | æøå |
30
+
31
+ 1 scenario (1 undefined)
32
+ 1 step (1 undefined)
33
+
34
+ """
35
+
@@ -0,0 +1,169 @@
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 STDERR should be empty
9
+ And it should pass with
10
+ """
11
+ -------------------------------------UU-U--------------UUUUU---------U-------U--------------U-UU-------------------------------------------------UU
12
+
13
+ /^'(.+)' cukes$/ # features/step_definitions/sample_steps.rb:27
14
+ Given '10' cukes # features/background/background_with_name.feature:4
15
+ Given '10' cukes # features/background/background_with_name.feature:4
16
+ And '10' cukes # features/background/failing_background.feature:6
17
+ And '10' cukes # features/background/failing_background.feature:6
18
+ And '10' cukes # features/background/failing_background.feature:6
19
+ Given '10' cukes # features/background/passing_background.feature:4
20
+ Given '10' cukes # features/background/passing_background.feature:4
21
+ Given '10' cukes # features/background/passing_background.feature:4
22
+ Given '10' cukes # features/background/scenario_outline_passing_background.feature:4
23
+ Given '2' cukes # features/tons_of_cukes.feature:4
24
+ Given '2' cukes # features/tons_of_cukes.feature:5
25
+ Given '2' cukes # features/tons_of_cukes.feature:6
26
+ Given '2' cukes # features/tons_of_cukes.feature:7
27
+ Given '2' cukes # features/tons_of_cukes.feature:8
28
+ Given '2' cukes # features/tons_of_cukes.feature:9
29
+ Given '2' cukes # features/tons_of_cukes.feature:10
30
+ Given '2' cukes # features/tons_of_cukes.feature:11
31
+ Given '2' cukes # features/tons_of_cukes.feature:12
32
+ Given '2' cukes # features/tons_of_cukes.feature:13
33
+ Given '2' cukes # features/tons_of_cukes.feature:14
34
+ Given '2' cukes # features/tons_of_cukes.feature:15
35
+ Given '2' cukes # features/tons_of_cukes.feature:16
36
+ Given '2' cukes # features/tons_of_cukes.feature:17
37
+ Given '2' cukes # features/tons_of_cukes.feature:18
38
+ Given '2' cukes # features/tons_of_cukes.feature:19
39
+ Given '2' cukes # features/tons_of_cukes.feature:20
40
+ Given '2' cukes # features/tons_of_cukes.feature:21
41
+ Given '2' cukes # features/tons_of_cukes.feature:22
42
+ Given '2' cukes # features/tons_of_cukes.feature:23
43
+ Given '2' cukes # features/tons_of_cukes.feature:24
44
+ Given '2' cukes # features/tons_of_cukes.feature:25
45
+ Given '2' cukes # features/tons_of_cukes.feature:26
46
+ Given '2' cukes # features/tons_of_cukes.feature:27
47
+ Given '2' cukes # features/tons_of_cukes.feature:28
48
+ Given '2' cukes # features/tons_of_cukes.feature:29
49
+ Given '2' cukes # features/tons_of_cukes.feature:30
50
+ Given '2' cukes # features/tons_of_cukes.feature:31
51
+ Given '2' cukes # features/tons_of_cukes.feature:32
52
+ Given '2' cukes # features/tons_of_cukes.feature:33
53
+ Given '2' cukes # features/tons_of_cukes.feature:34
54
+ Given '2' cukes # features/tons_of_cukes.feature:35
55
+ Given '2' cukes # features/tons_of_cukes.feature:36
56
+ Given '2' cukes # features/tons_of_cukes.feature:37
57
+ Given '2' cukes # features/tons_of_cukes.feature:38
58
+ Given '2' cukes # features/tons_of_cukes.feature:39
59
+ Given '2' cukes # features/tons_of_cukes.feature:40
60
+ Given '2' cukes # features/tons_of_cukes.feature:41
61
+ Given '2' cukes # features/tons_of_cukes.feature:42
62
+ Given '2' cukes # features/tons_of_cukes.feature:43
63
+ Given '2' cukes # features/tons_of_cukes.feature:44
64
+ Given '2' cukes # features/tons_of_cukes.feature:45
65
+ Given '2' cukes # features/tons_of_cukes.feature:46
66
+ Given '2' cukes # features/tons_of_cukes.feature:47
67
+ Given '2' cukes # features/tons_of_cukes.feature:48
68
+ Given '2' cukes # features/tons_of_cukes.feature:49
69
+ Given '2' cukes # features/tons_of_cukes.feature:50
70
+ Given '2' cukes # features/tons_of_cukes.feature:51
71
+ Given '2' cukes # features/tons_of_cukes.feature:52
72
+ /^'(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:35
73
+ And '10' global cukes # features/background/failing_background_after_success.feature:5
74
+ And '10' global cukes # features/background/failing_background_after_success.feature:5
75
+ And '10' global cukes # features/background/failing_background_after_success.feature:5
76
+ /^I should have '(.+)' cukes$/ # features/step_definitions/sample_steps.rb:31
77
+ Then I should have '10' cukes # features/background/background_with_name.feature:7
78
+ Then I should have '10' cukes # features/background/failing_background.feature:9
79
+ Then I should have '10' cukes # features/background/failing_background.feature:12
80
+ Then I should have '10' cukes # features/background/passing_background.feature:7
81
+ Then I should have '10' cukes # features/background/passing_background.feature:10
82
+ Then I should have '10' cukes # features/background/pending_background.feature:7
83
+ Then I should have '10' cukes # features/background/pending_background.feature:10
84
+ /^I should have '(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:42
85
+ Then I should have '10' global cukes # features/background/failing_background_after_success.feature:8
86
+ Then I should have '10' global cukes # features/background/failing_background_after_success.feature:11
87
+ /^a step definition that calls an undefined step$/ # features/step_definitions/sample_steps.rb:19
88
+ Given a step definition that calls an undefined step # features/call_undefined_step_from_step_def.feature:4
89
+ /^another unused$/ # features/step_definitions/sample_steps.rb:69
90
+ NOT MATCHED BY ANY STEPS
91
+ /^call step "(.*)"$/ # features/step_definitions/sample_steps.rb:23
92
+ Given call step "a step definition that calls an undefined step" # features/call_undefined_step_from_step_def.feature:7
93
+ /^failing expectation$/ # features/step_definitions/sample_steps.rb:62
94
+ Given failing expectation # features/failing_expectation.feature:4
95
+ /^failing without a table$/ # features/step_definitions/sample_steps.rb:15
96
+ Given failing without a table # features/background/failing_background.feature:5
97
+ Given failing without a table # features/background/failing_background.feature:5
98
+ Given failing without a table # features/background/failing_background.feature:5
99
+ Given failing without a table # features/background/scenario_outline_failing_background.feature:4
100
+ Given failing without a table # features/search_sample.feature:10
101
+ /^failing$/ # features/step_definitions/sample_steps.rb:8
102
+ Given failing # features/sample.feature:18
103
+ /^multiline string$/ # features/step_definitions/sample_steps.rb:50
104
+ And multiline string # features/background/multiline_args_background.feature:7
105
+ And multiline string # features/background/multiline_args_background.feature:7
106
+ And multiline string # features/background/multiline_args_background.feature:7
107
+ /^passing without a table$/ # features/step_definitions/sample_steps.rb:12
108
+ Given passing without a table # features/background/background_tagged_before_on_outline.feature:5
109
+ Given passing without a table # features/background/failing_background_after_success.feature:4
110
+ Given passing without a table # features/background/failing_background_after_success.feature:4
111
+ Given passing without a table # features/background/failing_background_after_success.feature:4
112
+ Given passing without a table # features/multiline_name.feature:6
113
+ Given passing without a table # features/multiline_name.feature:6
114
+ Given passing without a table # features/multiline_name.feature:11
115
+ Given passing without a table # features/search_sample.feature:4
116
+ Given passing without a table # features/search_sample.feature:4
117
+ Given passing without a table # features/search_sample.feature:7
118
+ Given passing without a table # features/search_sample.feature:4
119
+ /^passing$/ # features/step_definitions/sample_steps.rb:5
120
+ Given passing # features/sample.feature:12
121
+ /^table$/ # features/step_definitions/sample_steps.rb:46
122
+ Given table # features/background/multiline_args_background.feature:4
123
+ Given table # features/background/multiline_args_background.feature:4
124
+ Given table # features/background/multiline_args_background.feature:4
125
+ /^the multiline string should be$/ # features/step_definitions/sample_steps.rb:58
126
+ Then the multiline string should be # features/background/multiline_args_background.feature:17
127
+ Then the multiline string should be # features/background/multiline_args_background.feature:27
128
+ /^the table should be$/ # features/step_definitions/sample_steps.rb:54
129
+ Then the table should be # features/background/multiline_args_background.feature:14
130
+ Then the table should be # features/background/multiline_args_background.feature:24
131
+ /^unused$/ # features/step_definitions/sample_steps.rb:66
132
+ NOT MATCHED BY ANY STEPS
133
+
134
+ 43 scenarios (32 skipped, 10 undefined, 1 passed)
135
+ 131 steps (117 skipped, 14 undefined)
136
+
137
+ """
138
+
139
+ Scenario: --format stepdefs
140
+ When I run cucumber features --format stepdefs --dry-run
141
+ Then STDERR should be empty
142
+ And it should pass with
143
+ """
144
+ -------------------------------------UU-U--------------UUUUU---------U-------U--------------U-UU-------------------------------------------------UU
145
+
146
+ /^'(.+)' cukes$/ # features/step_definitions/sample_steps.rb:27
147
+ /^'(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:35
148
+ /^I should have '(.+)' cukes$/ # features/step_definitions/sample_steps.rb:31
149
+ /^I should have '(.+)' global cukes$/ # features/step_definitions/sample_steps.rb:42
150
+ /^a step definition that calls an undefined step$/ # features/step_definitions/sample_steps.rb:19
151
+ /^another unused$/ # features/step_definitions/sample_steps.rb:69
152
+ NOT MATCHED BY ANY STEPS
153
+ /^call step "(.*)"$/ # features/step_definitions/sample_steps.rb:23
154
+ /^failing expectation$/ # features/step_definitions/sample_steps.rb:62
155
+ /^failing without a table$/ # features/step_definitions/sample_steps.rb:15
156
+ /^failing$/ # features/step_definitions/sample_steps.rb:8
157
+ /^multiline string$/ # features/step_definitions/sample_steps.rb:50
158
+ /^passing without a table$/ # features/step_definitions/sample_steps.rb:12
159
+ /^passing$/ # features/step_definitions/sample_steps.rb:5
160
+ /^table$/ # features/step_definitions/sample_steps.rb:46
161
+ /^the multiline string should be$/ # features/step_definitions/sample_steps.rb:58
162
+ /^the table should be$/ # features/step_definitions/sample_steps.rb:54
163
+ /^unused$/ # features/step_definitions/sample_steps.rb:66
164
+ NOT MATCHED BY ANY STEPS
165
+
166
+ 43 scenarios (32 skipped, 10 undefined, 1 passed)
167
+ 131 steps (117 skipped, 14 undefined)
168
+
169
+ """