cucumber 2.99.0 → 3.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 (395) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +6 -0
  3. data/.gitattributes +32 -0
  4. data/.github/ISSUE_TEMPLATE.md +1 -1
  5. data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  6. data/.rubocop.yml +13 -0
  7. data/.rubocop_todo.yml +991 -0
  8. data/.travis.yml +56 -10
  9. data/{History.md → CHANGELOG.md} +166 -32
  10. data/CONTRIBUTING.md +21 -1
  11. data/Gemfile +18 -5
  12. data/README.md +13 -4
  13. data/Rakefile +12 -2
  14. data/appveyor.yml +27 -0
  15. data/bin/cucumber +2 -1
  16. data/cucumber.gemspec +15 -10
  17. data/cucumber.yml +10 -11
  18. data/examples/i18n/Rakefile +1 -1
  19. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +8 -3
  20. data/examples/i18n/ar/lib/calculator.rb +2 -2
  21. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +6 -6
  22. data/examples/i18n/bg/features/support/env.rb +6 -1
  23. data/examples/i18n/bg/lib/calculator.rb +2 -1
  24. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +10 -5
  25. data/examples/i18n/ca/lib/calculadora.rb +2 -2
  26. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +10 -5
  27. data/examples/i18n/cs/lib/calculator.rb +3 -3
  28. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +10 -5
  29. data/examples/i18n/da/lib/lommeregner.rb +2 -2
  30. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +10 -5
  31. data/examples/i18n/de/lib/calculator.rb +2 -2
  32. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +10 -5
  33. data/examples/i18n/el/lib/calculator.rb +2 -2
  34. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +9 -4
  35. data/examples/i18n/en/lib/calculator.rb +2 -2
  36. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +4 -4
  37. data/examples/i18n/en-lol/features/support/env.rb +6 -2
  38. data/examples/i18n/en-lol/lib/basket.rb +2 -2
  39. data/examples/i18n/en-lol/lib/belly.rb +2 -2
  40. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +9 -4
  41. data/examples/i18n/eo/lib/calculator.rb +2 -2
  42. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +10 -5
  43. data/examples/i18n/es/lib/calculador.rb +2 -2
  44. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +10 -5
  45. data/examples/i18n/et/lib/kalkulaator.rb +3 -3
  46. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +9 -4
  47. data/examples/i18n/fi/lib/laskin.rb +1 -1
  48. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +8 -8
  49. data/examples/i18n/fr/features/support/env.rb +7 -2
  50. data/examples/i18n/fr/lib/calculatrice.rb +2 -2
  51. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +10 -5
  52. data/examples/i18n/he/lib/calculator.rb +1 -1
  53. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +9 -4
  54. data/examples/i18n/hi/lib/calculator.rb +1 -1
  55. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +9 -5
  56. data/examples/i18n/ht/lib/kalkilatris.rb +2 -2
  57. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +10 -5
  58. data/examples/i18n/hu/lib/calculator.rb +1 -1
  59. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +10 -5
  60. data/examples/i18n/id/lib/calculator.rb +2 -2
  61. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +10 -5
  62. data/examples/i18n/it/lib/calcolatrice.rb +3 -3
  63. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +3 -3
  64. data/examples/i18n/ja/features/support/env.rb +7 -2
  65. data/examples/i18n/ja/lib/calculator.rb +2 -2
  66. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +10 -5
  67. data/examples/i18n/ko/lib/calculator.rb +2 -2
  68. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +10 -5
  69. data/examples/i18n/lt/lib/calculator.rb +2 -2
  70. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +10 -5
  71. data/examples/i18n/lv/lib/calculator.rb +2 -2
  72. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +3 -3
  73. data/examples/i18n/no/features/support/env.rb +7 -2
  74. data/examples/i18n/no/lib/kalkulator.rb +2 -2
  75. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +10 -5
  76. data/examples/i18n/pl/features/support/env.rb +6 -1
  77. data/examples/i18n/pl/lib/calculator.rb +2 -2
  78. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +3 -3
  79. data/examples/i18n/pt/features/support/env.rb +7 -2
  80. data/examples/i18n/pt/lib/calculadora.rb +1 -1
  81. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +11 -6
  82. data/examples/i18n/ro/lib/calculator.rb +1 -1
  83. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +5 -5
  84. data/examples/i18n/ru/features/support/env.rb +6 -1
  85. data/examples/i18n/ru/lib/calculator.rb +2 -1
  86. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +10 -5
  87. data/examples/i18n/sk/lib/calculator.rb +2 -2
  88. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +3 -3
  89. data/examples/i18n/sr-Cyrl/features/support/env.rb +7 -2
  90. data/examples/i18n/sr-Cyrl/lib/calculator.rb +2 -2
  91. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +10 -5
  92. data/examples/i18n/sr-Latn/lib/calculator.rb +2 -2
  93. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +9 -4
  94. data/examples/i18n/sv/lib/kalkulator.rb +2 -2
  95. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +10 -5
  96. data/examples/i18n/tr/lib/hesap_makinesi.rb +2 -2
  97. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +4 -4
  98. data/examples/i18n/uk/features/support/env.rb +6 -1
  99. data/examples/i18n/uk/lib/calculator.rb +2 -1
  100. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +4 -4
  101. data/examples/i18n/uz/features/support/env.rb +6 -1
  102. data/examples/i18n/uz/lib/calculator.rb +2 -1
  103. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +11 -6
  104. data/examples/i18n/zh-CN/lib/calculator.rb +2 -2
  105. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +10 -5
  106. data/examples/i18n/zh-TW/lib/calculator.rb +2 -2
  107. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +3 -3
  108. data/examples/sinatra/features/step_definitions/add_steps.rb +4 -4
  109. data/examples/sinatra/features/support/env.rb +6 -1
  110. data/examples/tcl/features/step_definitions/fib_steps.rb +2 -2
  111. data/examples/tcl/features/support/env.rb +2 -1
  112. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +4 -4
  113. data/examples/watir/features/step_definitions/search_steps.rb +6 -5
  114. data/examples/watir/features/support/env.rb +5 -1
  115. data/examples/watir/features/support/screenshots.rb +5 -5
  116. data/features/docs/api/list_step_defs_as_json.feature +21 -7
  117. data/features/docs/api/listen_for_events.feature +9 -8
  118. data/features/docs/api/run_cli_main_with_existing_runtime.feature +1 -0
  119. data/features/docs/cli/dry_run.feature +3 -0
  120. data/features/docs/cli/execute_with_tag_filter.feature +8 -6
  121. data/features/docs/cli/fail_fast.feature +2 -0
  122. data/features/docs/cli/help.feature +8 -0
  123. data/features/docs/{gherkin/language_help.feature → cli/i18n.feature} +6 -6
  124. data/features/docs/cli/randomize.feature +2 -2
  125. data/features/docs/cli/retry_failing_tests.feature +75 -15
  126. data/features/docs/cli/run_scenarios_matching_name.feature +1 -0
  127. data/features/docs/cli/specifying_multiple_formatters.feature +3 -0
  128. data/features/docs/cli/strict_mode.feature +6 -0
  129. data/features/docs/defining_steps/ambiguous_steps.feature +89 -0
  130. data/features/docs/defining_steps/nested_steps.feature +5 -1
  131. data/features/docs/defining_steps/nested_steps_i18n.feature +3 -0
  132. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +2 -0
  133. data/features/docs/defining_steps/printing_messages.feature +1 -2
  134. data/features/docs/defining_steps/skip_scenario.feature +1 -34
  135. data/features/docs/defining_steps/snippets.feature +18 -18
  136. data/features/docs/events/gherkin_source_read_event.feature +43 -0
  137. data/features/docs/events/step_activated_event.feature +36 -0
  138. data/features/docs/events/step_definition_registered_event.feature +29 -0
  139. data/features/docs/events/test_case_finished_event.feature +35 -0
  140. data/features/docs/events/test_case_started_event.feature +54 -0
  141. data/features/docs/events/test_run_finished_event.feature +40 -0
  142. data/features/docs/events/test_run_started_event.feature +41 -0
  143. data/features/docs/events/test_step_finished_event.feature +47 -0
  144. data/features/docs/events/test_step_started_event.feature +43 -0
  145. data/features/docs/exception_in_after_hook.feature +3 -2
  146. data/features/docs/exception_in_after_step_hook.feature +2 -0
  147. data/features/docs/exception_in_around_hook.feature +2 -0
  148. data/features/docs/exception_in_before_hook.feature +3 -1
  149. data/features/docs/extending_cucumber/custom_formatter.feature +12 -48
  150. data/features/docs/formatters/json_formatter.feature +4 -4
  151. data/features/docs/formatters/junit_formatter.feature +7 -6
  152. data/features/docs/formatters/pretty_formatter.feature +1 -0
  153. data/features/docs/formatters/progress_formatter.feature +1 -0
  154. data/features/docs/formatters/rerun_formatter.feature +2 -0
  155. data/features/docs/formatters/summary_formatter.feature +35 -0
  156. data/features/docs/formatters/usage_formatter.feature +3 -0
  157. data/features/docs/getting_started.feature +2 -1
  158. data/features/docs/gherkin/background.feature +5 -5
  159. data/features/docs/gherkin/doc_strings.feature +2 -0
  160. data/features/docs/gherkin/expand_option_for_outlines.feature +1 -0
  161. data/features/docs/gherkin/outlines.feature +6 -4
  162. data/features/docs/gherkin/unicode_table.feature +2 -1
  163. data/features/docs/gherkin/using_descriptions.feature +1 -0
  164. data/features/docs/gherkin/using_star_notation.feature +1 -1
  165. data/features/docs/post_configuration_hook.feature +1 -17
  166. data/features/docs/rake_task.feature +5 -0
  167. data/features/docs/raketask.feature +3 -1
  168. data/features/docs/work_in_progress.feature +5 -2
  169. data/features/docs/writing_support_code/after_step_hooks.feature +3 -1
  170. data/features/docs/writing_support_code/around_hooks.feature +6 -0
  171. data/features/docs/writing_support_code/before_hook.feature +1 -0
  172. data/features/docs/writing_support_code/hook_order.feature +3 -1
  173. data/features/docs/writing_support_code/parameter_types.feature +53 -0
  174. data/features/docs/writing_support_code/tagged_hooks.feature +1 -1
  175. data/features/docs/writing_support_code/world.feature +129 -0
  176. data/features/lib/step_definitions/aruba_steps.rb +5 -10
  177. data/features/lib/step_definitions/cli_steps.rb +4 -0
  178. data/features/lib/step_definitions/cucumber_steps.rb +9 -12
  179. data/features/lib/step_definitions/iso-8859-1_steps.rb +9 -5
  180. data/features/lib/step_definitions/json_steps.rb +2 -1
  181. data/features/lib/step_definitions/junit_steps.rb +2 -1
  182. data/features/lib/step_definitions/language_steps.rb +3 -2
  183. data/features/lib/step_definitions/profile_steps.rb +7 -6
  184. data/features/lib/step_definitions/retry_steps.rb +33 -13
  185. data/features/lib/step_definitions/ruby_steps.rb +2 -1
  186. data/features/lib/support/env.rb +3 -2
  187. data/features/lib/support/fake_wire_server.rb +17 -3
  188. data/features/lib/support/feature_factory.rb +2 -1
  189. data/features/lib/support/normalise_output.rb +14 -12
  190. data/features/lib/support/parameter_types.rb +5 -0
  191. data/gem_tasks/contributors.rake +10 -6
  192. data/gem_tasks/cov.rake +1 -0
  193. data/gem_tasks/downloads.rb +1 -0
  194. data/gem_tasks/environment.rake +2 -5
  195. data/gem_tasks/examples.rake +3 -2
  196. data/gem_tasks/fix_cr_lf.rake +19 -7
  197. data/gem_tasks/flog.rake +4 -3
  198. data/gem_tasks/rspec.rake +2 -1
  199. data/gem_tasks/sass.rake +2 -1
  200. data/lib/autotest/cucumber.rb +1 -0
  201. data/lib/autotest/cucumber_mixin.rb +17 -16
  202. data/lib/autotest/cucumber_rails.rb +1 -0
  203. data/lib/autotest/cucumber_rails_rspec.rb +1 -0
  204. data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
  205. data/lib/autotest/cucumber_rspec.rb +1 -0
  206. data/lib/autotest/cucumber_rspec2.rb +1 -0
  207. data/lib/autotest/discover.rb +3 -2
  208. data/lib/cucumber/cli/configuration.rb +12 -21
  209. data/lib/cucumber/cli/main.rb +8 -7
  210. data/lib/cucumber/cli/options.rb +341 -217
  211. data/lib/cucumber/cli/profile_loader.rb +26 -21
  212. data/lib/cucumber/cli/rerun_file.rb +1 -0
  213. data/lib/cucumber/configuration.rb +54 -37
  214. data/lib/cucumber/constantize.rb +2 -1
  215. data/lib/cucumber/core_ext/string.rb +2 -1
  216. data/lib/cucumber/deprecate.rb +4 -3
  217. data/lib/cucumber/encoding.rb +1 -0
  218. data/lib/cucumber/errors.rb +3 -1
  219. data/lib/cucumber/events/gherkin_source_read.rb +17 -0
  220. data/lib/cucumber/events/{step_match.rb → step_activated.rb} +5 -2
  221. data/lib/cucumber/events/step_definition_registered.rb +24 -0
  222. data/lib/cucumber/events/test_case_finished.rb +18 -0
  223. data/lib/cucumber/events/test_case_started.rb +15 -0
  224. data/lib/cucumber/events/test_run_finished.rb +12 -0
  225. data/lib/cucumber/events/test_run_started.rb +16 -0
  226. data/lib/cucumber/events/test_step_finished.rb +20 -0
  227. data/lib/cucumber/events/test_step_started.rb +17 -0
  228. data/lib/cucumber/events.rb +23 -3
  229. data/lib/cucumber/file_specs.rb +1 -0
  230. data/lib/cucumber/filters/activate_steps.rb +8 -3
  231. data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
  232. data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
  233. data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
  234. data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
  235. data/lib/cucumber/filters/broadcast_test_run_started_event.rb +27 -0
  236. data/lib/cucumber/filters/gated_receiver.rb +1 -0
  237. data/lib/cucumber/filters/prepare_world.rb +1 -0
  238. data/lib/cucumber/filters/quit.rb +1 -0
  239. data/lib/cucumber/filters/randomizer.rb +1 -0
  240. data/lib/cucumber/filters/retry.rb +4 -4
  241. data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -0
  242. data/lib/cucumber/filters/tag_limits/verifier.rb +2 -1
  243. data/lib/cucumber/filters/tag_limits.rb +4 -3
  244. data/lib/cucumber/filters.rb +3 -0
  245. data/lib/cucumber/formatter/ansicolor.rb +9 -11
  246. data/lib/cucumber/formatter/backtrace_filter.rb +21 -8
  247. data/lib/cucumber/formatter/console.rb +72 -66
  248. data/lib/cucumber/formatter/console_counts.rb +44 -0
  249. data/lib/cucumber/formatter/console_issues.rb +58 -0
  250. data/lib/cucumber/formatter/duration.rb +2 -1
  251. data/lib/cucumber/formatter/duration_extractor.rb +1 -0
  252. data/lib/cucumber/formatter/fail_fast.rb +4 -2
  253. data/lib/cucumber/formatter/fanout.rb +1 -0
  254. data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
  255. data/lib/cucumber/formatter/html.rb +175 -249
  256. data/lib/cucumber/formatter/html_builder.rb +120 -0
  257. data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -0
  258. data/lib/cucumber/formatter/inline-js.js +30 -0
  259. data/lib/cucumber/formatter/interceptor.rb +3 -2
  260. data/lib/cucumber/formatter/io.rb +2 -1
  261. data/lib/cucumber/formatter/json.rb +33 -30
  262. data/lib/cucumber/formatter/json_pretty.rb +1 -0
  263. data/lib/cucumber/formatter/junit.rb +26 -24
  264. data/lib/cucumber/formatter/legacy_api/adapter.rb +81 -69
  265. data/lib/cucumber/formatter/legacy_api/ast.rb +27 -22
  266. data/lib/cucumber/formatter/legacy_api/results.rb +7 -8
  267. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +1 -0
  268. data/lib/cucumber/formatter/pretty.rb +24 -18
  269. data/lib/cucumber/formatter/progress.rb +55 -13
  270. data/lib/cucumber/formatter/rerun.rb +15 -18
  271. data/lib/cucumber/formatter/stepdefs.rb +1 -0
  272. data/lib/cucumber/formatter/steps.rb +2 -1
  273. data/lib/cucumber/formatter/summary.rb +43 -20
  274. data/lib/cucumber/formatter/unicode.rb +2 -1
  275. data/lib/cucumber/formatter/usage.rb +33 -28
  276. data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
  277. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +2 -1
  278. data/lib/cucumber/gherkin/formatter/escaping.rb +2 -1
  279. data/lib/cucumber/gherkin/i18n.rb +1 -0
  280. data/lib/cucumber/gherkin/steps_parser.rb +1 -0
  281. data/lib/cucumber/{rb_support/rb_dsl.rb → glue/dsl.rb} +41 -30
  282. data/lib/cucumber/glue/hook.rb +43 -0
  283. data/lib/cucumber/glue/invoke_in_world.rb +70 -0
  284. data/lib/cucumber/glue/proto_world.rb +220 -0
  285. data/lib/cucumber/{rb_support/rb_language.rb → glue/registry_and_more.rb} +60 -90
  286. data/lib/cucumber/{rb_support → glue}/snippet.rb +64 -26
  287. data/lib/cucumber/glue/step_definition.rb +143 -0
  288. data/lib/cucumber/glue/world_factory.rb +23 -0
  289. data/lib/cucumber/hooks.rb +9 -8
  290. data/lib/cucumber/load_path.rb +1 -0
  291. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +158 -0
  292. data/lib/cucumber/multiline_argument/data_table.rb +47 -181
  293. data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
  294. data/lib/cucumber/multiline_argument.rb +6 -15
  295. data/lib/cucumber/platform.rb +4 -5
  296. data/lib/cucumber/project_initializer.rb +3 -2
  297. data/lib/cucumber/rake/task.rb +19 -14
  298. data/lib/cucumber/rspec/disable_option_parser.rb +2 -1
  299. data/lib/cucumber/rspec/doubles.rb +2 -1
  300. data/lib/cucumber/running_test_case.rb +3 -27
  301. data/lib/cucumber/runtime/after_hooks.rb +2 -1
  302. data/lib/cucumber/runtime/before_hooks.rb +1 -0
  303. data/lib/cucumber/runtime/for_programming_languages.rb +2 -36
  304. data/lib/cucumber/runtime/step_hooks.rb +1 -0
  305. data/lib/cucumber/runtime/support_code.rb +21 -16
  306. data/lib/cucumber/runtime/user_interface.rb +10 -16
  307. data/lib/cucumber/runtime.rb +49 -32
  308. data/lib/cucumber/step_argument.rb +1 -2
  309. data/lib/cucumber/step_definition_light.rb +2 -0
  310. data/lib/cucumber/step_definitions.rb +1 -0
  311. data/lib/cucumber/step_match.rb +30 -15
  312. data/lib/cucumber/step_match_search.rb +3 -3
  313. data/lib/cucumber/term/ansicolor.rb +2 -1
  314. data/lib/cucumber/unit.rb +1 -0
  315. data/lib/cucumber/version +1 -1
  316. data/lib/cucumber.rb +1 -13
  317. data/lib/simplecov_setup.rb +2 -1
  318. data/scripts/invite-collaborator +40 -0
  319. data/scripts/update-changelog +86 -0
  320. data/spec/cucumber/cli/configuration_spec.rb +109 -98
  321. data/spec/cucumber/cli/main_spec.rb +8 -7
  322. data/spec/cucumber/cli/options_spec.rb +114 -79
  323. data/spec/cucumber/cli/profile_loader_spec.rb +25 -5
  324. data/spec/cucumber/cli/rerun_spec.rb +21 -20
  325. data/spec/cucumber/configuration_spec.rb +48 -47
  326. data/spec/cucumber/constantize_spec.rb +3 -2
  327. data/spec/cucumber/events_spec.rb +9 -0
  328. data/spec/cucumber/file_specs_spec.rb +26 -25
  329. data/spec/cucumber/filters/activate_steps_spec.rb +25 -22
  330. data/spec/cucumber/filters/gated_receiver_spec.rb +7 -6
  331. data/spec/cucumber/filters/retry_spec.rb +42 -23
  332. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +12 -11
  333. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +15 -14
  334. data/spec/cucumber/filters/tag_limits_spec.rb +9 -8
  335. data/spec/cucumber/formatter/ansicolor_spec.rb +10 -9
  336. data/spec/cucumber/formatter/backtrace_filter_spec.rb +32 -0
  337. data/spec/cucumber/formatter/console_counts_spec.rb +14 -0
  338. data/spec/cucumber/formatter/duration_spec.rb +4 -3
  339. data/spec/cucumber/formatter/fail_fast_spec.rb +27 -27
  340. data/spec/cucumber/formatter/html_spec.rb +65 -60
  341. data/spec/cucumber/formatter/interceptor_spec.rb +1 -0
  342. data/spec/cucumber/formatter/json_spec.rb +71 -97
  343. data/spec/cucumber/formatter/junit_spec.rb +46 -47
  344. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +134 -141
  345. data/spec/cucumber/formatter/pretty_spec.rb +105 -117
  346. data/spec/cucumber/formatter/progress_spec.rb +22 -21
  347. data/spec/cucumber/formatter/rerun_spec.rb +70 -64
  348. data/spec/cucumber/formatter/spec_helper.rb +14 -12
  349. data/spec/cucumber/{rb_support/rb_world_spec.rb → glue/proto_world_spec.rb} +22 -6
  350. data/spec/cucumber/glue/registry_and_more_spec.rb +213 -0
  351. data/spec/cucumber/{rb_support → glue}/snippet_spec.rb +62 -25
  352. data/spec/cucumber/glue/step_definition_spec.rb +207 -0
  353. data/spec/cucumber/hooks_spec.rb +5 -4
  354. data/spec/cucumber/multiline_argument/data_table_spec.rb +179 -129
  355. data/spec/cucumber/project_initializer_spec.rb +12 -11
  356. data/spec/cucumber/rake/forked_spec.rb +22 -17
  357. data/spec/cucumber/rake/task_spec.rb +21 -20
  358. data/spec/cucumber/running_test_case_spec.rb +36 -35
  359. data/spec/cucumber/runtime/for_programming_languages_spec.rb +2 -30
  360. data/spec/cucumber/runtime/support_code_spec.rb +1 -0
  361. data/spec/cucumber/runtime_spec.rb +3 -2
  362. data/spec/cucumber/step_argument_spec.rb +6 -5
  363. data/spec/cucumber/step_match_search_spec.rb +32 -41
  364. data/spec/cucumber/step_match_spec.rb +34 -33
  365. data/spec/cucumber/world/pending_spec.rb +12 -11
  366. data/spec/spec_helper.rb +1 -0
  367. data/spec/support/standard_step_actions.rb +2 -1
  368. metadata +132 -61
  369. data/features/docs/formatters/debug_formatter.feature +0 -47
  370. data/features/docs/formatters/formatter_step_file_colon_line.feature +0 -44
  371. data/features/docs/writing_support_code/transforms.feature +0 -98
  372. data/features/lib/step_definitions/wire_steps.rb +0 -58
  373. data/gem_tasks/cucumber.rake +0 -25
  374. data/lib/cucumber/ast.rb +0 -13
  375. data/lib/cucumber/core_ext/instance_exec.rb +0 -70
  376. data/lib/cucumber/events/after_test_case.rb +0 -25
  377. data/lib/cucumber/events/after_test_step.rb +0 -30
  378. data/lib/cucumber/events/before_test_case.rb +0 -18
  379. data/lib/cucumber/events/before_test_step.rb +0 -23
  380. data/lib/cucumber/events/bus.rb +0 -86
  381. data/lib/cucumber/events/finished_testing.rb +0 -9
  382. data/lib/cucumber/formatter/debug.rb +0 -35
  383. data/lib/cucumber/formatter/event_bus_report.rb +0 -38
  384. data/lib/cucumber/rb_support/rb_hook.rb +0 -19
  385. data/lib/cucumber/rb_support/rb_step_definition.rb +0 -131
  386. data/lib/cucumber/rb_support/rb_transform.rb +0 -59
  387. data/lib/cucumber/rb_support/rb_world.rb +0 -149
  388. data/spec/cucumber/core_ext/instance_exec_spec.rb +0 -4
  389. data/spec/cucumber/events/bus_spec.rb +0 -94
  390. data/spec/cucumber/formatter/debug_spec.rb +0 -64
  391. data/spec/cucumber/formatter/event_bus_report_spec.rb +0 -88
  392. data/spec/cucumber/rb_support/rb_language_spec.rb +0 -243
  393. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -199
  394. data/spec/cucumber/rb_support/rb_transform_spec.rb +0 -46
  395. data/spec/cucumber_spec.rb +0 -39
