cucumber 3.0.1 → 3.0.2

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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -4
  3. data/README.md +6 -5
  4. data/lib/cucumber/cli/options.rb +3 -1
  5. data/lib/cucumber/errors.rb +1 -1
  6. data/lib/cucumber/events.rb +0 -1
  7. data/lib/cucumber/events/test_step_finished.rb +0 -2
  8. data/lib/cucumber/events/test_step_started.rb +0 -2
  9. data/lib/cucumber/filters/quit.rb +0 -1
  10. data/lib/cucumber/formatter/html.rb +1 -1
  11. data/lib/cucumber/formatter/html_builder.rb +1 -1
  12. data/lib/cucumber/formatter/ignore_missing_messages.rb +0 -1
  13. data/lib/cucumber/formatter/json.rb +1 -1
  14. data/lib/cucumber/formatter/json_pretty.rb +0 -1
  15. data/lib/cucumber/formatter/rerun.rb +1 -1
  16. data/lib/cucumber/formatter/summary.rb +0 -1
  17. data/lib/cucumber/glue/proto_world.rb +2 -0
  18. data/lib/cucumber/glue/world_factory.rb +1 -1
  19. data/lib/cucumber/multiline_argument.rb +1 -1
  20. data/lib/cucumber/multiline_argument/data_table.rb +6 -10
  21. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +0 -1
  22. data/lib/cucumber/step_definitions.rb +1 -1
  23. data/lib/cucumber/step_match.rb +1 -1
  24. data/lib/cucumber/step_match_search.rb +1 -1
  25. data/lib/cucumber/version +1 -1
  26. metadata +25 -563
  27. data/.coveralls.yml +0 -1
  28. data/.cucumberproignore +0 -6
  29. data/.gitattributes +0 -32
  30. data/.github/ISSUE_TEMPLATE.md +0 -48
  31. data/.github/PULL_REQUEST_TEMPLATE.md +0 -40
  32. data/.rspec +0 -1
  33. data/.rubocop.yml +0 -13
  34. data/.rubocop_todo.yml +0 -991
  35. data/.ruby-gemset +0 -1
  36. data/.travis.yml +0 -70
  37. data/.yardopts +0 -1
  38. data/Gemfile +0 -28
  39. data/Rakefile +0 -32
  40. data/appveyor.yml +0 -27
  41. data/cucumber.gemspec +0 -52
  42. data/cucumber.yml +0 -19
  43. data/examples/i18n/README.textile +0 -3
  44. data/examples/i18n/Rakefile +0 -33
  45. data/examples/i18n/ar/Rakefile +0 -6
  46. data/examples/i18n/ar/features/addition.feature +0 -17
  47. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +0 -29
  48. data/examples/i18n/ar/lib/calculator.rb +0 -11
  49. data/examples/i18n/bg/Rakefile +0 -6
  50. data/examples/i18n/bg/features/addition.feature +0 -12
  51. data/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
  52. data/examples/i18n/bg/features/division.feature +0 -17
  53. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +0 -24
  54. data/examples/i18n/bg/features/support/env.rb +0 -10
  55. data/examples/i18n/bg/features/support/world.rb +0 -8
  56. data/examples/i18n/bg/lib/calculator.rb +0 -25
  57. data/examples/i18n/ca/Rakefile +0 -6
  58. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -26
  59. data/examples/i18n/ca/features/suma.feature +0 -17
  60. data/examples/i18n/ca/lib/calculadora.rb +0 -16
  61. data/examples/i18n/cs/Rakefile +0 -6
  62. data/examples/i18n/cs/features/addition.feature +0 -17
  63. data/examples/i18n/cs/features/division.feature +0 -11
  64. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +0 -29
  65. data/examples/i18n/cs/lib/calculator.rb +0 -14
  66. data/examples/i18n/da/Rakefile +0 -6
  67. data/examples/i18n/da/features/sammenlaegning.feature +0 -18
  68. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +0 -29
  69. data/examples/i18n/da/lib/lommeregner.rb +0 -11
  70. data/examples/i18n/de/Rakefile +0 -6
  71. data/examples/i18n/de/features/addition.feature +0 -17
  72. data/examples/i18n/de/features/division.feature +0 -10
  73. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +0 -29
  74. data/examples/i18n/de/lib/calculator.rb +0 -14
  75. data/examples/i18n/el/Rakefile +0 -6
  76. data/examples/i18n/el/features/addition.feature +0 -17
  77. data/examples/i18n/el/features/division.feature +0 -10
  78. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +0 -29
  79. data/examples/i18n/el/lib/calculator.rb +0 -14
  80. data/examples/i18n/en-lol/Rakefile +0 -4
  81. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
  82. data/examples/i18n/en-lol/features/stuffing.feature +0 -8
  83. data/examples/i18n/en-lol/features/support/env.rb +0 -11
  84. data/examples/i18n/en-lol/lib/basket.rb +0 -12
  85. data/examples/i18n/en-lol/lib/belly.rb +0 -11
  86. data/examples/i18n/en/Rakefile +0 -6
  87. data/examples/i18n/en/features/addition.feature +0 -17
  88. data/examples/i18n/en/features/division.feature +0 -10
  89. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +0 -29
  90. data/examples/i18n/en/lib/calculator.rb +0 -14
  91. data/examples/i18n/eo/Rakefile +0 -6
  92. data/examples/i18n/eo/features/adicio.feature +0 -17
  93. data/examples/i18n/eo/features/divido.feature +0 -10
  94. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +0 -29
  95. data/examples/i18n/eo/lib/calculator.rb +0 -14
  96. data/examples/i18n/es/Rakefile +0 -6
  97. data/examples/i18n/es/features/adicion.feature +0 -17
  98. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +0 -26
  99. data/examples/i18n/es/lib/calculador.rb +0 -14
  100. data/examples/i18n/et/Rakefile +0 -6
  101. data/examples/i18n/et/features/jagamine.feature +0 -10
  102. data/examples/i18n/et/features/liitmine.feature +0 -17
  103. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -29
  104. data/examples/i18n/et/lib/kalkulaator.rb +0 -14
  105. data/examples/i18n/fi/Rakefile +0 -6
  106. data/examples/i18n/fi/features/jakolasku.feature +0 -10
  107. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +0 -29
  108. data/examples/i18n/fi/features/yhteenlasku.feature +0 -17
  109. data/examples/i18n/fi/lib/laskin.rb +0 -14
  110. data/examples/i18n/fr/Rakefile +0 -8
  111. data/examples/i18n/fr/features/addition.feature +0 -18
  112. data/examples/i18n/fr/features/addition2.feature +0 -17
  113. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -32
  114. data/examples/i18n/fr/features/support/env.rb +0 -10
  115. data/examples/i18n/fr/lib/calculatrice.rb +0 -10
  116. data/examples/i18n/he/Rakefile +0 -6
  117. data/examples/i18n/he/features/addition.feature +0 -17
  118. data/examples/i18n/he/features/division.feature +0 -10
  119. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +0 -29
  120. data/examples/i18n/he/lib/calculator.rb +0 -15
  121. data/examples/i18n/hi/Rakefile +0 -6
  122. data/examples/i18n/hi/features/addition.feature +0 -16
  123. data/examples/i18n/hi/features/division.feature +0 -10
  124. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +0 -29
  125. data/examples/i18n/hi/lib/calculator.rb +0 -15
  126. data/examples/i18n/ht/Rakefile +0 -6
  127. data/examples/i18n/ht/features/adisyon.feature +0 -17
  128. data/examples/i18n/ht/features/divizyon.feature +0 -10
  129. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +0 -29
  130. data/examples/i18n/ht/lib/kalkilatris.rb +0 -14
  131. data/examples/i18n/hu/Rakefile +0 -6
  132. data/examples/i18n/hu/features/osszeadas.feature +0 -17
  133. data/examples/i18n/hu/features/osztas.feature +0 -10
  134. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +0 -30
  135. data/examples/i18n/hu/lib/calculator.rb +0 -14
  136. data/examples/i18n/id/Rakefile +0 -6
  137. data/examples/i18n/id/features/addition.feature +0 -17
  138. data/examples/i18n/id/features/division.feature +0 -10
  139. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +0 -29
  140. data/examples/i18n/id/lib/calculator.rb +0 -14
  141. data/examples/i18n/it/Rakefile +0 -6
  142. data/examples/i18n/it/features/somma.feature +0 -11
  143. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +0 -29
  144. data/examples/i18n/it/lib/calcolatrice.rb +0 -11
  145. data/examples/i18n/ja/Rakefile +0 -6
  146. data/examples/i18n/ja/features/addition.feature +0 -17
  147. data/examples/i18n/ja/features/division.feature +0 -10
  148. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +0 -19
  149. data/examples/i18n/ja/features/support/env.rb +0 -10
  150. data/examples/i18n/ja/lib/calculator.rb +0 -14
  151. data/examples/i18n/ko/Rakefile +0 -6
  152. data/examples/i18n/ko/features/addition.feature +0 -17
  153. data/examples/i18n/ko/features/division.feature +0 -11
  154. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +0 -29
  155. data/examples/i18n/ko/lib/calculator.rb +0 -14
  156. data/examples/i18n/lt/Rakefile +0 -6
  157. data/examples/i18n/lt/features/addition.feature +0 -17
  158. data/examples/i18n/lt/features/division.feature +0 -10
  159. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +0 -29
  160. data/examples/i18n/lt/lib/calculator.rb +0 -14
  161. data/examples/i18n/lv/Rakefile +0 -6
  162. data/examples/i18n/lv/features/addition.feature +0 -17
  163. data/examples/i18n/lv/features/division.feature +0 -10
  164. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +0 -29
  165. data/examples/i18n/lv/lib/calculator.rb +0 -14
  166. data/examples/i18n/no/Rakefile +0 -6
  167. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +0 -17
  168. data/examples/i18n/no/features/summering.feature +0 -19
  169. data/examples/i18n/no/features/support/env.rb +0 -11
  170. data/examples/i18n/no/lib/kalkulator.rb +0 -11
  171. data/examples/i18n/pl/Rakefile +0 -6
  172. data/examples/i18n/pl/features/addition.feature +0 -17
  173. data/examples/i18n/pl/features/division.feature +0 -10
  174. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +0 -29
  175. data/examples/i18n/pl/features/support/env.rb +0 -10
  176. data/examples/i18n/pl/lib/calculator.rb +0 -14
  177. data/examples/i18n/pt/Rakefile +0 -6
  178. data/examples/i18n/pt/features/adicao.feature +0 -11
  179. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
  180. data/examples/i18n/pt/features/support/env.rb +0 -10
  181. data/examples/i18n/pt/lib/calculadora.rb +0 -10
  182. data/examples/i18n/ro/Rakefile +0 -6
  183. data/examples/i18n/ro/features/adunare.feature +0 -12
  184. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +0 -26
  185. data/examples/i18n/ro/lib/calculator.rb +0 -11
  186. data/examples/i18n/ru/Rakefile +0 -6
  187. data/examples/i18n/ru/features/addition.feature +0 -11
  188. data/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
  189. data/examples/i18n/ru/features/division.feature +0 -16
  190. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +0 -19
  191. data/examples/i18n/ru/features/support/env.rb +0 -10
  192. data/examples/i18n/ru/features/support/world.rb +0 -8
  193. data/examples/i18n/ru/lib/calculator.rb +0 -25
  194. data/examples/i18n/sk/Rakefile +0 -6
  195. data/examples/i18n/sk/features/addition.feature +0 -17
  196. data/examples/i18n/sk/features/division.feature +0 -10
  197. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +0 -29
  198. data/examples/i18n/sk/lib/calculator.rb +0 -14
  199. data/examples/i18n/sr-Cyrl/Rakefile +0 -6
  200. data/examples/i18n/sr-Cyrl/features/sabiranje.feature +0 -18
  201. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +0 -20
  202. data/examples/i18n/sr-Cyrl/features/support/env.rb +0 -10
  203. data/examples/i18n/sr-Cyrl/lib/calculator.rb +0 -12
  204. data/examples/i18n/sr-Latn/Rakefile +0 -6
  205. data/examples/i18n/sr-Latn/features/sabiranje.feature +0 -18
  206. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +0 -29
  207. data/examples/i18n/sr-Latn/lib/calculator.rb +0 -12
  208. data/examples/i18n/sv/Rakefile +0 -6
  209. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +0 -29
  210. data/examples/i18n/sv/features/summering.feature +0 -18
  211. data/examples/i18n/sv/lib/kalkulator.rb +0 -11
  212. data/examples/i18n/tr/Rakefile +0 -6
  213. data/examples/i18n/tr/features/bolme.feature +0 -10
  214. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +0 -29
  215. data/examples/i18n/tr/features/toplama.feature +0 -18
  216. data/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
  217. data/examples/i18n/uk/Rakefile +0 -6
  218. data/examples/i18n/uk/features/addition.feature +0 -11
  219. data/examples/i18n/uk/features/consecutive_calculations.feature +0 -17
  220. data/examples/i18n/uk/features/division.feature +0 -16
  221. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +0 -19
  222. data/examples/i18n/uk/features/support/env.rb +0 -10
  223. data/examples/i18n/uk/features/support/world.rb +0 -8
  224. data/examples/i18n/uk/lib/calculator.rb +0 -25
  225. data/examples/i18n/uz/Rakefile +0 -6
  226. data/examples/i18n/uz/features/addition.feature +0 -10
  227. data/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
  228. data/examples/i18n/uz/features/division.feature +0 -17
  229. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +0 -19
  230. data/examples/i18n/uz/features/support/env.rb +0 -10
  231. data/examples/i18n/uz/features/support/world.rb +0 -8
  232. data/examples/i18n/uz/lib/calculator.rb +0 -25
  233. data/examples/i18n/zh-CN/Rakefile +0 -4
  234. data/examples/i18n/zh-CN/features/addition.feature +0 -18
  235. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +0 -31
  236. data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
  237. data/examples/i18n/zh-TW/Rakefile +0 -4
  238. data/examples/i18n/zh-TW/features/addition.feature +0 -17
  239. data/examples/i18n/zh-TW/features/division.feature +0 -11
  240. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +0 -29
  241. data/examples/i18n/zh-TW/lib/calculator.rb +0 -14
  242. data/examples/rspec_doubles/Rakefile +0 -4
  243. data/examples/rspec_doubles/features/mocking.feature +0 -9
  244. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +0 -19
  245. data/examples/rspec_doubles/features/support/env.rb +0 -12
  246. data/examples/sinatra/README.textile +0 -13
  247. data/examples/sinatra/Rakefile +0 -6
  248. data/examples/sinatra/app.rb +0 -14
  249. data/examples/sinatra/features/add.feature +0 -11
  250. data/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
  251. data/examples/sinatra/features/support/env.rb +0 -15
  252. data/examples/sinatra/views/add.erb +0 -7
  253. data/examples/sinatra/views/layout.erb +0 -8
  254. data/examples/tcl/README.textile +0 -11
  255. data/examples/tcl/Rakefile +0 -6
  256. data/examples/tcl/features/fibonnacci.feature +0 -17
  257. data/examples/tcl/features/step_definitions/fib_steps.rb +0 -7
  258. data/examples/tcl/features/support/env.rb +0 -7
  259. data/examples/tcl/src/fib.tcl +0 -3
  260. data/examples/test_unit/Gemfile +0 -4
  261. data/examples/test_unit/Rakefile +0 -6
  262. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -20
  263. data/examples/test_unit/features/test_unit.feature +0 -9
  264. data/examples/watir/README.textile +0 -16
  265. data/examples/watir/Rakefile +0 -12
  266. data/examples/watir/cucumber.yml +0 -1
  267. data/examples/watir/features/search.feature +0 -12
  268. data/examples/watir/features/step_definitions/search_steps.rb +0 -27
  269. data/examples/watir/features/support/env.rb +0 -39
  270. data/examples/watir/features/support/screenshots.rb +0 -47
  271. data/features/docs/api/list_step_defs_as_json.feature +0 -64
  272. data/features/docs/api/listen_for_events.feature +0 -59
  273. data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -27
  274. data/features/docs/cli/backtraces.feature +0 -36
  275. data/features/docs/cli/dry_run.feature +0 -73
  276. data/features/docs/cli/exclude_files.feature +0 -18
  277. data/features/docs/cli/execute_with_tag_filter.feature +0 -119
  278. data/features/docs/cli/fail_fast.feature +0 -48
  279. data/features/docs/cli/finding_steps.feature +0 -28
  280. data/features/docs/cli/help.feature +0 -8
  281. data/features/docs/cli/i18n.feature +0 -42
  282. data/features/docs/cli/randomize.feature +0 -140
  283. data/features/docs/cli/require.feature +0 -27
  284. data/features/docs/cli/retry_failing_tests.feature +0 -92
  285. data/features/docs/cli/run_scenarios_matching_name.feature +0 -105
  286. data/features/docs/cli/run_specific_scenarios.feature +0 -77
  287. data/features/docs/cli/showing_differences.feature +0 -43
  288. data/features/docs/cli/specifying_multiple_formatters.feature +0 -68
  289. data/features/docs/cli/strict_mode.feature +0 -70
  290. data/features/docs/defining_steps/ambiguous_steps.feature +0 -89
  291. data/features/docs/defining_steps/nested_steps.feature +0 -181
  292. data/features/docs/defining_steps/nested_steps_i18n.feature +0 -37
  293. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -56
  294. data/features/docs/defining_steps/one_line_step_definitions.feature +0 -65
  295. data/features/docs/defining_steps/printing_messages.feature +0 -147
  296. data/features/docs/defining_steps/skip_scenario.feature +0 -31
  297. data/features/docs/defining_steps/snippets.feature +0 -56
  298. data/features/docs/defining_steps/table_diffing.feature +0 -50
  299. data/features/docs/events/gherkin_source_read_event.feature +0 -43
  300. data/features/docs/events/step_activated_event.feature +0 -36
  301. data/features/docs/events/step_definition_registered_event.feature +0 -29
  302. data/features/docs/events/test_case_finished_event.feature +0 -35
  303. data/features/docs/events/test_case_started_event.feature +0 -54
  304. data/features/docs/events/test_run_finished_event.feature +0 -40
  305. data/features/docs/events/test_run_started_event.feature +0 -41
  306. data/features/docs/events/test_step_finished_event.feature +0 -47
  307. data/features/docs/events/test_step_started_event.feature +0 -43
  308. data/features/docs/exception_in_after_hook.feature +0 -127
  309. data/features/docs/exception_in_after_step_hook.feature +0 -104
  310. data/features/docs/exception_in_around_hook.feature +0 -80
  311. data/features/docs/exception_in_before_hook.feature +0 -98
  312. data/features/docs/extending_cucumber/custom_filter.feature +0 -29
  313. data/features/docs/extending_cucumber/custom_formatter.feature +0 -94
  314. data/features/docs/formatters/api_methods.feature +0 -37
  315. data/features/docs/formatters/html_formatter.feature +0 -91
  316. data/features/docs/formatters/json_formatter.feature +0 -767
  317. data/features/docs/formatters/junit_formatter.feature +0 -455
  318. data/features/docs/formatters/pretty_formatter.feature +0 -74
  319. data/features/docs/formatters/progress_formatter.feature +0 -32
  320. data/features/docs/formatters/rerun_formatter.feature +0 -190
  321. data/features/docs/formatters/summary_formatter.feature +0 -35
  322. data/features/docs/formatters/usage_formatter.feature +0 -101
  323. data/features/docs/getting_started.feature +0 -28
  324. data/features/docs/gherkin/background.feature +0 -548
  325. data/features/docs/gherkin/doc_strings.feature +0 -76
  326. data/features/docs/gherkin/expand_option_for_outlines.feature +0 -47
  327. data/features/docs/gherkin/language_from_header.feature +0 -32
  328. data/features/docs/gherkin/outlines.feature +0 -158
  329. data/features/docs/gherkin/unicode_table.feature +0 -33
  330. data/features/docs/gherkin/using_descriptions.feature +0 -83
  331. data/features/docs/gherkin/using_star_notation.feature +0 -37
  332. data/features/docs/iso-8859-1.feature +0 -6
  333. data/features/docs/post_configuration_hook.feature +0 -33
  334. data/features/docs/profiles.feature +0 -120
  335. data/features/docs/rake_task.feature +0 -146
  336. data/features/docs/raketask.feature +0 -46
  337. data/features/docs/work_in_progress.feature +0 -157
  338. data/features/docs/writing_support_code/after_hooks.feature +0 -102
  339. data/features/docs/writing_support_code/after_step_hooks.feature +0 -55
  340. data/features/docs/writing_support_code/around_hooks.feature +0 -266
  341. data/features/docs/writing_support_code/before_hook.feature +0 -66
  342. data/features/docs/writing_support_code/hook_order.feature +0 -63
  343. data/features/docs/writing_support_code/load_path.feature +0 -17
  344. data/features/docs/writing_support_code/parameter_types.feature +0 -69
  345. data/features/docs/writing_support_code/state.feature +0 -32
  346. data/features/docs/writing_support_code/tagged_hooks.feature +0 -95
  347. data/features/docs/writing_support_code/world.feature +0 -129
  348. data/features/lib/step_definitions/aruba_steps.rb +0 -21
  349. data/features/lib/step_definitions/cli_steps.rb +0 -4
  350. data/features/lib/step_definitions/cucumber_steps.rb +0 -75
  351. data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -16
  352. data/features/lib/step_definitions/json_steps.rb +0 -8
  353. data/features/lib/step_definitions/junit_steps.rb +0 -14
  354. data/features/lib/step_definitions/language_steps.rb +0 -9
  355. data/features/lib/step_definitions/profile_steps.rb +0 -16
  356. data/features/lib/step_definitions/retry_steps.rb +0 -55
  357. data/features/lib/step_definitions/ruby_steps.rb +0 -4
  358. data/features/lib/support/env.rb +0 -22
  359. data/features/lib/support/fake_wire_server.rb +0 -94
  360. data/features/lib/support/feature_factory.rb +0 -68
  361. data/features/lib/support/normalise_output.rb +0 -52
  362. data/features/lib/support/parameter_types.rb +0 -5
  363. data/gem_tasks/contributors.rake +0 -19
  364. data/gem_tasks/cov.rake +0 -6
  365. data/gem_tasks/downloads.rb +0 -8
  366. data/gem_tasks/environment.rake +0 -4
  367. data/gem_tasks/examples.rake +0 -12
  368. data/gem_tasks/fix_cr_lf.rake +0 -22
  369. data/gem_tasks/flog.rake +0 -5
  370. data/gem_tasks/rspec.rake +0 -7
  371. data/gem_tasks/sass.rake +0 -5
  372. data/gem_tasks/stats +0 -16
  373. data/gem_tasks/versions.txt +0 -74
  374. data/scripts/invite-collaborator +0 -40
  375. data/scripts/update-changelog +0 -86
  376. data/spec/cucumber/cli/configuration_spec.rb +0 -446
  377. data/spec/cucumber/cli/main_spec.rb +0 -84
  378. data/spec/cucumber/cli/options_spec.rb +0 -445
  379. data/spec/cucumber/cli/profile_loader_spec.rb +0 -66
  380. data/spec/cucumber/cli/rerun_spec.rb +0 -86
  381. data/spec/cucumber/configuration_spec.rb +0 -148
  382. data/spec/cucumber/constantize_spec.rb +0 -20
  383. data/spec/cucumber/events_spec.rb +0 -9
  384. data/spec/cucumber/file_specs_spec.rb +0 -61
  385. data/spec/cucumber/filters/activate_steps_spec.rb +0 -152
  386. data/spec/cucumber/filters/gated_receiver_spec.rb +0 -48
  387. data/spec/cucumber/filters/retry_spec.rb +0 -98
  388. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +0 -39
  389. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +0 -58
  390. data/spec/cucumber/filters/tag_limits_spec.rb +0 -60
  391. data/spec/cucumber/formatter/ansicolor_spec.rb +0 -33
  392. data/spec/cucumber/formatter/backtrace_filter_spec.rb +0 -32
  393. data/spec/cucumber/formatter/console_counts_spec.rb +0 -14
  394. data/spec/cucumber/formatter/duration_spec.rb +0 -23
  395. data/spec/cucumber/formatter/fail_fast_spec.rb +0 -88
  396. data/spec/cucumber/formatter/html_spec.rb +0 -543
  397. data/spec/cucumber/formatter/interceptor_spec.rb +0 -137
  398. data/spec/cucumber/formatter/json_spec.rb +0 -815
  399. data/spec/cucumber/formatter/junit_spec.rb +0 -251
  400. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2175
  401. data/spec/cucumber/formatter/pretty_spec.rb +0 -907
  402. data/spec/cucumber/formatter/progress_spec.rb +0 -170
  403. data/spec/cucumber/formatter/rerun_spec.rb +0 -97
  404. data/spec/cucumber/formatter/spec_helper.rb +0 -84
  405. data/spec/cucumber/glue/proto_world_spec.rb +0 -63
  406. data/spec/cucumber/glue/registry_and_more_spec.rb +0 -213
  407. data/spec/cucumber/glue/snippet_spec.rb +0 -174
  408. data/spec/cucumber/glue/step_definition_spec.rb +0 -207
  409. data/spec/cucumber/hooks_spec.rb +0 -31
  410. data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -653
  411. data/spec/cucumber/project_initializer_spec.rb +0 -88
  412. data/spec/cucumber/rake/forked_spec.rb +0 -58
  413. data/spec/cucumber/rake/task_spec.rb +0 -86
  414. data/spec/cucumber/running_test_case_spec.rb +0 -140
  415. data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -8
  416. data/spec/cucumber/runtime/support_code_spec.rb +0 -17
  417. data/spec/cucumber/runtime_spec.rb +0 -21
  418. data/spec/cucumber/sell_cucumbers.feature +0 -19
  419. data/spec/cucumber/step_argument_spec.rb +0 -19
  420. data/spec/cucumber/step_match_search_spec.rb +0 -113
  421. data/spec/cucumber/step_match_spec.rb +0 -86
  422. data/spec/cucumber/world/pending_spec.rb +0 -48
  423. data/spec/spec_helper.rb +0 -30
  424. data/spec/support/standard_step_actions.rb +0 -19
