cucumber 1.3.10 → 2.0.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 (465) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.rspec +1 -1
  4. data/.travis.yml +4 -3
  5. data/CONTRIBUTING.md +9 -0
  6. data/Gemfile +9 -2
  7. data/History.md +212 -22
  8. data/LICENSE +2 -2
  9. data/README.md +4 -4
  10. data/Rakefile +10 -1
  11. data/bin/cucumber +1 -5
  12. data/cucumber.gemspec +10 -13
  13. data/cucumber.yml +14 -24
  14. data/examples/{ramaze → i18n/el}/Rakefile +1 -1
  15. data/examples/i18n/el/features/addition.feature +17 -0
  16. data/examples/i18n/el/features/division.feature +10 -0
  17. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +24 -0
  18. data/examples/i18n/el/lib/calculator.rb +14 -0
  19. data/examples/i18n/fr/Rakefile +3 -1
  20. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +2 -2
  21. data/examples/i18n/ht/Rakefile +6 -0
  22. data/examples/i18n/ht/features/adisyon.feature +17 -0
  23. data/examples/i18n/ht/features/divizyon.feature +10 -0
  24. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +25 -0
  25. data/examples/i18n/ht/lib/kalkilatris.rb +14 -0
  26. data/examples/i18n/zh-CN/features/{step_definitons → step_definitions}/calculator_steps.rb +4 -4
  27. data/examples/tcl/features/step_definitions/fib_steps.rb +1 -1
  28. data/{legacy_features → features/docs}/api/list_step_defs_as_json.feature +14 -14
  29. data/{legacy_features → features/docs}/api/run_cli_main_with_existing_runtime.feature +5 -10
  30. data/features/{backtraces.feature → docs/cli/backtraces.feature} +2 -2
  31. data/features/docs/cli/dry_run.feature +73 -0
  32. data/features/docs/cli/exclude_files.feature +18 -0
  33. data/features/docs/cli/execute_with_tag_filter.feature +117 -0
  34. data/features/docs/cli/randomize.feature +46 -0
  35. data/features/docs/cli/require.feature +27 -0
  36. data/features/docs/cli/run_scenarios_matching_name.feature +104 -0
  37. data/features/docs/cli/run_specific_scenarios.feature +75 -0
  38. data/features/docs/cli/showing_differences.feature +43 -0
  39. data/features/docs/cli/specifying_multiple_formatters.feature +44 -0
  40. data/features/docs/cli/strict_mode.feature +64 -0
  41. data/features/{nested_steps.feature → docs/defining_steps/nested_steps.feature} +52 -6
  42. data/features/{nested_steps_i18n.feature → docs/defining_steps/nested_steps_i18n.feature} +0 -2
  43. data/features/{step_definitions.feature → docs/defining_steps/one_line_step_definitions.feature} +3 -3
  44. data/features/docs/defining_steps/printing_messages.feature +148 -0
  45. data/features/docs/defining_steps/skip_scenario.feature +62 -0
  46. data/features/docs/defining_steps/snippets.feature +56 -0
  47. data/{legacy_features → features/docs/defining_steps}/table_diffing.feature +21 -16
  48. data/features/{transforms.feature → docs/defining_steps/transforms.feature} +2 -2
  49. data/{legacy_features/exception_in_after_block.feature → features/docs/exception_in_after_hook.feature} +25 -26
  50. data/{legacy_features/exception_in_after_step_block.feature → features/docs/exception_in_after_step_hook.feature} +22 -24
  51. data/features/docs/exception_in_around_hook.feature +80 -0
  52. data/{legacy_features/exception_in_before_block.feature → features/docs/exception_in_before_hook.feature} +18 -20
  53. data/features/docs/extending_cucumber/custom_filter.feature +29 -0
  54. data/features/docs/extending_cucumber/custom_formatter.feature +94 -0
  55. data/features/docs/formatters/debug_formatter.feature +47 -0
  56. data/features/{formatter_step_file_colon_line.feature → docs/formatters/formatter_step_file_colon_line.feature} +2 -4
  57. data/features/{html_formatter.feature → docs/formatters/html_formatter.feature} +10 -14
  58. data/features/docs/formatters/json_formatter.feature +760 -0
  59. data/features/docs/formatters/junit_formatter.feature +316 -0
  60. data/features/docs/formatters/pretty_formatter.feature +73 -0
  61. data/features/{progress_formatter.feature → docs/formatters/progress_formatter.feature} +1 -1
  62. data/features/docs/formatters/rerun_formatter.feature +136 -0
  63. data/features/docs/formatters/usage_formatter.feature +102 -0
  64. data/features/docs/getting_started.feature +27 -0
  65. data/features/{background.feature → docs/gherkin/background.feature} +149 -91
  66. data/features/{doc_strings.feature → docs/gherkin/doc_strings.feature} +1 -0
  67. data/features/docs/gherkin/expand_option_for_outlines.feature +46 -0
  68. data/features/docs/gherkin/language_from_header.feature +32 -0
  69. data/features/docs/gherkin/outlines.feature +158 -0
  70. data/features/docs/gherkin/unicode_table.feature +32 -0
  71. data/features/docs/gherkin/using_descriptions.feature +88 -0
  72. data/features/docs/gherkin/using_star_notation.feature +37 -0
  73. data/{legacy_features → features/docs}/post_configuration_hook.feature +17 -18
  74. data/{legacy_features → features/docs}/profiles.feature +30 -36
  75. data/{legacy_features → features/docs}/rake_task.feature +30 -41
  76. data/features/{raketask.feature → docs/raketask.feature} +6 -13
  77. data/{legacy_features/wire_protocol_erb.feature → features/docs/wire_protocol/erb_configuration.feature} +7 -8
  78. data/features/docs/wire_protocol/handle_unexpected_response.feature +30 -0
  79. data/features/docs/wire_protocol/invoke_message.feature +216 -0
  80. data/features/docs/wire_protocol/readme.md +26 -0
  81. data/features/docs/wire_protocol/snippets_message.feature +51 -0
  82. data/features/docs/wire_protocol/step_matches_message.feature +81 -0
  83. data/{legacy_features/wire_protocol_table_diffing.feature → features/docs/wire_protocol/table_diffing.feature} +19 -12
  84. data/{legacy_features/wire_protocol_tags.feature → features/docs/wire_protocol/tags.feature} +7 -7
  85. data/{legacy_features/wire_protocol_timeouts.feature → features/docs/wire_protocol/timeouts.feature} +7 -6
  86. data/{legacy_features → features/docs}/work_in_progress.feature +52 -54
  87. data/features/docs/writing_support_code/after_hooks.feature +80 -0
  88. data/{legacy_features → features/docs/writing_support_code}/around_hooks.feature +56 -28
  89. data/features/docs/writing_support_code/before_hook.feature +65 -0
  90. data/features/docs/writing_support_code/hook_order.feature +61 -0
  91. data/features/{load_path.feature → docs/writing_support_code/load_path.feature} +3 -0
  92. data/features/docs/writing_support_code/state.feature +32 -0
  93. data/features/docs/writing_support_code/tagged_hooks.feature +95 -0
  94. data/features/lib/step_definitions/aruba_steps.rb +22 -0
  95. data/features/lib/step_definitions/cucumber_steps.rb +50 -0
  96. data/features/{step_definitions → lib/step_definitions}/iso-8859-1_steps.rb +3 -15
  97. data/features/lib/step_definitions/json_steps.rb +7 -0
  98. data/features/lib/step_definitions/junit_steps.rb +13 -0
  99. data/features/lib/step_definitions/language_steps.rb +4 -5
  100. data/features/lib/step_definitions/profile_steps.rb +15 -0
  101. data/features/lib/step_definitions/ruby_steps.rb +3 -0
  102. data/features/lib/step_definitions/wire_steps.rb +58 -0
  103. data/features/lib/support/env.rb +21 -0
  104. data/{legacy_features → features/lib}/support/fake_wire_server.rb +10 -7
  105. data/features/{support → lib/support}/feature_factory.rb +1 -1
  106. data/features/lib/support/normalise_output.rb +33 -0
  107. data/gem_tasks/cov.rake +5 -0
  108. data/gem_tasks/cucumber.rake +3 -8
  109. data/gem_tasks/rspec.rake +0 -2
  110. data/lib/cucumber/ast.rb +8 -25
  111. data/lib/cucumber/cli/configuration.rb +33 -37
  112. data/lib/cucumber/cli/main.rb +14 -27
  113. data/lib/cucumber/cli/options.rb +22 -60
  114. data/lib/cucumber/cli/profile_loader.rb +1 -1
  115. data/lib/cucumber/configuration.rb +4 -0
  116. data/lib/cucumber/constantize.rb +7 -6
  117. data/lib/cucumber/core_ext/instance_exec.rb +7 -38
  118. data/lib/cucumber/core_ext/proc.rb +1 -1
  119. data/lib/cucumber/encoding.rb +5 -0
  120. data/lib/cucumber/errors.rb +21 -10
  121. data/lib/cucumber/file_specs.rb +37 -0
  122. data/lib/cucumber/filters/activate_steps.rb +33 -0
  123. data/lib/cucumber/filters/apply_after_hooks.rb +9 -0
  124. data/lib/cucumber/filters/apply_after_step_hooks.rb +12 -0
  125. data/lib/cucumber/filters/apply_around_hooks.rb +12 -0
  126. data/lib/cucumber/filters/apply_before_hooks.rb +9 -0
  127. data/lib/cucumber/filters/gated_receiver.rb +25 -0
  128. data/lib/cucumber/filters/prepare_world.rb +45 -0
  129. data/lib/cucumber/filters/quit.rb +28 -0
  130. data/lib/cucumber/filters/randomizer.rb +40 -0
  131. data/lib/cucumber/filters/tag_limits/test_case_index.rb +31 -0
  132. data/lib/cucumber/filters/tag_limits/verifier.rb +59 -0
  133. data/lib/cucumber/filters/tag_limits.rb +45 -0
  134. data/lib/cucumber/filters.rb +9 -0
  135. data/lib/cucumber/formatter/ansicolor.rb +0 -8
  136. data/lib/cucumber/formatter/console.rb +66 -36
  137. data/lib/cucumber/formatter/debug.rb +10 -8
  138. data/lib/cucumber/formatter/fanout.rb +27 -0
  139. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +122 -12
  140. data/lib/cucumber/formatter/html.rb +67 -18
  141. data/lib/cucumber/formatter/ignore_missing_messages.rb +20 -0
  142. data/lib/cucumber/formatter/interceptor.rb +17 -3
  143. data/lib/cucumber/formatter/json.rb +1 -1
  144. data/lib/cucumber/formatter/junit.rb +105 -5
  145. data/lib/cucumber/formatter/legacy_api/adapter.rb +1060 -0
  146. data/lib/cucumber/formatter/legacy_api/ast.rb +376 -0
  147. data/lib/cucumber/formatter/legacy_api/results.rb +51 -0
  148. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +30 -0
  149. data/lib/cucumber/formatter/pretty.rb +16 -8
  150. data/lib/cucumber/formatter/progress.rb +10 -0
  151. data/lib/cucumber/formatter/rerun.rb +14 -71
  152. data/lib/cucumber/formatter/unicode.rb +8 -21
  153. data/lib/cucumber/formatter/usage.rb +7 -1
  154. data/lib/cucumber/hooks.rb +97 -0
  155. data/lib/cucumber/language_support/language_methods.rb +0 -54
  156. data/lib/cucumber/{ast/table.rb → multiline_argument/data_table.rb} +77 -84
  157. data/lib/cucumber/multiline_argument/doc_string.rb +10 -0
  158. data/lib/cucumber/multiline_argument.rb +74 -0
  159. data/lib/cucumber/platform.rb +21 -20
  160. data/lib/cucumber/project_initializer.rb +43 -0
  161. data/lib/cucumber/rake/task.rb +3 -54
  162. data/lib/cucumber/rb_support/rb_hook.rb +2 -2
  163. data/lib/cucumber/rb_support/rb_language.rb +4 -34
  164. data/lib/cucumber/rb_support/rb_step_definition.rb +11 -2
  165. data/lib/cucumber/rb_support/rb_transform.rb +3 -1
  166. data/lib/cucumber/rb_support/rb_world.rb +13 -20
  167. data/lib/cucumber/rb_support/snippet.rb +61 -20
  168. data/lib/cucumber/rspec/doubles.rb +9 -6
  169. data/lib/cucumber/running_test_case.rb +115 -0
  170. data/lib/cucumber/runtime/after_hooks.rb +24 -0
  171. data/lib/cucumber/runtime/before_hooks.rb +23 -0
  172. data/lib/cucumber/runtime/for_programming_languages.rb +14 -10
  173. data/lib/cucumber/runtime/step_hooks.rb +22 -0
  174. data/lib/cucumber/runtime/support_code.rb +78 -21
  175. data/lib/cucumber/runtime/user_interface.rb +4 -0
  176. data/lib/cucumber/runtime.rb +153 -98
  177. data/lib/cucumber/step_match.rb +27 -3
  178. data/lib/cucumber/term/ansicolor.rb +1 -9
  179. data/lib/cucumber/wire_support/wire_language.rb +23 -9
  180. data/lib/cucumber/wire_support/wire_packet.rb +1 -1
  181. data/lib/cucumber/wire_support/wire_protocol/requests.rb +13 -5
  182. data/lib/cucumber/wire_support/wire_step_definition.rb +1 -8
  183. data/lib/cucumber.rb +8 -6
  184. data/spec/cucumber/cli/configuration_spec.rb +165 -134
  185. data/spec/cucumber/cli/main_spec.rb +36 -99
  186. data/spec/cucumber/cli/options_spec.rb +238 -272
  187. data/spec/cucumber/cli/profile_loader_spec.rb +18 -7
  188. data/spec/cucumber/configuration_spec.rb +3 -3
  189. data/spec/cucumber/constantize_spec.rb +2 -1
  190. data/spec/cucumber/core_ext/instance_exec_spec.rb +4 -0
  191. data/spec/cucumber/core_ext/proc_spec.rb +32 -43
  192. data/spec/cucumber/file_specs_spec.rb +60 -0
  193. data/spec/cucumber/filters/activate_steps_spec.rb +57 -0
  194. data/spec/cucumber/filters/gated_receiver_spec.rb +47 -0
  195. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +38 -0
  196. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +57 -0
  197. data/spec/cucumber/filters/tag_limits_spec.rb +59 -0
  198. data/spec/cucumber/formatter/ansicolor_spec.rb +11 -10
  199. data/spec/cucumber/formatter/debug_spec.rb +64 -0
  200. data/spec/cucumber/formatter/duration_spec.rb +6 -6
  201. data/spec/cucumber/formatter/html_spec.rb +233 -39
  202. data/spec/cucumber/formatter/interceptor_spec.rb +38 -31
  203. data/spec/cucumber/formatter/junit_spec.rb +213 -151
  204. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +2090 -0
  205. data/spec/cucumber/formatter/pretty_spec.rb +481 -49
  206. data/spec/cucumber/formatter/progress_spec.rb +63 -16
  207. data/spec/cucumber/formatter/rerun_spec.rb +107 -0
  208. data/spec/cucumber/formatter/spec_helper.rb +32 -17
  209. data/spec/cucumber/hooks_spec.rb +30 -0
  210. data/spec/cucumber/{ast/table_spec.rb → multiline_argument/data_table_spec.rb} +128 -208
  211. data/spec/cucumber/project_initializer_spec.rb +87 -0
  212. data/spec/cucumber/rake/forked_spec.rb +13 -22
  213. data/spec/cucumber/rb_support/rb_language_spec.rb +78 -69
  214. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +90 -44
  215. data/spec/cucumber/rb_support/rb_transform_spec.rb +24 -3
  216. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +6 -4
  217. data/spec/cucumber/rb_support/snippet_spec.rb +47 -38
  218. data/spec/cucumber/running_test_case_spec.rb +83 -0
  219. data/spec/cucumber/runtime/for_programming_languages_spec.rb +18 -13
  220. data/spec/cucumber/runtime/support_code_spec.rb +29 -29
  221. data/spec/cucumber/runtime_spec.rb +35 -34
  222. data/spec/cucumber/step_match_spec.rb +30 -20
  223. data/spec/cucumber/wire_support/configuration_spec.rb +8 -5
  224. data/spec/cucumber/wire_support/connection_spec.rb +12 -8
  225. data/spec/cucumber/wire_support/wire_exception_spec.rb +14 -8
  226. data/spec/cucumber/wire_support/wire_language_spec.rb +8 -9
  227. data/spec/cucumber/wire_support/wire_packet_spec.rb +17 -13
  228. data/spec/cucumber/world/pending_spec.rb +36 -36
  229. data/spec/simplecov_setup.rb +18 -0
  230. data/spec/spec_helper.rb +6 -13
  231. metadata +348 -350
  232. data/.gitattributes +0 -1
  233. data/.ruby-version +0 -1
  234. data/examples/python/README.textile +0 -8
  235. data/examples/python/Rakefile +0 -4
  236. data/examples/python/features/fibonacci.feature +0 -19
  237. data/examples/python/features/step_definitions/fib_steps.py +0 -11
  238. data/examples/python/lib/fib.py +0 -7
  239. data/examples/ramaze/README.textile +0 -7
  240. data/examples/ramaze/app.rb +0 -21
  241. data/examples/ramaze/features/add.feature +0 -11
  242. data/examples/ramaze/features/step_definitions/add_steps.rb +0 -15
  243. data/examples/ramaze/features/support/env.rb +0 -32
  244. data/examples/ramaze/layout/default.html.erb +0 -8
  245. data/examples/ramaze/view/index.html.erb +0 -5
  246. data/examples/ruby2python/README.textile +0 -8
  247. data/examples/ruby2python/Rakefile +0 -4
  248. data/examples/ruby2python/features/fibonacci.feature +0 -19
  249. data/examples/ruby2python/features/step_definitions/fib_steps.rb +0 -7
  250. data/examples/ruby2python/features/support/env.rb +0 -21
  251. data/examples/ruby2python/lib/fib.py +0 -7
  252. data/examples/v8/Rakefile +0 -6
  253. data/examples/v8/features/fibonacci.feature +0 -43
  254. data/examples/v8/features/step_definitions/fib_steps.js +0 -49
  255. data/examples/v8/features/support/env.js +0 -14
  256. data/examples/v8/lib/fibonacci.js +0 -19
  257. data/features/.cucumber/stepdefs.json +0 -627
  258. data/features/assertions.feature +0 -73
  259. data/features/autoformat_profile_output.feature +0 -23
  260. data/features/before_hook.feature +0 -43
  261. data/features/bootstrap.feature +0 -27
  262. data/features/custom_formatter.feature +0 -41
  263. data/features/drb_server_integration.feature +0 -63
  264. data/features/execute_with_tag_filter.feature +0 -63
  265. data/features/formatter_callbacks.feature +0 -189
  266. data/features/json_formatter.feature +0 -338
  267. data/features/parsing.feature +0 -18
  268. data/features/pretty_formatter.feature +0 -31
  269. data/features/rerun_formatter.feature +0 -35
  270. data/features/run_specific_scenarios.feature +0 -47
  271. data/features/stats_formatters.feature +0 -73
  272. data/features/step_definitions/cucumber-features/cucumber_ruby_mappings.rb +0 -197
  273. data/features/step_definitions/cucumber_steps.rb +0 -55
  274. data/features/step_definitions/drb_steps.rb +0 -3
  275. data/features/support/env.rb +0 -57
  276. data/features/tagged_hooks.feature +0 -59
  277. data/fixtures/json/features/background.feature +0 -7
  278. data/fixtures/json/features/embed.feature +0 -4
  279. data/fixtures/json/features/one_passing_one_failing.feature +0 -11
  280. data/fixtures/json/features/step_definitions/steps.rb +0 -32
  281. data/fixtures/json/features/tables.feature +0 -13
  282. data/fixtures/junit/features/one_passing_one_failing.feature +0 -8
  283. data/fixtures/junit/features/pending.feature +0 -7
  284. data/fixtures/junit/features/scenario_outline.feature +0 -9
  285. data/fixtures/junit/features/some_subdirectory/one_passing_one_failing.feature +0 -8
  286. data/fixtures/junit/features/step_definitions/steps.rb +0 -11
  287. data/fixtures/self_test/README.textile +0 -6
  288. data/fixtures/self_test/Rakefile +0 -6
  289. data/fixtures/self_test/features/call_undefined_step_from_step_def.feature +0 -7
  290. data/fixtures/self_test/features/failing_expectation.feature +0 -4
  291. data/fixtures/self_test/features/lots_of_undefined.feature +0 -8
  292. data/fixtures/self_test/features/multiline_name.feature +0 -27
  293. data/fixtures/self_test/features/outline_sample.feature +0 -15
  294. data/fixtures/self_test/features/sample.feature +0 -21
  295. data/fixtures/self_test/features/search_sample.feature +0 -32
  296. data/fixtures/self_test/features/step_definitions/sample_steps.rb +0 -84
  297. data/fixtures/self_test/features/support/bubble_256x256.png +0 -0
  298. data/fixtures/self_test/features/support/env.rb +0 -26
  299. data/fixtures/self_test/features/tags_sample.feature +0 -17
  300. data/fixtures/self_test/features/tons_of_cukes.feature +0 -52
  301. data/fixtures/self_test/features/undefined_multiline_args.feature +0 -12
  302. data/fixtures/self_test/list-of-features.txt +0 -1
  303. data/fixtures/steps_library/features/step_definitions/steps_lib1.rb +0 -8
  304. data/fixtures/steps_library/features/step_definitions/steps_lib2.rb +0 -8
  305. data/fixtures/tickets/Rakefile +0 -20
  306. data/fixtures/tickets/features/172.feature +0 -28
  307. data/fixtures/tickets/features/177/1.feature +0 -28
  308. data/fixtures/tickets/features/177/2.feature +0 -20
  309. data/fixtures/tickets/features/177/3.feature +0 -18
  310. data/fixtures/tickets/features/180.feature +0 -7
  311. data/fixtures/tickets/features/229/tagged_hooks.feature +0 -8
  312. data/fixtures/tickets/features/229/tagged_hooks.rb +0 -14
  313. data/fixtures/tickets/features/236.feature +0 -13
  314. data/fixtures/tickets/features/241.feature +0 -12
  315. data/fixtures/tickets/features/246.feature +0 -4
  316. data/fixtures/tickets/features/248.feature +0 -11
  317. data/fixtures/tickets/features/270/back.feature +0 -14
  318. data/fixtures/tickets/features/270/back.steps.rb +0 -14
  319. data/fixtures/tickets/features/272/hooks.feature +0 -26
  320. data/fixtures/tickets/features/272/hooks_steps.rb +0 -53
  321. data/fixtures/tickets/features/279/py_string_indent.feature +0 -25
  322. data/fixtures/tickets/features/279/py_string_indent.steps.rb +0 -12
  323. data/fixtures/tickets/features/279/wrong.feature_ +0 -11
  324. data/fixtures/tickets/features/301/filter_background_tagged_hooks.feature +0 -6
  325. data/fixtures/tickets/features/301/filter_background_tagged_hooks_steps.rb +0 -12
  326. data/fixtures/tickets/features/306/only_background.feature +0 -4
  327. data/fixtures/tickets/features/around_timeout.feature +0 -6
  328. data/fixtures/tickets/features/gherkin_67.feature +0 -12
  329. data/fixtures/tickets/features/gherkin_68.feature +0 -4
  330. data/fixtures/tickets/features/half_manual.feature +0 -11
  331. data/fixtures/tickets/features/lib/eatting_machine.rb +0 -18
  332. data/fixtures/tickets/features/lib/pantry.rb +0 -20
  333. data/fixtures/tickets/features/scenario_outline.feature +0 -95
  334. data/fixtures/tickets/features/step_definitons/246_steps.rb +0 -3
  335. data/fixtures/tickets/features/step_definitons/248_steps.rb +0 -15
  336. data/fixtures/tickets/features/step_definitons/around_timeout_steps.rb +0 -9
  337. data/fixtures/tickets/features/step_definitons/half_manual_steps.rb +0 -11
  338. data/fixtures/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
  339. data/fixtures/tickets/features/step_definitons/tickets_steps.rb +0 -88
  340. data/fixtures/tickets/features/table_diffing.feature +0 -13
  341. data/fixtures/tickets/features/tickets.feature +0 -28
  342. data/fixtures/tickets/features.html +0 -138
  343. data/gem_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
  344. data/gem_tasks/yard/default/layout/html/footer.erb +0 -5
  345. data/gem_tasks/yard/default/layout/html/index.erb +0 -1
  346. data/gem_tasks/yard/default/layout/html/layout.erb +0 -25
  347. data/gem_tasks/yard/default/layout/html/logo.erb +0 -1
  348. data/gem_tasks/yard/default/layout/html/setup.rb +0 -4
  349. data/gem_tasks/yard.rake +0 -40
  350. data/legacy_features/README.md +0 -14
  351. data/legacy_features/announce.feature +0 -152
  352. data/legacy_features/bug_371.feature +0 -32
  353. data/legacy_features/bug_464.feature +0 -16
  354. data/legacy_features/bug_475.feature +0 -42
  355. data/legacy_features/bug_585_tab_indentation.feature +0 -22
  356. data/legacy_features/bug_600.feature +0 -73
  357. data/legacy_features/cucumber_cli.feature +0 -584
  358. data/legacy_features/cucumber_cli_outlines.feature +0 -117
  359. data/legacy_features/default_snippets.feature +0 -43
  360. data/legacy_features/diffing.feature +0 -25
  361. data/legacy_features/drb_server_integration.feature +0 -174
  362. data/legacy_features/exclude_files.feature +0 -20
  363. data/legacy_features/expand.feature +0 -60
  364. data/legacy_features/junit_formatter.feature +0 -214
  365. data/legacy_features/language_from_header.feature +0 -30
  366. data/legacy_features/listener_debugger_formatter.feature +0 -42
  367. data/legacy_features/multiline_names.feature +0 -44
  368. data/legacy_features/report_called_undefined_steps.feature +0 -35
  369. data/legacy_features/rerun_formatter.feature +0 -52
  370. data/legacy_features/simplest.feature +0 -11
  371. data/legacy_features/snippet.feature +0 -23
  372. data/legacy_features/snippets_when_using_star_keyword.feature +0 -38
  373. data/legacy_features/step_definitions/cucumber_steps.rb +0 -179
  374. data/legacy_features/step_definitions/extra_steps.rb +0 -2
  375. data/legacy_features/step_definitions/simplest_steps.rb +0 -3
  376. data/legacy_features/step_definitions/wire_steps.rb +0 -34
  377. data/legacy_features/support/env.rb +0 -161
  378. data/legacy_features/support/env.rb.simplest +0 -7
  379. data/legacy_features/table_mapping.feature +0 -34
  380. data/legacy_features/transform.feature +0 -245
  381. data/legacy_features/unicode_table.feature +0 -35
  382. data/legacy_features/wire_protocol.feature +0 -332
  383. data/lib/README.rdoc +0 -12
  384. data/lib/cucumber/ast/background.rb +0 -116
  385. data/lib/cucumber/ast/comment.rb +0 -31
  386. data/lib/cucumber/ast/doc_string.rb +0 -61
  387. data/lib/cucumber/ast/empty_background.rb +0 -33
  388. data/lib/cucumber/ast/examples.rb +0 -49
  389. data/lib/cucumber/ast/feature.rb +0 -99
  390. data/lib/cucumber/ast/features.rb +0 -38
  391. data/lib/cucumber/ast/has_steps.rb +0 -74
  392. data/lib/cucumber/ast/location.rb +0 -41
  393. data/lib/cucumber/ast/multiline_argument.rb +0 -30
  394. data/lib/cucumber/ast/names.rb +0 -13
  395. data/lib/cucumber/ast/outline_table.rb +0 -194
  396. data/lib/cucumber/ast/scenario.rb +0 -103
  397. data/lib/cucumber/ast/scenario_outline.rb +0 -146
  398. data/lib/cucumber/ast/step.rb +0 -122
  399. data/lib/cucumber/ast/step_collection.rb +0 -92
  400. data/lib/cucumber/ast/step_invocation.rb +0 -196
  401. data/lib/cucumber/ast/tags.rb +0 -28
  402. data/lib/cucumber/ast/tree_walker.rb +0 -191
  403. data/lib/cucumber/ast/visitor.rb +0 -11
  404. data/lib/cucumber/broadcaster.rb +0 -13
  405. data/lib/cucumber/cli/drb_client.rb +0 -43
  406. data/lib/cucumber/feature_file.rb +0 -94
  407. data/lib/cucumber/formatter/ordered_xml_markup.rb +0 -24
  408. data/lib/cucumber/js_support/js_dsl.js +0 -57
  409. data/lib/cucumber/js_support/js_language.rb +0 -185
  410. data/lib/cucumber/js_support/js_snippets.rb +0 -27
  411. data/lib/cucumber/parser/gherkin_builder.rb +0 -284
  412. data/lib/cucumber/parser.rb +0 -2
  413. data/lib/cucumber/py_support/py_dsl.py +0 -10
  414. data/lib/cucumber/py_support/py_language.py +0 -10
  415. data/lib/cucumber/py_support/py_language.rb +0 -80
  416. data/lib/cucumber/runtime/features_loader.rb +0 -62
  417. data/lib/cucumber/runtime/results.rb +0 -64
  418. data/lib/cucumber/step_mother.rb +0 -10
  419. data/spec/cucumber/ast/background_spec.rb +0 -122
  420. data/spec/cucumber/ast/doc_string_spec.rb +0 -40
  421. data/spec/cucumber/ast/feature_factory.rb +0 -72
  422. data/spec/cucumber/ast/feature_spec.rb +0 -63
  423. data/spec/cucumber/ast/features_spec.rb +0 -51
  424. data/spec/cucumber/ast/outline_table_spec.rb +0 -21
  425. data/spec/cucumber/ast/scenario_outline_spec.rb +0 -74
  426. data/spec/cucumber/ast/step_spec.rb +0 -68
  427. data/spec/cucumber/ast/tree_walker_spec.rb +0 -19
  428. data/spec/cucumber/broadcaster_spec.rb +0 -15
  429. data/spec/cucumber/cli/drb_client_spec.rb +0 -76
  430. data/spec/cucumber/rake/rcov_spec.rb +0 -71
  431. data/spec/cucumber/runtime/results_spec.rb +0 -81
  432. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +0 -20
  433. /data/examples/i18n/ar/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  434. /data/examples/i18n/bg/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  435. /data/examples/i18n/ca/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  436. /data/examples/i18n/cs/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  437. /data/examples/i18n/da/features/{step_definitons → step_definitions}/lommeregner_steps.rb +0 -0
  438. /data/examples/i18n/de/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  439. /data/examples/i18n/en/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  440. /data/examples/i18n/eo/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  441. /data/examples/i18n/es/features/{step_definitons → step_definitions}/calculador_steps.rb +0 -0
  442. /data/examples/i18n/fi/features/{step_definitons → step_definitions}/laskin_steps.rb +0 -0
  443. /data/examples/i18n/he/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  444. /data/examples/i18n/hi/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  445. /data/examples/i18n/hu/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  446. /data/examples/i18n/id/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  447. /data/examples/i18n/it/features/{step_definitons → step_definitions}/calcolatrice_steps.rb +0 -0
  448. /data/examples/i18n/ja/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  449. /data/examples/i18n/ko/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  450. /data/examples/i18n/lt/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  451. /data/examples/i18n/lv/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  452. /data/examples/i18n/no/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
  453. /data/examples/i18n/pl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  454. /data/examples/i18n/ro/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  455. /data/examples/i18n/ru/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  456. /data/examples/i18n/sk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  457. /data/examples/i18n/sr-Cyrl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  458. /data/examples/i18n/sr-Latn/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  459. /data/examples/i18n/sv/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
  460. /data/examples/i18n/tr/features/{step_definitons → step_definitions}/hesap_makinesi_adimlari.rb +0 -0
  461. /data/examples/i18n/uk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  462. /data/examples/i18n/uz/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  463. /data/examples/i18n/zh-TW/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  464. /data/features/{nested_steps_with_second_arg.feature → docs/defining_steps/nested_steps_with_second_arg.feature} +0 -0
  465. /data/features/{iso-8859-1.feature → docs/iso-8859-1.feature} +0 -0