@@ -19,7 +19,7 @@ Feature: Custom Formatter
19
19
  class Formatter
20
20
  def initialize(config)
21
21
  @io = config.out_stream
22
- config.on_event Cucumber::Events::BeforeTestCase do |event|
22
+ config.on_event :test_case_started do |event|
23
23
  print_test_case_name(event.test_case)
24
24
  end
25
25
  end
@@ -41,33 +41,25 @@ Feature: Custom Formatter
41
41
 
42
42
  """
43
43
 
44
- Scenario: Implement v2.0 formatter methods
45
- Note that this method is likely to be deprecated in favour of events - see above.
46
-
44
+ Scenario: Pass custom config to your formatter from the CLI
47
45
  Given a file named "features/support/custom_formatter.rb" with:
48
46
  """
49
47
  module MyCustom
50
48
  class Formatter
51
- def initialize(config)
49
+ def initialize(config, options)
52
50
  @io = config.out_stream
53
- end
54
-
55
- def before_test_case(test_case)
56
- feature = test_case.source.first
57
- scenario = test_case.source.last
58
- @io.puts feature.short_name.upcase
59
- @io.puts " #{scenario.name.upcase}"
51
+ config.on_event :test_run_finished do |event|
52
+ @io.print options.inspect
53
+ end
60
54
  end