@@ -1,29 +0,0 @@
1
- Feature: Custom filter
2
-
3
- Scenario: Add a custom filter via AfterConfiguration hook
4
- Given a file named "features/test.feature" with:
5
- """
6
- Feature:
7
- Scenario:
8
- Given my special step
9
- """
10
- And a file named "features/support/my_filter.rb" with:
11
- """
12
- require 'cucumber/core/filter'
13
-
14
- MakeAnythingPass = Cucumber::Core::Filter.new do
15
- def test_case(test_case)
16
- activated_steps = test_case.test_steps.map do |test_step|
17
- test_step.with_action { }
18
- end
19
- test_case.with_steps(activated_steps).describe_to receiver
20
- end
21
- end
22
-
23
- AfterConfiguration do |config|
24
- config.filters << MakeAnythingPass.new
25
- end
26
- """
27
- When I run `cucumber --strict`
28
- Then it should pass
29
-
@@ -1,94 +0,0 @@
1
- Feature: Custom Formatter
2
-
3
- Background:
4
- Given a file named "features/f.feature" with:
5
- """
6
- Feature: I'll use my own
7
- Scenario: Just print me
8
- Given this step passes
9
- """
10
- And the standard step definitions
11
-
12
- Scenario: Subscribe to result events
13
-
14
- This is the recommended way to format output.
15
-
16
- Given a file named "features/support/custom_formatter.rb" with:
17
- """
18
- module MyCustom
19
- class Formatter
20
- def initialize(config)
21
- @io = config.out_stream
22
- config.on_event :test_case_started do |event|
23
- print_test_case_name(event.test_case)
24
- end
25
- end
26
-
27
- def print_test_case_name(test_case)
28
- feature = test_case.source.first
29
- scenario = test_case.source.last
30
- @io.puts feature.short_name.upcase
31
- @io.puts " #{scenario.name.upcase}"
32
- end
33
- end
34
- end
35
- """
36
- When I run `cucumber features/f.feature --format MyCustom::Formatter`
37
- Then it should pass with exactly:
38
- """
39
- I'LL USE MY OWN
40
- JUST PRINT ME
41
-
42
- """
43
-
44
- Scenario: Pass custom config to your formatter from the CLI
45
- Given a file named "features/support/custom_formatter.rb" with:
46
- """
47
- module MyCustom
48
- class Formatter
49
- def initialize(config, options)
50
- @io = config.out_stream
51
- config.on_event :test_run_finished do |event|
52
- @io.print options.inspect
53
- end
54
- end
55
- end
56
- end
57
- """
58
- When I run `cucumber features/f.feature --format MyCustom::Formatter,foo=bar,one=two`
59
- Then it should pass with exactly:
60
- """
61
- {"foo"=>"bar", "one"=>"two"}
62
- """
63
-
64
- Scenario: Use the legacy API
65
- This is deprecated and should no longer be used.
66
-
67
- Given a file named "features/support/custom_legacy_formatter.rb" with:
68
- """
69
- module MyCustom
70
- class LegacyFormatter
71
- def initialize(runtime, io, options)
72
- @io = io
73
- end
74
-
75
- def before_feature(feature)
76
- @io.puts feature.short_name.upcase
77
- end
78
-
79
- def scenario_name(keyword, name, file_colon_line, source_indent)
80
- @io.puts " #{name.upcase}"
81
- end
82
- end
83
- end
84
- """
85
- When I run `cucumber features/f.feature --format MyCustom::LegacyFormatter`
86
- Then it should pass with exactly:
87
- """
88
- WARNING: The formatter MyCustom::LegacyFormatter is using the deprecated formatter API which will be removed in v4.0 of Cucumber.
89
-
90
- I'LL USE MY OWN
91
- JUST PRINT ME
92
-
93
- """
94
-
@@ -1,37 +0,0 @@
1
- Feature: Formatter API methods
2
-
3
- Some utility methods are provided to make it easier to write your own formatters.
4
-
5
- Here are some examples.
6
-
7
- Scenario: A formatter that uses `Cucumber::Formatter::Io#ensure_file`
8
-
9
- The ensure_file method is a little helper function that some formatters use,
10
- normally when given a CLI argument with `--out` to check that the file passed
11
- by the user actually exists.
12
-
13
- The second argument is the name of the formatter, used to print a useful
14
- error message if the file can't be created for some reason.
15
-
16
- Given a file named "features/f.feature" with:
17
- """
18
- Feature: Test
19
- Scenario: Test
20
- """
21
- And a directory named "my/special"
22
- And a file named "features/support/custom_formatter.rb" with:
23
- """
24
- require 'cucumber/formatter/io'
25
- module Cucumber
26
- module Formatter
27
- class Test
28
- include Io
29
- def initialize(runtime, path_or_io, options)
30
- ensure_file("my/special/output.file", "custom formatter")
31
- end
32
- end
33
- end
34
- end
35
- """
36
- When I run `cucumber features/f.feature --format Cucumber::Formatter::Test`
37
- Then it should pass
@@ -1,91 +0,0 @@
1
- Feature: HTML output formatter
2
-
3
- Background:
4
- Given the standard step definitions
5
- And a file named "features/scenario_outline_with_undefined_steps.feature" with:
6
- """
7
- Feature:
8
-
9
- Scenario Outline:
10
- Given this step is undefined
11
-
12
- Examples:
13
- |foo|
14
- |bar|
15
- """
16
- And a file named "features/scenario_outline_with_pending_step.feature" with:
17
- """
18
- Feature: Outline
19
-
20
- Scenario Outline: Will it blend?
21
- Given this step is pending
22
- And other step
23
- When I do something with <example>
24
- Then I should see something
25
- Examples:
26
- | example |
27
- | one |
28
- | two |
29
- | three |
30
- """
31
- And a file named "features/failing_background_step.feature" with:
32
- """
33
- Feature: Feature with failing background step
34
-
35
- Background:
36
- Given this step fails
37
-
38
- Scenario:
39
- When I do something
40
- Then I should see something
41
- """
42
-
43
- Scenario: an scenario outline, one undefined step, one random example, expand flag on
44
- When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format html --expand `
45
- Then it should pass
46
-
47
- Scenario Outline: an scenario outline, one pending step
48
- When I run `cucumber <file> --format html <flag>`
49
- Then it should pass
50
- And the output should contain:
51
- """
52
- makeYellow('scenario_1')
53
- """
54
- And the output should not contain:
55
- """
56
- makeRed('scenario_1')
57
- """
58
-
59
- Examples:
60
- | file | flag |
61
- | features/scenario_outline_with_pending_step.feature | --expand |
62
- | features/scenario_outline_with_pending_step.feature | |
63
-
64
- Examples:
65
- | file | flag |
66
- | features/scenario_outline_with_undefined_steps.feature | --expand |
67
- | features/scenario_outline_with_undefined_steps.feature | |
68
-
69
- Scenario: when using a profile the html shouldn't include 'Using the default profile...'
70
- And a file named "cucumber.yml" with:
71
- """
72
- default: -r features
73
- """
74
- When I run `cucumber features/scenario_outline_with_undefined_steps.feature --profile default --format html`
75
- Then it should pass
76
- And the output should not contain:
77
- """
78
- Using the default profile...
79
- """
80
-
81
- Scenario: a feature with a failing background step
82
- When I run `cucumber features/failing_background_step.feature --format html`
83
- Then the output should not contain:
84
- """
85
- makeRed('scenario_0')
86
- """
87
- And the output should contain:
88
- """
89
- makeRed('background_0')
90
- """
91
-
@@ -1,767 +0,0 @@
1
- Feature: JSON output formatter
2
- In order to simplify processing of Cucumber features and results
3
- Developers should be able to consume features as JSON
4
-
5
- Background:
6
- Given the standard step definitions
7
- And a file named "features/one_passing_one_failing.feature" with:
8
- """
9
- @a
10
- Feature: One passing scenario, one failing scenario
11
-
12
- @b
13
- Scenario: Passing
14
- Given this step passes
15
-
16
- @c
17
- Scenario: Failing
18
- Given this step fails
19
- """
20
- And a file named "features/step_definitions/json_steps.rb" with:
21
- """
22
- Given /^I embed a screenshot/ do
23
- File.open("screenshot.png", "w") { |file| file << "foo" }
24
- embed "screenshot.png", "image/png"
25
- end
26
-
27
- Given /^I print from step definition/ do
28
- puts "from step definition"
29
- end
30
-
31
- Given /^I embed data directly/ do
32
- data = "YWJj"
33
- embed data, "mime-type;base64"
34
- end
35
- """
36
- And a file named "features/embed.feature" with:
37
- """
38
- Feature: A screenshot feature
39
-
40
- Scenario:
41
- Given I embed a screenshot
42
-
43
- """
44
- And a file named "features/outline.feature" with:
45
- """
46
- Feature: An outline feature
47
-
48
- Scenario Outline: outline
49
- Given this step <status>
50
-
51
- Examples: examples1
52
- | status |
53
- | passes |
54
- | fails |
55
-
56
- Examples: examples2
57
- | status |
58
- | passes |
59
- """
60
- And a file named "features/print_from_step_definition.feature" with:
61
- """
62
- Feature: A print from step definition feature
63
-
64
- Scenario:
65
- Given I print from step definition
66
- And I print from step definition
67
-
68
- """
69
- And a file named "features/print_from_step_definition.feature" with:
70
- """
71
- Feature: A print from step definition feature
72
-
73
- Scenario:
74
- Given I print from step definition
75
- And I print from step definition
76
-
77
- """
78
- And a file named "features/embed_data_directly.feature" with:
79
- """
80
- Feature: An embed data directly feature
81
-
82
- Scenario:
83
- Given I embed data directly
84
-
85
- Scenario Outline:
86
- Given I embed data directly
87
-
88
- Examples:
89
- | dummy |
90
- | 1 |
91
- | 2 |
92
-
93
- """
94
- And a file named "features/out_scenario_out_scenario_outline.feature" with:
95
- """
96
- Feature:
97
- Scenario:
98
- Given this step passes
99
- Scenario Outline:
100
- Given this step <status>
101
- Examples:
102
- | status |
103
- | passes |
104
- """
105
-
106
- # Need to investigate why this won't pass in-process. error_message doesn't get det?
107
- @spawn @todo-windows
108
- Scenario: one feature, one passing scenario, one failing scenario
109
- When I run `cucumber --format json features/one_passing_one_failing.feature`
110
- Then it should fail with JSON:
111
- """
112
- [
113
- {
114
- "uri": "features/one_passing_one_failing.feature",
115
- "keyword": "Feature",
116
- "id": "one-passing-scenario,-one-failing-scenario",
117
- "name": "One passing scenario, one failing scenario",
118
- "line": 2,
119
- "description": "",
120
- "tags": [
121
- {
122
- "name": "@a",
123
- "line": 1
124
- }
125
- ],
126
- "elements": [
127
- {
128
- "keyword": "Scenario",
129
- "id": "one-passing-scenario,-one-failing-scenario;passing",
130
- "name": "Passing",
131
- "line": 5,
132
- "description": "",
133
- "tags": [
134
- {
135
- "name": "@a",
136
- "line": 1
137
- },
138
- {
139
- "name": "@b",
140
- "line": 4
141
- }
142
- ],
143
- "type": "scenario",
144
- "steps": [
145
- {
146
- "keyword": "Given ",
147
- "name": "this step passes",
148
- "line": 6,
149
- "match": {
150
- "location": "features/step_definitions/steps.rb:1"
151
- },
152
- "result": {
153
- "status": "passed",
154
- "duration": 1
155
- }
156
- }
157
- ]
158
- },
159
- {
160
- "keyword": "Scenario",
161
- "id": "one-passing-scenario,-one-failing-scenario;failing",
162
- "name": "Failing",
163
- "line": 9,
164
- "description": "",
165
- "tags": [
166
- {
167
- "name": "@a",
168
- "line": 1
169
- },
170
- {
171
- "name": "@c",
172
- "line": 8
173
- }
174
- ],
175
- "type": "scenario",
176
- "steps": [
177
- {
178
- "keyword": "Given ",
179
- "name": "this step fails",
180
- "line": 10,
181
- "match": {
182
- "location": "features/step_definitions/steps.rb:4"
183
- },
184
- "result": {
185
- "status": "failed",
186
- "error_message": " (RuntimeError)\n./features/step_definitions/steps.rb:4:in `/^this step fails$/'\nfeatures/one_passing_one_failing.feature:10:in `Given this step fails'",
187
- "duration": 1
188
- }
189
- }
190
- ]
191
- }
192
- ]
193
- }
194
- ]
195
-
196
- """
197
-
198
- @spawn @todo-windows
199
- Scenario: one feature, one passing scenario, one failing scenario with prettyfied json
200
- When I run `cucumber --format json_pretty features/one_passing_one_failing.feature`
201
- Then it should fail with JSON:
202
- """
203
- [
204
- {
205
- "uri": "features/one_passing_one_failing.feature",
206
- "keyword": "Feature",
207
- "id": "one-passing-scenario,-one-failing-scenario",
208
- "name": "One passing scenario, one failing scenario",
209
- "line": 2,
210
- "description": "",
211
- "tags": [
212
- {
213
- "name": "@a",
214
- "line": 1
215
- }
216
- ],
217
- "elements": [
218
- {
219
- "keyword": "Scenario",
220
- "id": "one-passing-scenario,-one-failing-scenario;passing",
221
- "name": "Passing",
222
- "line": 5,
223
- "description": "",
224
- "tags": [
225
- {
226
- "name": "@a",
227
- "line": 1
228
- },
229
- {
230
- "name": "@b",
231
- "line": 4
232
- }
233
- ],
234
- "type": "scenario",
235
- "steps": [
236
- {
237
- "keyword": "Given ",
238
- "name": "this step passes",
239
- "line": 6,
240
- "match": {
241
- "location": "features/step_definitions/steps.rb:1"
242
- },
243
- "result": {
244
- "status": "passed",
245
- "duration": 1
246
- }
247
- }
248
- ]
249
- },
250
- {
251
- "keyword": "Scenario",
252
- "id": "one-passing-scenario,-one-failing-scenario;failing",
253
- "name": "Failing",
254
- "line": 9,
255
- "description": "",
256
- "tags": [
257
- {
258
- "name": "@a",
259
- "line": 1
260
- },
261
- {
262
- "name": "@c",
263
- "line": 8
264
- }
265
- ],
266
- "type": "scenario",
267
- "steps": [
268
- {
269
- "keyword": "Given ",
270
- "name": "this step fails",
271
- "line": 10,
272
- "match": {
273
- "location": "features/step_definitions/steps.rb:4"
274
- },
275
- "result": {
276
- "status": "failed",
277
- "error_message": " (RuntimeError)\n./features/step_definitions/steps.rb:4:in `/^this step fails$/'\nfeatures/one_passing_one_failing.feature:10:in `Given this step fails'",
278
- "duration": 1
279
- }
280
- }
281
- ]
282
- }
283
- ]
284
- }
285
- ]
286
-
287
- """
288
-
289
- Scenario: DocString
290
- Given a file named "features/doc_string.feature" with:
291
- """
292
- Feature: A DocString feature
293
-
294
- Scenario:
295
- Then I should fail with
296
- \"\"\"
297
- a string
298
- \"\"\"
299
- """
300
- And a file named "features/step_definitions/steps.rb" with:
301
- """
302
- Then /I should fail with/ do |s|
303
- raise RuntimeError, s
304
- end
305
- """
306
- When I run `cucumber --format json features/doc_string.feature`
307
- Then it should fail with JSON:
308
- """
309
- [
310
- {
311
- "id": "a-docstring-feature",
312
- "uri": "features/doc_string.feature",
313
- "keyword": "Feature",
314
- "name": "A DocString feature",
315
- "line": 1,
316
- "description": "",
317
- "elements": [
318
- {
319
- "id": "a-docstring-feature;",
320
- "keyword": "Scenario",
321
- "name": "",
322
- "line": 3,
323
- "description": "",
324
- "type": "scenario",
325
- "steps": [
326
- {
327
- "keyword": "Then ",
328
- "name": "I should fail with",
329
- "line": 4,
330
- "doc_string": {
331
- "content_type": "",
332
- "value": "a string",
333
- "line": 5
334
- },
335
- "match": {
336
- "location": "features/step_definitions/steps.rb:1"
337
- },
338
- "result": {
339
- "status": "failed",
340
- "error_message": "a string (RuntimeError)\n./features/step_definitions/steps.rb:2:in `/I should fail with/'\nfeatures/doc_string.feature:4:in `Then I should fail with'",
341
- "duration": 1
342
- }
343
- }
344
- ]
345
- }
346
- ]
347
- }
348
- ]
349
- """
350
-
351
- Scenario: embedding screenshot
352
- When I run `cucumber --format json features/embed.feature`
353
- Then it should pass with JSON:
354
- """
355
- [
356
- {
357
- "uri": "features/embed.feature",
358
- "id": "a-screenshot-feature",
359
- "keyword": "Feature",
360
- "name": "A screenshot feature",
361
- "line": 1,
362
- "description": "",
363
- "elements": [
364
- {
365
- "id": "a-screenshot-feature;",
366
- "keyword": "Scenario",
367
- "name": "",
368
- "line": 3,
369
- "description": "",
370
- "type": "scenario",
371
- "steps": [
372
- {
373
- "keyword": "Given ",
374
- "name": "I embed a screenshot",
375
- "line": 4,
376
- "embeddings": [
377
- {
378
- "mime_type": "image/png",
379
- "data": "Zm9v"
380
- }
381
- ],
382
- "match": {
383
- "location": "features/step_definitions/json_steps.rb:1"
384
- },
385
- "result": {
386
- "status": "passed",
387
- "duration": 1
388
- }
389
- }
390
- ]
391
- }
392
- ]
393
- }
394
- ]
395
-
396
- """
397
-
398
- @spawn @todo-windows
399
- Scenario: scenario outline
400
- When I run `cucumber --format json features/outline.feature`
401
- Then it should fail with JSON:
402
- """
403
- [
404
- {
405
- "uri": "features/outline.feature",
406
- "id": "an-outline-feature",
407
- "keyword": "Feature",
408
- "name": "An outline feature",
409
- "line": 1,
410
- "description": "",
411
- "elements": [
412
- {
413
- "id": "an-outline-feature;outline;examples1;2",
414
- "keyword": "Scenario Outline",
415
- "name": "outline",
416
- "description": "",
417
- "line": 8,
418
- "type": "scenario",
419
- "steps": [
420
- {
421
- "keyword": "Given ",
422
- "name": "this step passes",
423
- "line": 8,
424
- "match": {
425
- "location": "features/step_definitions/steps.rb:1"
426
- },
427
- "result": {
428
- "status": "passed",
429
- "duration": 1
430
- }
431
- }
432
- ]
433
- },
434
- {
435
- "id": "an-outline-feature;outline;examples1;3",
436
- "keyword": "Scenario Outline",
437
- "name": "outline",
438
- "description": "",
439
- "line": 9,
440
- "type": "scenario",
441
- "steps": [
442
- {
443
- "keyword": "Given ",
444
- "name": "this step fails",
445
- "line": 9,
446
- "match": {
447
- "location": "features/step_definitions/steps.rb:4"
448
- },
449
- "result": {
450
- "status": "failed",
451
- "error_message": " (RuntimeError)\n./features/step_definitions/steps.rb:4:in `/^this step fails$/'\nfeatures/outline.feature:9:in `Given this step fails'\nfeatures/outline.feature:4:in `Given this step <status>'",
452
- "duration": 1
453
- }
454
- }
455
- ]
456
- },
457
- {
458
- "id": "an-outline-feature;outline;examples2;2",
459
- "keyword": "Scenario Outline",
460
- "name": "outline",
461
- "description": "",
462
- "line": 13,
463
- "type": "scenario",
464
- "steps": [
465
- {
466
- "keyword": "Given ",
467
- "name": "this step passes",
468
- "line": 13,
469
- "match": {
470
- "location": "features/step_definitions/steps.rb:1"
471
- },
472
- "result": {
473
- "status": "passed",
474
- "duration": 1
475
- }
476
- }
477
- ]
478
- }
479
- ]
480
- }
481
- ]
482
-
483
- """
484
-
485
- Scenario: print from step definition
486
- When I run `cucumber --format json features/print_from_step_definition.feature`
487
- Then it should pass with JSON:
488
- """
489
- [
490
- {
491
- "uri": "features/print_from_step_definition.feature",
492
- "id": "a-print-from-step-definition-feature",
493
- "keyword": "Feature",
494
- "name": "A print from step definition feature",
495
- "line": 1,
496
- "description": "",
497
- "elements": [
498
- {
499
- "id": "a-print-from-step-definition-feature;",
500
- "keyword": "Scenario",
501
- "name": "",
502
- "line": 3,
503
- "description": "",
504
- "type": "scenario",
505
- "steps": [
506
- {
507
- "keyword": "Given ",
508
- "name": "I print from step definition",
509
- "line": 4,
510
- "output": [
511
- "from step definition"
512
- ],
513
- "match": {
514
- "location": "features/step_definitions/json_steps.rb:6"
515
- },
516
- "result": {
517
- "status": "passed",
518
- "duration": 1
519
- }
520
- },
521
- {
522
- "keyword": "And ",
523
- "name": "I print from step definition",
524
- "line": 5,
525
- "output": [
526
- "from step definition"
527
- ],
528
- "match": {
529
- "location": "features/step_definitions/json_steps.rb:6"
530
- },
531
- "result": {
532
- "status": "passed",
533
- "duration": 1
534
- }
535
- }
536
- ]
537
- }
538
- ]
539
- }
540
- ]
541
-
542
- """
543
-
544
- @spawn @todo-windows
545
- Scenario: scenario outline expanded
546
- When I run `cucumber --expand --format json features/outline.feature`
547
- Then it should fail with JSON:
548
- """
549
- [
550
- {
551
- "uri": "features/outline.feature",
552
- "id": "an-outline-feature",
553
- "keyword": "Feature",
554
- "name": "An outline feature",
555
- "line": 1,
556
- "description": "",
557
- "elements": [
558
- {
559
- "id": "an-outline-feature;outline;examples1;2",
560
- "keyword": "Scenario Outline",
561
- "name": "outline",
562
- "line": 8,
563
- "description": "",
564
- "type": "scenario",
565
- "steps": [
566
- {
567
- "keyword": "Given ",
568
- "name": "this step passes",
569
- "line": 8,
570
- "match": {
571
- "location": "features/step_definitions/steps.rb:1"
572
- },
573
- "result": {
574
- "status": "passed",
575
- "duration": 1
576
- }
577
- }
578
- ]
579
- },
580
- {
581
- "id": "an-outline-feature;outline;examples1;3",
582
- "keyword": "Scenario Outline",
583
- "name": "outline",
584
- "line": 9,
585
- "description": "",
586
- "type": "scenario",
587
- "steps": [
588
- {
589
- "keyword": "Given ",
590
- "name": "this step fails",
591
- "line": 9,
592
- "match": {
593
- "location": "features/step_definitions/steps.rb:4"
594
- },
595
- "result": {
596
- "status": "failed",
597
- "error_message" : " (RuntimeError)\n./features/step_definitions/steps.rb:4:in `/^this step fails$/'\nfeatures/outline.feature:9:in `Given this step fails'\nfeatures/outline.feature:4:in `Given this step <status>'",
598
- "duration": 1
599
- }
600
- }
601
- ]
602
- },
603
- {
604
- "id": "an-outline-feature;outline;examples2;2",
605
- "keyword": "Scenario Outline",
606
- "name": "outline",
607
- "line": 13,
608
- "description": "",
609
- "type": "scenario",
610
- "steps": [
611
- {
612
- "keyword": "Given ",
613
- "name": "this step passes",
614
- "line": 13,
615
- "match": {
616
- "location": "features/step_definitions/steps.rb:1"
617
- },
618
- "result": {
619
- "status": "passed",
620
- "duration": 1
621
- }
622
- }
623
- ]
624
- }
625
- ]
626
- }
627
- ]
628
-
629
- """
630
-
631
- Scenario: embedding data directly
632
- When I run `cucumber --format json -x features/embed_data_directly.feature`
633
- Then it should pass with JSON:
634
- """
635
- [
636
- {
637
- "uri": "features/embed_data_directly.feature",
638
- "id": "an-embed-data-directly-feature",
639
- "keyword": "Feature",
640
- "name": "An embed data directly feature",
641
- "line": 1,
642
- "description": "",
643
- "elements": [
644
- {
645
- "id": "an-embed-data-directly-feature;",
646
- "keyword": "Scenario",
647
- "name": "",
648
- "line": 3,
649
- "description": "",
650
- "type": "scenario",
651
- "steps": [
652
- {
653
- "keyword": "Given ",
654
- "name": "I embed data directly",
655
- "line": 4,
656
- "embeddings": [
657
- {
658
- "mime_type": "mime-type",
659
- "data": "YWJj"
660
- }
661
- ],
662
- "match": {
663
- "location": "features/step_definitions/json_steps.rb:10"
664
- },
665
- "result": {
666
- "status": "passed",
667
- "duration": 1
668
- }
669
- }
670
- ]
671
- },
672
- {
673
- "keyword": "Scenario Outline",
674
- "name": "",
675
- "line": 11,
676
- "description": "",
677
- "id": "an-embed-data-directly-feature;;;2",
678
- "type": "scenario",
679
- "steps": [
680
- {
681
- "keyword": "Given ",
682
- "name": "I embed data directly",
683
- "line": 11,
684
- "embeddings": [
685
- {
686
- "mime_type": "mime-type",
687
- "data": "YWJj"
688
- }
689
- ],
690
- "match": {
691
- "location": "features/step_definitions/json_steps.rb:10"
692
- },
693
- "result": {
694
- "status": "passed",
695
- "duration": 1
696
- }
697
- }
698
- ]
699
- },
700
- {
701
- "keyword": "Scenario Outline",
702
- "name": "",
703
- "line": 12,
704
- "description": "",
705
- "id": "an-embed-data-directly-feature;;;3",
706
- "type": "scenario",
707
- "steps": [
708
- {
709
- "keyword": "Given ",
710
- "name": "I embed data directly",
711
- "line": 12,
712
- "embeddings": [
713
- {
714
- "mime_type": "mime-type",
715
- "data": "YWJj"
716
- }
717
- ],
718
- "match": {
719
- "location": "features/step_definitions/json_steps.rb:10"
720
- },
721
- "result": {
722
- "status": "passed",
723
- "duration": 1
724
- }
725
- }
726
- ]
727
- }
728
- ]
729
- }
730
- ]
731
-
732
- """
733
- Scenario: handle output from hooks
734
- Given a file named "features/step_definitions/output_steps.rb" with:
735
- """
736
- Before do
737
- puts "Before hook 1"
738
- embed "src", "mime_type", "label"
739
- end
740
-
741
- Before do
742
- puts "Before hook 2"
743
- embed "src", "mime_type", "label"
744
- end
745
-
746
- AfterStep do
747
- puts "AfterStep hook 1"
748
- embed "src", "mime_type", "label"
749
- end
750
-
751
- AfterStep do
752
- puts "AfterStep hook 2"
753
- embed "src", "mime_type", "label"
754
- end
755
-
756
- After do
757
- puts "After hook 1"
758
- embed "src", "mime_type", "label"
759
- end
760
-
761
- After do
762
- puts "After hook 2"
763
- embed "src", "mime_type", "label"
764
- end
765
- """
766
- When I run `cucumber --format json features/out_scenario_out_scenario_outline.feature`
767
- Then it should pass