@@ -0,0 +1,88 @@
1
+ Feature: Using descriptions to give features context
2
+
3
+ When writing your feature files its very helpful to use description
4
+ text at the beginning of the feature file, to write a preamble to the
5
+ feature describing clearly exactly what the feature does.
6
+
7
+ You can also write descriptions attached to individual scenarios - see
8
+ the examples below for how this can be used.
9
+
10
+ It's possible to have your descriptions run over more than one line,
11
+ and you can have blank lines too. As long as you don't start a line
12
+ with a Given, When, Then, Background:, Scenario: or similar, you're
13
+ fine: otherwise Gherkin will start to pay attention.
14
+
15
+ Background:
16
+ Given the standard step definitions
17
+
18
+ Scenario: Everything with a description
19
+ Given a file named "features/test.feature" with:
20
+ """
21
+ Feature: descriptions everywhere
22
+
23
+ We can put a useful description here of the feature, which can
24
+ span multiple lines.
25
+
26
+ Background:
27
+
28
+ We can also put in descriptions showing what the background is
29
+ doing.
30
+
31
+ Given this step passes
32
+
33
+ Scenario: I'm a scenario with a description
34
+
35
+ You can also put descriptions in front of individual scenarios.
36
+
37
+ Given this step passes
38
+
39
+ Scenario Outline: I'm a scenario outline with a description
40
+
41
+ Scenario outlines can have descriptions.
42
+
43
+ Given this step <state>
44
+ Examples: Examples
45
+
46
+ Specific examples for an outline are allowed to have
47
+ descriptions, too.
48
+
49
+ | state |
50
+ | passes |
51
+ """
52
+ When I run `cucumber -q`
53
+ Then the stderr should not contain anything
54
+ Then it should pass with exactly:
55
+ """
56
+ Feature: descriptions everywhere
57
+
58
+ We can put a useful description here of the feature, which can
59
+ span multiple lines.
60
+
61
+ Background:
62
+
63
+ We can also put in descriptions showing what the background is
64
+ doing.
65
+ Given this step passes
66
+
67
+ Scenario: I'm a scenario with a description
68
+
69
+ You can also put descriptions in front of individual scenarios.
70
+ Given this step passes
71
+
72
+ Scenario Outline: I'm a scenario outline with a description
73
+
74
+ Scenario outlines can have descriptions.
75
+ Given this step <state>
76
+
77
+ Examples: Examples
78
+
79
+ Specific examples for an outline are allowed to have
80
+ descriptions, too.
81
+ | state |
82
+ | passes |
83
+
84
+ 2 scenarios (2 passed)
85
+ 4 steps (4 passed)
86
+ 0m0.012s
87
+
88
+ """
@@ -0,0 +1,37 @@
1
+ Feature: Using star notation instead of Given/When/Then
2
+
3
+ Cucumber supports the star notation when writing features: instead of
4
+ using Given/When/Then, you can simply use a star rather like you would
5
+ use a bullet point.
6
+
7
+ When you run the feature for the first time, you still get a nice
8
+ message showing you the code snippet you need to use to implement the
9
+ step.
10
+
11
+ Scenario: Use some *
12
+ Given a file named "features/f.feature" with:
13
+ """
14
+ Feature: Star-notation feature
15
+ Scenario: S
16
+ * I have some cukes
17
+ """
18
+ When I run `cucumber features/f.feature`
19
+ Then the stderr should not contain anything
20
+ And it should pass with:
21
+ """
22
+ Feature: Star-notation feature
23
+
24
+ Scenario: S # features/f.feature:2
25
+ * I have some cukes # features/f.feature:3
26
+
27
+ 1 scenario (1 undefined)
28
+ 1 step (1 undefined)
29
+ """
30
+ And it should pass with:
31
+ """
32
+ You can implement step definitions for undefined steps with these snippets:
33
+
34
+ Given(/^I have some cukes$/) do
35
+ pending # Write code here that turns the phrase above into concrete actions
36
+ end
37
+ """
@@ -4,47 +4,46 @@ Feature: Post Configuration Hook [#423]
4
4
  As a developer
5
5
  I want to manipulate the Cucumber configuration after it has been created
6
6
 
7
+ # Fails on Travis under JRuby
8
+ @spawn
9
+ @wip-jruby
7
10
  Scenario: Using options directly gets a deprecation warning
8
-
9
- Given a standard Cucumber project directory structure
10
- And a file named "features/support/env.rb" with:
11
+ Given a file named "features/support/env.rb" with:
11
12
  """
12
13
  AfterConfiguration do |config|
13
14
  config.options[:blah]
14
15
  end
15
16
  """
16
- When I run cucumber features
17
- Then STDERR should match
17
+ When I run `cucumber features`
18
+ Then the stderr should contain:
18
19
  """
19
20
  Deprecated
20
21
  """
21
22
 
22
- Given a standard Cucumber project directory structure
23
- And a file named "features/support/env.rb" with:
23
+ Scenario: Changing the output format
24
+ Given a file named "features/support/env.rb" with:
24
25
  """
25
26
  AfterConfiguration do |config|
26
27
  config.formats << ['html', config.out_stream]
27
28
  end
28
29
  """
29
- When I run cucumber features
30
- Then STDERR should be empty
31
- And the output should contain
30
+ When I run `cucumber features`
31
+ Then the stderr should not contain anything
32
+ And the output should contain:
32
33
  """
33
34
  html
34
35
  """
35
36
 
36
37
  Scenario: feature directories read from configuration
37
-
38
- Given a standard Cucumber project directory structure
39
- And a file named "features/support/env.rb" with:
38
+ Given a file named "features/support/env.rb" with:
40
39
  """
41
40
  AfterConfiguration do |config|
42
- config.out_stream << "AfterConfiguration hook read feature directories: #{config.feature_dirs.join(', ')}"
41
+ config.out_stream << "AfterConfiguration hook read feature directories: #{config.feature_dirs.join(', ')}"
43
42
  end
44
43
  """
45
- When I run cucumber features
46
- Then STDERR should be empty
47
- And the output should contain
44
+ When I run `cucumber features`
45
+ Then the stderr should not contain anything
46
+ And the output should contain:
48
47
  """
49
48
  AfterConfiguration hook read feature directories: features
50
- """
49
+ """
@@ -1,4 +1,5 @@
1
1
  Feature: Profiles
2
+
2
3
  In order to save time and prevent carpal tunnel syndrome
3
4
  Cucumber users can save and reuse commonly used cucumber flags in a 'cucumber.yml' file.
4
5
  These named arguments are called profiles and the yml file should be in the root of your project.
@@ -7,15 +8,14 @@ Feature: Profiles
7
8
  http://wiki.github.com/cucumber/cucumber/cucumber.yml
8
9
 
9
10
  Background: Basic App
10
- Given a standard Cucumber project directory structure
11
- And a file named "features/sample.feature" with:
11
+ Given a file named "features/sample.feature" with:
12
12
  """
13
13
  Feature: Sample
14
14
  Scenario: this is a test
15
- Given I am just testing stuff
15
+ Given this step raises an error
16
16
  """
17
- And a file named "features/support/env.rb"
18
- And a file named "features/support/super_env.rb"
17
+ And an empty file named "features/support/env.rb"
18
+ And an empty file named "features/support/super_env.rb"
19
19
  And the following profiles are defined:
20
20
  """
21
21
  default: features/sample.feature --require features/support/env.rb -v
@@ -23,8 +23,8 @@ Feature: Profiles
23
23
  """
24
24
 
25
25
  Scenario: Explicitly defining a profile to run
26
- When I run cucumber features/sample.feature --profile super
27
- Then the output should contain
26
+ When I run `cucumber features/sample.feature --profile super`
27
+ Then the output should contain:
28
28
  """
29
29
  Using the super profile...
30
30
  """
@@ -36,29 +36,29 @@ Feature: Profiles
36
36
  <% requires = "--require features/support/super_env.rb" %>
37
37
  super: <%= "features/sample.feature #{requires} -v" %>
38
38
  """
39
- When I run cucumber features/sample.feature --profile super
40
- Then the output should contain
39
+ When I run `cucumber features/sample.feature --profile super`
40
+ Then the output should contain:
41
41
  """
42
42
  Using the super profile...
43
43
  """
44
44
  And exactly these files should be loaded: features/support/super_env.rb
45
45
 
46
46
  Scenario: Defining multiple profiles to run
47
- When I run cucumber features/sample.feature --profile default --profile super
48
- Then the output should contain
47
+ When I run `cucumber features/sample.feature --profile default --profile super`
48
+ Then the output should contain:
49
49
  """
50
50
  Using the default and super profiles...
51
51
  """
52
52
  And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
53
53
 
54
54
  Scenario: Arguments passed in but no profile specified
55
- When I run cucumber -v
55
+ When I run `cucumber -v`
56
56
  Then the default profile should be used
57
57
  And exactly these files should be loaded: features/support/env.rb
58
58
 
59
59
  Scenario: Trying to use a missing profile
60
- When I run cucumber -p foo
61
- Then STDERR should be
60
+ When I run `cucumber -p foo`
61
+ Then the stderr should contain:
62
62
  """
63
63
  Could not find profile: 'foo'
64
64
 
@@ -69,26 +69,25 @@ Feature: Profiles
69
69
  """
70
70
 
71
71
  Scenario Outline: Disabling the default profile
72
- When I run cucumber -v features/ <Flag>
73
- Then the output should contain
72
+ When I run `cucumber -v features/ <flag>`
73
+ Then the output should contain:
74
74
  """
75
75
  Disabling profiles...
76
76
  """
77
77
  And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
78
78
 
79
79
  Examples:
80
- | Flag |
81
- | -P |
82
- | --no-profile |
83
-
80
+ | flag |
81
+ | -P |
82
+ | --no-profile |
84
83
 
85
84
  Scenario: Overriding the profile's features to run
86
85
  Given a file named "features/another.feature" with:
87
86
  """
88
87
  Feature: Just this one should be ran
89
88
  """
90
- When I run cucumber -p default features/another.feature
91
- Then exactly these features should be ran: features/another.feature
89
+ When I run `cucumber -p default features/another.feature`
90
+ Then exactly these features should be ran: features/another.feature
92
91
 
93
92
  Scenario: Overriding the profile's formatter
94
93
  You will most likely want to define a formatter in your default formatter.
@@ -101,26 +100,21 @@ Feature: Profiles
101
100
  """
102
101
  default: features/sample.feature --require features/support/env.rb -v --format profile
103
102
  """
104
- When I run cucumber features --format pretty
105
- And the output should contain
103
+ When I run `cucumber features --format pretty`
104
+ Then the output should contain:
106
105
  """
107
106
  Feature: Sample
108
107
  """
109
108
 
110
109
  Scenario Outline: Showing profiles when listing failing scenarios
111
- Given a file named "features/step_definitions/steps.rb" with:
112
- """
113
- Given /^I am just testing stuff$/ do
114
- raise 'BANG'
115
- end
116
- """
117
- When I run cucumber -q -p super -p default -f <format> features/sample.feature --require features/step_definitions/steps.rb
118
- Then it should fail
119
- And the output should contain
110
+ Given the standard step definitions
111
+ When I run `cucumber -q -p super -p default -f <format> features/sample.feature --require features/step_definitions/steps.rb`
112
+ Then it should fail with:
120
113
  """
121
114
  cucumber -p super features/sample.feature:2
122
115
  """
116
+
123
117
  Examples:
124
- | format |
125
- | pretty |
126
- | progress|
118
+ | format |
119
+ | pretty |
120
+ | progress |
@@ -1,10 +1,10 @@
1
+ @spawn
1
2
  Feature: Rake task
2
3
  In order to ease the development process
3
4
  As a developer and CI server administrator
4
5
  Cucumber features should be executable via Rake
5
6
 
6
7
  Background:
7
- Given a standard Cucumber project directory structure
8
8
  And a file named "features/missing_step_definitions.feature" with:
9
9
  """
10
10
  Feature: Sample
@@ -16,7 +16,6 @@ Feature: Rake task
16
16
  Given I don't want this ran
17
17
  """
18
18
 
19
-
20
19
  Scenario: rake task with a defined profile
21
20
  Given the following profile is defined:
22
21
  """
@@ -24,16 +23,14 @@ Feature: Rake task
24
23
  """
25
24
  And a file named "Rakefile" with:
26
25
  """
27
- $LOAD_PATH.unshift(CUCUMBER_LIB)
28
26
  require 'cucumber/rake/task'
29
27
 
30
28
  Cucumber::Rake::Task.new do |t|
31
29
  t.profile = "foo"
32
30
  end
33
31
  """
34
- When I run rake cucumber
35
- Then it should pass
36
- And the output should contain
32
+ When I run `rake cucumber`
33
+ Then it should pass with:
37
34
  """
38
35
  Feature: Sample
39
36
 
@@ -44,31 +41,29 @@ Feature: Rake task
44
41
  1 step (1 undefined)
45
42
  """
46
43
 
47
- Scenario: rake task without a profile
48
- Given a file named "Rakefile" with:
49
- """
50
- $LOAD_PATH.unshift(CUCUMBER_LIB)
51
- require 'cucumber/rake/task'
44
+ Scenario: rake task without a profile
45
+ Given a file named "Rakefile" with:
46
+ """
47
+ require 'cucumber/rake/task'
52
48
 
53
- Cucumber::Rake::Task.new do |t|
54
- t.cucumber_opts = %w{--quiet --no-color}
55
- end
56
- """
57
- When I run rake cucumber
58
- Then it should pass
59
- And the output should contain
60
- """
61
- Feature: Sample
49
+ Cucumber::Rake::Task.new do |t|
50
+ t.cucumber_opts = %w{--quiet --no-color}
51
+ end
52
+ """
53
+ When I run `rake cucumber`
54
+ Then it should pass with:
55
+ """
56
+ Feature: Sample
62
57
 
63
- Scenario: Wanted
64
- Given I want to run this
58
+ Scenario: Wanted
59
+ Given I want to run this
65
60
 
66
- Scenario: Unwanted
67
- Given I don't want this ran
61
+ Scenario: Unwanted
62
+ Given I don't want this ran
68
63
 
69
- 2 scenarios (2 undefined)
70
- 2 steps (2 undefined)
71
- """
64
+ 2 scenarios (2 undefined)
65
+ 2 steps (2 undefined)
66
+ """
72
67
 
73
68
  Scenario: rake task with a defined profile and cucumber_opts
74
69
  Given the following profile is defined:
@@ -77,7 +72,6 @@ Feature: Rake task
77
72
  """
78
73
  And a file named "Rakefile" with:
79
74
  """
80
- $LOAD_PATH.unshift(CUCUMBER_LIB)
81
75
  require 'cucumber/rake/task'
82
76
 
83
77
  Cucumber::Rake::Task.new do |t|
@@ -85,9 +79,8 @@ Feature: Rake task
85
79
  t.cucumber_opts = %w{--quiet --no-color}
86
80
  end
87
81
  """
88
- When I run rake cucumber
89
- Then it should pass
90
- And the output should contain
82
+ When I run `rake cucumber`
83
+ Then it should pass with:
91
84
  """
92
85
  Feature: Sample
93
86
 
@@ -99,15 +92,14 @@ Feature: Rake task
99
92
  """
100
93
 
101
94
  Scenario: respect requires
102
- Given a file named "features/support/env.rb"
103
- And a file named "features/support/dont_require_me.rb"
95
+ Given an empty file named "features/support/env.rb"
96
+ And an empty file named "features/support/dont_require_me.rb"
104
97
  And the following profile is defined:
105
98
  """
106
99
  no_bomb: features/missing_step_definitions.feature:3 --require features/support/env.rb --verbose
107
100
  """
108
101
  And a file named "Rakefile" with:
109
102
  """
110
- $LOAD_PATH.unshift(CUCUMBER_LIB)
111
103
  require 'cucumber/rake/task'
112
104
 
113
105
  Cucumber::Rake::Task.new do |t|
@@ -115,10 +107,9 @@ Feature: Rake task
115
107
  t.cucumber_opts = %w{--quiet --no-color}
116
108
  end
117
109
  """
118
-
119
- When I run rake cucumber
110
+ When I run `rake cucumber`
120
111
  Then it should pass
121
- And the output should not contain
112
+ And the output should not contain:
122
113
  """
123
114
  * features/support/dont_require_me.rb
124
115
  """
@@ -133,16 +124,14 @@ Feature: Rake task
133
124
  """
134
125
  And a file named "Rakefile" with:
135
126
  """
136
- $LOAD_PATH.unshift(CUCUMBER_LIB)
137
127
  require 'cucumber/rake/task'
138
128
 
139
129
  Cucumber::Rake::Task.new do |t|
140
130
  t.cucumber_opts = %w{--quiet --no-color}
141
131
  end
142
132
  """
143
- When I run rake cucumber
144
- Then it should pass
145
- And the output should contain
133
+ When I run `rake cucumber`
134
+ Then it should pass with:
146
135
  """
147
136
  Feature: The futures green
148
137
 
@@ -1,30 +1,23 @@
1
1
  @spawn
2
2
  Feature: Raketask
3
+
3
4
  In order to use cucumber's rake task
4
5
  As a Cuker
5
6
  I do not want to see rake's backtraces when it fails
6
7
  Also I want to get zero exit status code on failures
7
- And non-zero exit status code when is pases
8
+ And non-zero exit status code when it pases
8
9
 
9
10
  Background:
11
+ Given the standard step definitions
10
12
  Given a file named "features/passing_and_failing.feature" with:
11
13
  """
12
14
  Feature: Sample
13
15
 
14
16
  Scenario: Passing
15
- Given passing
17
+ Given this step passes
16
18
 
17
19
  Scenario: Failing
18
- Given failing
19
- """
20
- Given a file named "features/step_definitions/steps.rb" with:
21
- """
22
- Given(/^passing$/) do
23
- end
24
-
25
- Given /^failing$/ do
26
- raise "FAIL"
27
- end
20
+ Given this step raises an error
28
21
  """
29
22
  Given a file named "Rakefile" with:
30
23
  """
@@ -48,4 +41,4 @@ Feature: Raketask
48
41
  Scenario: Failing feature
49
42
  When I run `bundle exec rake fail`
50
43
  Then the exit status should not be 0
51
- And the output should not contain "rake aborted!"
44
+ But the output should not contain "rake aborted!"
@@ -1,13 +1,12 @@
1
1
  @wire
2
- Feature: Wire Protocol with ERB
3
- In order to be allow Cucumber to touch my app in intimate places
2
+ Feature: ERB configuration
3
+
4
4
  As a developer on server with multiple users
5
5
  I want to be able to configure which port my wire server runs on
6
6
  So that I can avoid port conflicts
7
7
 
8
8
  Background:
9
- Given a standard Cucumber project directory structure
10
- And a file named "features/wired.feature" with:
9
+ Given a file named "features/wired.feature" with:
11
10
  """
12
11
  Feature: High strung
13
12
  Scenario: Wired
@@ -24,8 +23,8 @@ Feature: Wire Protocol with ERB
24
23
  And there is a wire server running on port 12345 which understands the following protocol:
25
24
  | request | response |
26
25
  | ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[]] |
27
- When I run cucumber --dry-run --no-snippets -f progress
28
- And it should pass with
26
+ When I run `cucumber --dry-run --no-snippets -f progress`
27
+ Then it should pass with:
29
28
  """
30
29
  U
31
30
 
@@ -45,8 +44,8 @@ Feature: Wire Protocol with ERB
45
44
  And there is a wire server running on port 16816 which understands the following protocol:
46
45
  | request | response |
47
46
  | ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[]] |
48
- When I run cucumber --dry-run --no-snippets -f progress
49
- And it should pass with
47
+ When I run `cucumber --dry-run --no-snippets -f progress`
48
+ Then it should pass with:
50
49
  """
51
50
  U
52
51
 
@@ -0,0 +1,30 @@
1
+ @wire
2
+ Feature: Handle unexpected response
3
+
4
+ When the server sends us back a message we don't understand, this is how Cucumber will behave.
5
+
6
+ Background:
7
+ Given a file named "features/wired.feature" with:
8
+ """
9
+ Feature: High strung
10
+ Scenario: Wired
11
+ Given we're all wired
12
+
13
+ """
14
+ And a file named "features/step_definitions/some_remote_place.wire" with:
15
+ """
16
+ host: localhost
17
+ port: 54321
18
+
19
+ """
20
+
21
+ Scenario: Unexpected response
22
+ Given there is a wire server running on port 54321 which understands the following protocol:
23
+ | request | response |
24
+ | ["begin_scenario"] | ["yikes"] |
25
+ | ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[{"id":"1", "args":[]}]] |
26
+ When I run `cucumber -f pretty`
27
+ Then the output should contain:
28
+ """
29
+ undefined method `handle_yikes'
30
+ """