61
55
  end
62
56
  end
63
57
  """
64
- When I run `cucumber features/f.feature --format MyCustom::Formatter`
58
+ When I run `cucumber features/f.feature --format MyCustom::Formatter,foo=bar,one=two`
65
59
  Then it should pass with exactly:
66
- """
67
- I'LL USE MY OWN
68
- JUST PRINT ME
69
-
70
- """
60
+ """
61
+ {"foo"=>"bar", "one"=>"two"}
62
+ """
71
63
 
72
64
  Scenario: Use the legacy API
73
65
  This is deprecated and should no longer be used.
@@ -93,38 +85,10 @@ Feature: Custom Formatter
93
85
  When I run `cucumber features/f.feature --format MyCustom::LegacyFormatter`
94
86
  Then it should pass with exactly:
95
87
  """
96
- I'LL USE MY OWN
97
- JUST PRINT ME
98
-
99
- """
100
-
101
- Scenario: Use both old and new
102
- You can use a specific shim to opt-in to both APIs at once.
103
-
104
- Given a file named "features/support/custom_mixed_formatter.rb" with:
105
- """
106
- module MyCustom
107
- class MixedFormatter
108
-
109
- def initialize(runtime, io, options)
110
- @io = io
111
- end
112
-
113
- def before_test_case(test_case)
114
- feature = test_case.source.first
115
- @io.puts feature.short_name.upcase
116
- end
88
+ WARNING: The formatter MyCustom::LegacyFormatter is using the deprecated formatter API which will be removed in v4.0 of Cucumber.
117
89
 
118
- def scenario_name(keyword, name, file_colon_line, source_indent)
119
- @io.puts " #{name.upcase}"
120
- end
121
- end
122
- end
123
- """
124
- When I run `cucumber features/f.feature --format MyCustom::MixedFormatter`
125
- Then it should pass with exactly:
126
- """
127
90
  I'LL USE MY OWN
128
91
  JUST PRINT ME
129
92
 
130
93
  """
94
+
@@ -104,7 +104,7 @@ Feature: JSON output formatter
104
104
  """
105
105
 
106
106
  # Need to investigate why this won't pass in-process. error_message doesn't get det?
107
- @spawn
107
+ @spawn @todo-windows
108
108
  Scenario: one feature, one passing scenario, one failing scenario
109
109
  When I run `cucumber --format json features/one_passing_one_failing.feature`
110
110
  Then it should fail with JSON:
@@ -195,7 +195,7 @@ Feature: JSON output formatter
195
195
 
196
196
  """
197
197
 
198
- @spawn
198
+ @spawn @todo-windows
199
199
  Scenario: one feature, one passing scenario, one failing scenario with prettyfied json
200
200
  When I run `cucumber --format json_pretty features/one_passing_one_failing.feature`
201
201
  Then it should fail with JSON:
@@ -395,7 +395,7 @@ Feature: JSON output formatter
395
395
 
396
396
  """
397
397
 
398
- @spawn
398
+ @spawn @todo-windows
399
399
  Scenario: scenario outline
400
400
  When I run `cucumber --format json features/outline.feature`
401
401
  Then it should fail with JSON:
@@ -541,7 +541,7 @@ Feature: JSON output formatter
541
541
 
542
542
  """
543
543
 
544
- @spawn
544
+ @spawn @todo-windows
545
545
  Scenario: scenario outline expanded
546
546
  When I run `cucumber --expand --format json features/outline.feature`
547
547
  Then it should fail with JSON:
@@ -59,7 +59,7 @@ Feature: JUnit output formatter
59
59
  | is undefined |
60
60
  """
61
61
 
62
- @spawn
62
+ @spawn @todo-windows
63
63
  Scenario: one feature, one passing scenario, one failing scenario
64
64
  When I run `cucumber --format junit --out tmp/ features/one_passing_one_failing.feature`
65
65
  Then it should fail with:
@@ -101,7 +101,7 @@ Feature: JUnit output formatter
101
101
 
102
102
  """
103
103
 
104
- @spawn
104
+ @spawn @todo-windows
105
105
  Scenario: one feature in a subdirectory, one passing scenario, one failing scenario
106
106
  When I run `cucumber --format junit --out tmp/ features/some_subdirectory/one_passing_one_failing.feature --require features`
107
107
  Then it should fail with:
@@ -225,7 +225,8 @@ Feature: JUnit output formatter
225
225
  </testsuite>
226
226
 
227
227
  """
228
-
228
+
229
+ @todo-windows
229
230
  Scenario: run all features
230
231
  When I run `cucumber --format junit --out tmp/ features`
231
232
  Then it should fail with:
@@ -246,7 +247,7 @@ can't convert .* into String \(TypeError\)
246
247
  You *must* specify --out DIR for the junit formatter
247
248
  """
248
249
 
249
- @spawn
250
+ @spawn @todo-windows
250
251
  Scenario: strict mode, one feature, one scenario outline, four examples: one passing, one failing, one pending, one undefined
251
252
  When I run `cucumber --strict --format junit --out tmp/ features/scenario_outline.feature`
252
253
  Then it should fail with:
@@ -328,7 +329,7 @@ You *must* specify --out DIR for the junit formatter
328
329
 
329
330
  """
330
331
 
331
- @spawn
332
+ @spawn @todo-windows
332
333
  Scenario: strict mode with --expand option, one feature, one scenario outline, four examples: one passing, one failing, one pending, one undefined
333
334
  When I run `cucumber --strict --expand --format junit --out tmp/ features/scenario_outline.feature`
334
335
  Then it should fail with exactly:
@@ -410,7 +411,7 @@ You *must* specify --out DIR for the junit formatter
410
411
 
411
412
  """
412
413
 
413
- @spawn
414
+ @spawn @todo-windows
414
415
  Scenario: run test cases from different features interweaved
415
416
  When I run `cucumber --format junit --out tmp/ features/one_passing_one_failing.feature:3 features/pending.feature:3 features/one_passing_one_failing.feature:6`
416
417
  Then it should fail with:
@@ -17,6 +17,7 @@ Feature: Pretty output formatter
17
17
  When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format pretty --expand `
18
18
  Then it should pass
19
19
 
20
+ @todo-windows
20
21
  Scenario: when using a profile the output should include 'Using the default profile...'
21
22
  And a file named "cucumber.yml" with:
22
23
  """
@@ -17,6 +17,7 @@ Feature: Progress output formatter
17
17
  When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format progress --expand `
18
18
  Then it should pass
19
19
 
20
+ @todo-windows
20
21
  Scenario: when using a profile the output should include 'Using the default profile...'
21
22
  And a file named "cucumber.yml" with:
22
23
  """
@@ -18,6 +18,7 @@ Feature: Rerun formatter
18
18
  Background:
19
19
  Given the standard step definitions
20
20
 
21
+ @todo-windows
21
22
  Scenario: Exit code is zero
22
23
  Given a file named "features/mixed.feature" with:
23
24
  """
@@ -70,6 +71,7 @@ Feature: Rerun formatter
70
71
  """
71
72
  """
72
73
 
74
+ @todo-windows
73
75
  Scenario: Exit code is not zero, regular scenario
74
76
  Given a file named "features/mixed.feature" with:
75
77
  """
@@ -0,0 +1,35 @@
1
+ Feature: Spec formatter
2
+
3
+ This formatter mimics the output from tools like RSpec or Mocha, giving an
4
+ overview of each feature and scenario but omitting the steps.
5
+
6
+ Background:
7
+ Given the standard step definitions
8
+
9
+ @todo-windows
10
+ Scenario: A couple of scenarios
11
+ Given a file named "features/test.feature" with:
12
+ """
13
+ Feature: Test
14
+ Scenario: Passing
15
+ Given this step passes
16
+
17
+ Scenario: Failing
18
+ Given this step fails
19
+ """
20
+ When I run `cucumber --format summary`
21
+ Then it should fail with exactly:
22
+ """
23
+ Test
24
+ Passing ✓
25
+ Failing ✗
26
+
27
+ Failing Scenarios:
28
+ cucumber features/test.feature:5 # Scenario: Failing
29
+
30
+ 2 scenarios (1 failed, 1 passed)
31
+ 2 steps (1 failed, 1 passed)
32
+ 0m0.012s
33
+
34
+ """
35
+
@@ -30,6 +30,7 @@ Feature: Usage formatter
30
30
  Given(/D/) { }
31
31
  """
32
32
 
33
+ @todo-windows
33
34
  Scenario: Run with --format usage
34
35
  When I run `cucumber -f usage --dry-run`
35
36
  Then it should pass with exactly:
@@ -55,6 +56,7 @@ Feature: Usage formatter
55
56
 
56
57
  """
57
58
 
59
+ @todo-windows
58
60
  Scenario: Run with --expand --format usage
59
61
  When I run `cucumber -x -f usage --dry-run`
60
62
  Then it should pass with exactly:
@@ -80,6 +82,7 @@ Feature: Usage formatter
80
82
 
81
83
  """
82
84
 
85
+ @todo-windows
83
86
  Scenario: Run with --format stepdefs
84
87
  When I run `cucumber -f stepdefs --dry-run`
85
88
  Then it should pass with exactly:
@@ -3,7 +3,7 @@ Feature: Getting started
3
3
  To get started, just open a command prompt in an empty directory and run
4
4
  `cucumber`. You'll be prompted for what to do next.
5
5
 
6
- @spawn
6
+ @spawn @todo-windows
7
7
  Scenario: Run Cucumber in an empty directory
8
8
  Given a directory without standard Cucumber project directory structure
9
9
  When I run `cucumber`
@@ -12,6 +12,7 @@ Feature: Getting started
12
12
  No such file or directory - features. You can use `cucumber --init` to get started.
13
13
  """
14
14
 
15
+ @todo-windows
15
16
  Scenario: Accidentally run Cucumber in a folder with Ruby files in it.
16
17
  Given a directory without standard Cucumber project directory structure
17
18
  And a file named "should_not_load.rb" with:
@@ -295,7 +295,7 @@ Feature: Background
295
295
 
296
296
  """
297
297
 
298
- @spawn
298
+ @spawn @todo-windows
299
299
  Scenario: run a feature with a background that fails
300
300
  When I run `cucumber -q features/failing_background.feature`
301
301
  Then it should fail with exactly:
@@ -324,7 +324,7 @@ Feature: Background
324
324
 
325
325
  """
326
326
 
327
- @spawn
327
+ @spawn @todo-windows
328
328
  Scenario: run a feature with scenario outlines that has a background that fails
329
329
  When I run `cucumber -q features/scenario_outline_failing_background.feature`
330
330
  Then it should fail with exactly:
@@ -383,7 +383,7 @@ Feature: Background
383
383
 
384
384
  """
385
385
 
386
- @spawn
386
+ @spawn @todo-windows
387
387
  Scenario: background passes with first scenario but fails with second
388
388
  When I run `cucumber -q features/failing_background_after_success.feature`
389
389
  Then it should fail with exactly:
@@ -412,7 +412,7 @@ Feature: Background
412
412
 
413
413
  """
414
414
 
415
- @spawn
415
+ @spawn @todo-windows
416
416
  Scenario: background passes with first outline scenario but fails with second
417
417
  When I run `cucumber -q features/failing_background_after_success_outline.feature`
418
418
  Then it should fail with exactly:
@@ -448,7 +448,7 @@ Feature: Background
448
448
 
449
449
  """
450
450
 
451
- @spawn
451
+ @spawn @todo-windows
452
452
  Scenario: background passes with first outline scenario but fails with second (--expand)
453
453
  When I run `cucumber -x -q features/failing_background_after_success_outline.feature`
454
454
  Then it should fail with exactly:
@@ -29,6 +29,7 @@ Feature: Doc strings
29
29
  You can read the content type from the argument passed into your step definition, as shown
30
30
  in the example below.
31
31
 
32
+ @todo-windows
32
33
  Scenario: Plain text Docstring
33
34
  Given a scenario with a step that looks like this:
34
35
  """gherkin
@@ -53,6 +54,7 @@ Feature: Doc strings
53
54
  Three
54
55
  """
55
56
 
57
+ @todo-windows
56
58
  Scenario: DocString passed as String
57
59
  Given a scenario with a step that looks like this:
58
60
  """gherkin
@@ -4,6 +4,7 @@ Feature: Scenario outlines --expand option
4
4
  for some people to understand scenarios, Cucumber will expand examples
5
5
  in outlines if you add the `--expand` option when running them.
6
6
 
7
+ @todo-windows
7
8
  Scenario:
8
9
  Given a file named "features/test.feature" with:
9
10
  """
@@ -43,14 +43,13 @@ Feature: Scenario outlines
43
43
  Given(/^failing without a table$/) { raise RuntimeError }
44
44
  """
45
45
 
46
+ @todo-windows
46
47
  Scenario: Run scenario outline with filtering on outline name
47
48
  When I run `cucumber -q features/outline_sample.feature`
48
49
  Then it should fail with:
49
50
  """
50
51
  Feature: Outline Sample
51
52
 
52
- Scenario: I have no steps
53
-
54
53
  Scenario Outline: Test state
55
54
  Given <state> without a table
56
55
  Given <other_state> without a table
@@ -72,10 +71,11 @@ Feature: Scenario outlines
72
71
  Failing Scenarios:
73
72
  cucumber features/outline_sample.feature:12
74
73
 
75
- 5 scenarios (1 failed, 1 undefined, 3 passed)
74
+ 4 scenarios (1 failed, 1 undefined, 2 passed)
76
75
  8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
77
76
  """
78
77
 
78
+ @todo-windows
79
79
  Scenario: Run scenario outline steps only
80
80
  When I run `cucumber -q features/outline_sample.feature:7`
81
81
  Then it should fail with:
@@ -108,6 +108,7 @@ Feature: Scenario outlines
108
108
 
109
109
  """
110
110
 
111
+ @todo-windows
111
112
  Scenario: Run single failing scenario outline table row
112
113
  When I run `cucumber -q features/outline_sample.feature:12`
113
114
  Then it should fail with:
@@ -134,6 +135,7 @@ Feature: Scenario outlines
134
135
 
135
136
  """
136
137
 
138
+ @todo-windows
137
139
  Scenario: Run all with progress formatter
138
140
  When I run `cucumber -q --format progress features/outline_sample.feature`
139
141
  Then it should fail with exactly:
@@ -150,7 +152,7 @@ Feature: Scenario outlines
150
152
  Failing Scenarios:
151
153
  cucumber features/outline_sample.feature:12
152
154
 
153
- 5 scenarios (1 failed, 1 undefined, 3 passed)
155
+ 4 scenarios (1 failed, 1 undefined, 2 passed)
154
156
  8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
155
157
 
156
158
  """
@@ -1,10 +1,11 @@
1
- @spawn
1
+ @spawn @wip-jruby
2
2
  Feature: Unicode in tables
3
3
 
4
4
  You are free to use unicode in your tables: we've taken care to
5
5
  ensure that the tables are properly aligned so that your output is as
6
6
  readable as possible.
7
7
 
8
+ @todo-windows
8
9
  Scenario:
9
10
  Given a file named "features/unicode.feature" with:
10
11
  """
@@ -1,3 +1,4 @@
1
+ @todo-windows
1
2
  Feature: Using descriptions to give features context
2
3
 
3
4
  When writing your feature files its very helpful to use description
@@ -31,7 +31,7 @@ Feature: Using star notation instead of Given/When/Then
31
31
  """
32
32
  You can implement step definitions for undefined steps with these snippets:
33
33
 
34
- Given(/^I have some cukes$/) do
34
+ Given("I have some cukes") do
35
35
  pending # Write code here that turns the phrase above into concrete actions
36
36
  end
37
37
  """
@@ -4,27 +4,11 @@ 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
10
- Scenario: Using options directly gets a deprecation warning
11
- Given a file named "features/support/env.rb" with:
12
- """
13
- AfterConfiguration do |config|
14
- config.options[:blah]
15
- end
16
- """
17
- When I run `cucumber features`
18
- Then the stderr should contain:
19
- """
20
- Deprecated
21
- """
22
-
23
7
  Scenario: Changing the output format
24
8
  Given a file named "features/support/env.rb" with:
25
9
  """
26
10
  AfterConfiguration do |config|
27
- config.formats << ['html', config.out_stream]
11
+ config.formats << ['html', {}, config.out_stream]
28
12
  end
29
13
  """
30
14
  When I run `cucumber features`
@@ -16,6 +16,7 @@ Feature: Rake task
16
16
  Given I don't want this ran
17
17
  """
18
18
 
19
+ @todo-windows
19
20
  Scenario: rake task with a defined profile
20
21
  Given the following profile is defined:
21
22
  """
@@ -41,6 +42,7 @@ Feature: Rake task
41
42
  1 step (1 undefined)
42
43
  """
43
44
 
45
+ @todo-windows
44
46
  Scenario: rake task without a profile
45
47
  Given a file named "Rakefile" with:
46
48
  """
@@ -65,6 +67,7 @@ Feature: Rake task
65
67
  2 steps (2 undefined)
66
68
  """
67
69
 
70
+ @todo-windows
68
71
  Scenario: rake task with a defined profile and cucumber_opts
69
72
  Given the following profile is defined:
70
73
  """
@@ -91,6 +94,7 @@ Feature: Rake task
91
94
  1 step (1 undefined)
92
95
  """
93
96
 
97
+ @todo-windows
94
98
  Scenario: respect requires
95
99
  Given an empty file named "features/support/env.rb"
96
100
  And an empty file named "features/support/dont_require_me.rb"
@@ -114,6 +118,7 @@ Feature: Rake task
114
118
  * features/support/dont_require_me.rb
115
119
  """
116
120
 
121
+ @todo-windows
117
122
  Scenario: feature files with spaces
118
123
  Given a file named "features/spaces are nasty.feature" with:
119
124
  """
@@ -1,4 +1,4 @@
1
- @spawn
1
+ @spawn @wip-jruby
2
2
  Feature: Raketask
3
3
 
4
4
  In order to use cucumber's rake task
@@ -34,10 +34,12 @@ Feature: Raketask
34
34
  end
35
35
  """
36
36
 
37
+ @todo-windows
37
38
  Scenario: Passing feature
38
39
  When I run `bundle exec rake pass`
39
40
  Then the exit status should be 0
40
41
 
42
+ @todo-windows
41
43
  Scenario: Failing feature
42
44
  When I run `bundle exec rake fail`
43
45
  Then the exit status should be 1
@@ -37,6 +37,7 @@ Feature: Cucumber --work-in-progress switch
37
37
  | passes |
38
38
  """
39
39
 
40
+ @todo-windows
40
41
  Scenario: Pass with Failing Scenarios
41
42
  When I run `cucumber -q -w -t @failing features/wip.feature`
42
43
  Then the stderr should not contain anything
@@ -63,6 +64,7 @@ Feature: Cucumber --work-in-progress switch
63
64
 
64
65
  """
65
66
 
67
+ @todo-windows
66
68
  Scenario: Pass with Undefined Scenarios
67
69
  When I run `cucumber -q -w -t @undefined features/wip.feature`
68
70
  Then it should pass with:
@@ -82,6 +84,7 @@ Feature: Cucumber --work-in-progress switch
82
84
 
83
85
  """
84
86
 
87
+ @todo-windows
85
88
  Scenario: Pass with Undefined Scenarios
86
89
  When I run `cucumber -q -w -t @pending features/wip.feature`
87
90
  Then it should pass with:
@@ -104,6 +107,7 @@ Feature: Cucumber --work-in-progress switch
104
107
 
105
108
  """
106
109
 
110
+ @todo-windows
107
111
  Scenario: Fail with Passing Scenarios
108
112
  When I run `cucumber -q -w -t @passing features/wip.feature`
109
113
  Then it should fail with:
@@ -124,9 +128,9 @@ Feature: Cucumber --work-in-progress switch
124
128
 
125
129
  features/wip.feature:15:in `Scenario: Passing'
126
130
 
127
-
128
131
  """
129
132
 
133
+ @todo-windows
130
134
  Scenario: Fail with Passing Scenario Outline
131
135
  When I run `cucumber -q -w features/passing_outline.feature`
132
136
  Then it should fail with:
@@ -150,5 +154,4 @@ Feature: Cucumber --work-in-progress switch
150
154
 
151
155
  features/passing_outline.feature:7:in `Scenario Outline: Passing, Examples (#1)'
152
156
 
153
-
154
157
  """
@@ -12,6 +12,7 @@ Feature: AfterStep Hooks
12
12
  Given this step passes
13
13
  """
14
14
 
15
+ @todo-windows
15
16
  Scenario: Access Test Step object in AfterStep Block
16
17
  Given a file named "features/support/env.rb" with:
17
18
  """
@@ -32,6 +33,7 @@ Feature: AfterStep Hooks
32
33
 
33
34
  """
34
35
 
36
+ @todo-windows
35
37
  Scenario: An AfterStep with one named argument receives only the result
36
38
  Given a file named "features/support/env.rb" with:
37
39
  """
@@ -50,4 +52,4 @@ Feature: AfterStep Hooks
50
52
  1 scenario (1 passed)
51
53
  1 step (1 passed)
52
54
 
53
- """
55
+ """
@@ -5,6 +5,7 @@ Feature: Around hooks
5
5
  that provide only a block syntax for transactions, Cucumber should
6
6
  permit definition of Around hooks.
7
7
 
8
+ @todo-windows
8
9
  Scenario: A single Around hook
9
10
  Given a file named "features/step_definitions/steps.rb" with:
10
11
  """
@@ -38,6 +39,7 @@ Feature: Around hooks
38
39
 
39
40
  """
40
41
 
42
+ @todo-windows
41
43
  Scenario: Multiple Around hooks
42
44
  Given a file named "features/step_definitions/steps.rb" with:
43
45
  """
@@ -84,6 +86,7 @@ Feature: Around hooks
84
86
 
85
87
  """
86
88
 
89
+ @todo-windows
87
90
  Scenario: Mixing Around, Before, and After hooks
88
91
  Given a file named "features/step_definitions/steps.rb" with:
89
92
  """
@@ -131,6 +134,7 @@ Feature: Around hooks
131
134
 
132
135
  """
133
136
 
137
+ @todo-windows
134
138
  Scenario: Around hooks with tags
135
139
  Given a file named "features/step_definitions/steps.rb" with:
136
140
  """
@@ -185,6 +189,7 @@ Feature: Around hooks
185
189
 
186
190
  """
187
191
 
192
+ @todo-windows
188
193
  Scenario: Around hooks with scenario outlines
189
194
  Given a file named "features/step_definitions/steps.rb" with:
190
195
  """
@@ -228,6 +233,7 @@ Feature: Around hooks
228
233
 
229
234
  """
230
235
 
236
+ @todo-windows
231
237
  Scenario: Around Hooks and the Custom World
232
238
  Given a file named "features/step_definitions/steps.rb" with:
233
239
  """
@@ -1,5 +1,6 @@
1
1
  Feature: Before Hook
2
2
 
3
+ @todo-windows
3
4
  Scenario: Examine names of scenario and feature
4
5
  Given a file named "features/foo.feature" with:
5
6
  """