cucumber 3.0.1 → 3.2.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 (517) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +84 -4
  3. data/CONTRIBUTING.md +3 -4
  4. data/README.md +12 -12
  5. data/lib/autotest/cucumber.rb +1 -0
  6. data/lib/autotest/cucumber_mixin.rb +1 -0
  7. data/lib/autotest/cucumber_rails.rb +1 -0
  8. data/lib/autotest/cucumber_rails_rspec.rb +1 -0
  9. data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
  10. data/lib/autotest/cucumber_rspec.rb +1 -0
  11. data/lib/autotest/cucumber_rspec2.rb +1 -0
  12. data/lib/autotest/discover.rb +1 -0
  13. data/lib/cucumber.rb +1 -0
  14. data/lib/cucumber/cli/configuration.rb +1 -0
  15. data/lib/cucumber/cli/main.rb +2 -2
  16. data/lib/cucumber/cli/options.rb +63 -55
  17. data/lib/cucumber/cli/profile_loader.rb +5 -7
  18. data/lib/cucumber/cli/rerun_file.rb +1 -0
  19. data/lib/cucumber/configuration.rb +8 -7
  20. data/lib/cucumber/constantize.rb +6 -5
  21. data/lib/cucumber/core_ext/string.rb +1 -0
  22. data/lib/cucumber/deprecate.rb +1 -1
  23. data/lib/cucumber/encoding.rb +2 -1
  24. data/lib/cucumber/errors.rb +2 -1
  25. data/lib/cucumber/events.rb +1 -2
  26. data/lib/cucumber/events/gherkin_source_read.rb +1 -4
  27. data/lib/cucumber/events/step_activated.rb +4 -5
  28. data/lib/cucumber/events/step_definition_registered.rb +4 -8
  29. data/lib/cucumber/events/test_case_finished.rb +0 -4
  30. data/lib/cucumber/events/test_case_started.rb +0 -4
  31. data/lib/cucumber/events/test_run_finished.rb +2 -3
  32. data/lib/cucumber/events/test_run_started.rb +2 -4
  33. data/lib/cucumber/events/test_step_finished.rb +0 -6
  34. data/lib/cucumber/events/test_step_started.rb +1 -7
  35. data/lib/cucumber/file_specs.rb +2 -1
  36. data/lib/cucumber/filters.rb +1 -0
  37. data/lib/cucumber/filters/activate_steps.rb +1 -1
  38. data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
  39. data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
  40. data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
  41. data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
  42. data/lib/cucumber/filters/broadcast_test_run_started_event.rb +2 -1
  43. data/lib/cucumber/filters/gated_receiver.rb +1 -2
  44. data/lib/cucumber/filters/prepare_world.rb +2 -5
  45. data/lib/cucumber/filters/quit.rb +2 -4
  46. data/lib/cucumber/filters/randomizer.rb +6 -7
  47. data/lib/cucumber/filters/retry.rb +2 -2
  48. data/lib/cucumber/filters/tag_limits.rb +2 -2
  49. data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
  50. data/lib/cucumber/filters/tag_limits/verifier.rb +1 -2
  51. data/lib/cucumber/formatter/ansicolor.rb +13 -12
  52. data/lib/cucumber/formatter/backtrace_filter.rb +1 -2
  53. data/lib/cucumber/formatter/console.rb +11 -12
  54. data/lib/cucumber/formatter/console_counts.rb +4 -4
  55. data/lib/cucumber/formatter/console_issues.rb +3 -3
  56. data/lib/cucumber/formatter/duration.rb +1 -0
  57. data/lib/cucumber/formatter/duration_extractor.rb +1 -1
  58. data/lib/cucumber/formatter/fail_fast.rb +9 -6
  59. data/lib/cucumber/formatter/fanout.rb +1 -3
  60. data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
  61. data/lib/cucumber/formatter/html.rb +28 -32
  62. data/lib/cucumber/formatter/html_builder.rb +3 -2
  63. data/lib/cucumber/formatter/http_io.rb +146 -0
  64. data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -3
  65. data/lib/cucumber/formatter/interceptor.rb +18 -5
  66. data/lib/cucumber/formatter/io.rb +18 -11
  67. data/lib/cucumber/formatter/json.rb +11 -4
  68. data/lib/cucumber/formatter/json_pretty.rb +1 -1
  69. data/lib/cucumber/formatter/junit.rb +22 -17
  70. data/lib/cucumber/formatter/pretty.rb +4 -3
  71. data/lib/cucumber/formatter/progress.rb +3 -2
  72. data/lib/cucumber/formatter/rerun.rb +2 -1
  73. data/lib/cucumber/formatter/stepdefs.rb +1 -0
  74. data/lib/cucumber/formatter/steps.rb +2 -2
  75. data/lib/cucumber/formatter/summary.rb +1 -2
  76. data/lib/cucumber/formatter/unicode.rb +2 -2
  77. data/lib/cucumber/formatter/usage.rb +22 -19
  78. data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
  79. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +86 -85
  80. data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
  81. data/lib/cucumber/gherkin/i18n.rb +1 -0
  82. data/lib/cucumber/gherkin/steps_parser.rb +1 -0
  83. data/lib/cucumber/glue/dsl.rb +1 -0
  84. data/lib/cucumber/glue/hook.rb +1 -0
  85. data/lib/cucumber/glue/invoke_in_world.rb +3 -3
  86. data/lib/cucumber/glue/proto_world.rb +10 -9
  87. data/lib/cucumber/glue/registry_and_more.rb +13 -12
  88. data/lib/cucumber/glue/snippet.rb +1 -5
  89. data/lib/cucumber/glue/step_definition.rb +10 -10
  90. data/lib/cucumber/glue/world_factory.rb +1 -3
  91. data/lib/cucumber/hooks.rb +13 -3
  92. data/lib/cucumber/load_path.rb +1 -0
  93. data/lib/cucumber/multiline_argument.rb +3 -3
  94. data/lib/cucumber/multiline_argument/data_table.rb +16 -20
  95. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +7 -11
  96. data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
  97. data/lib/cucumber/platform.rb +2 -1
  98. data/lib/cucumber/project_initializer.rb +1 -1
  99. data/lib/cucumber/rake/task.rb +8 -5
  100. data/lib/cucumber/rspec/disable_option_parser.rb +1 -0
  101. data/lib/cucumber/rspec/doubles.rb +1 -0
  102. data/lib/cucumber/running_test_case.rb +2 -1
  103. data/lib/cucumber/runtime.rb +6 -6
  104. data/lib/cucumber/runtime/after_hooks.rb +1 -0
  105. data/lib/cucumber/runtime/before_hooks.rb +1 -0
  106. data/lib/cucumber/runtime/for_programming_languages.rb +8 -7
  107. data/lib/cucumber/runtime/step_hooks.rb +2 -0
  108. data/lib/cucumber/runtime/support_code.rb +3 -7
  109. data/lib/cucumber/runtime/user_interface.rb +2 -3
  110. data/lib/cucumber/step_argument.rb +1 -0
  111. data/lib/cucumber/step_definition_light.rb +2 -1
  112. data/lib/cucumber/step_definitions.rb +2 -1
  113. data/lib/cucumber/step_match.rb +9 -8
  114. data/lib/cucumber/step_match_search.rb +8 -9
  115. data/lib/cucumber/term/ansicolor.rb +30 -30
  116. data/lib/cucumber/unit.rb +1 -0
  117. data/lib/cucumber/version +1 -1
  118. data/lib/simplecov_setup.rb +1 -0
  119. metadata +64 -659
  120. data/.coveralls.yml +0 -1
  121. data/.cucumberproignore +0 -6
  122. data/.gitattributes +0 -32
  123. data/.github/ISSUE_TEMPLATE.md +0 -48
  124. data/.github/PULL_REQUEST_TEMPLATE.md +0 -40
  125. data/.rspec +0 -1
  126. data/.rubocop.yml +0 -13
  127. data/.rubocop_todo.yml +0 -991
  128. data/.ruby-gemset +0 -1
  129. data/.travis.yml +0 -70
  130. data/.yardopts +0 -1
  131. data/Gemfile +0 -28
  132. data/Rakefile +0 -32
  133. data/appveyor.yml +0 -27
  134. data/cucumber.gemspec +0 -52
  135. data/cucumber.yml +0 -19
  136. data/examples/i18n/README.textile +0 -3
  137. data/examples/i18n/Rakefile +0 -33
  138. data/examples/i18n/ar/Rakefile +0 -6
  139. data/examples/i18n/ar/features/addition.feature +0 -17
  140. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +0 -29
  141. data/examples/i18n/ar/lib/calculator.rb +0 -11
  142. data/examples/i18n/bg/Rakefile +0 -6
  143. data/examples/i18n/bg/features/addition.feature +0 -12
  144. data/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
  145. data/examples/i18n/bg/features/division.feature +0 -17
  146. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +0 -24
  147. data/examples/i18n/bg/features/support/env.rb +0 -10
  148. data/examples/i18n/bg/features/support/world.rb +0 -8
  149. data/examples/i18n/bg/lib/calculator.rb +0 -25
  150. data/examples/i18n/ca/Rakefile +0 -6
  151. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -26
  152. data/examples/i18n/ca/features/suma.feature +0 -17
  153. data/examples/i18n/ca/lib/calculadora.rb +0 -16
  154. data/examples/i18n/cs/Rakefile +0 -6
  155. data/examples/i18n/cs/features/addition.feature +0 -17
  156. data/examples/i18n/cs/features/division.feature +0 -11
  157. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +0 -29
  158. data/examples/i18n/cs/lib/calculator.rb +0 -14
  159. data/examples/i18n/da/Rakefile +0 -6
  160. data/examples/i18n/da/features/sammenlaegning.feature +0 -18
  161. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +0 -29
  162. data/examples/i18n/da/lib/lommeregner.rb +0 -11
  163. data/examples/i18n/de/Rakefile +0 -6
  164. data/examples/i18n/de/features/addition.feature +0 -17
  165. data/examples/i18n/de/features/division.feature +0 -10
  166. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +0 -29
  167. data/examples/i18n/de/lib/calculator.rb +0 -14
  168. data/examples/i18n/el/Rakefile +0 -6
  169. data/examples/i18n/el/features/addition.feature +0 -17
  170. data/examples/i18n/el/features/division.feature +0 -10
  171. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +0 -29
  172. data/examples/i18n/el/lib/calculator.rb +0 -14
  173. data/examples/i18n/en-lol/Rakefile +0 -4
  174. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
  175. data/examples/i18n/en-lol/features/stuffing.feature +0 -8
  176. data/examples/i18n/en-lol/features/support/env.rb +0 -11
  177. data/examples/i18n/en-lol/lib/basket.rb +0 -12
  178. data/examples/i18n/en-lol/lib/belly.rb +0 -11
  179. data/examples/i18n/en/Rakefile +0 -6
  180. data/examples/i18n/en/features/addition.feature +0 -17
  181. data/examples/i18n/en/features/division.feature +0 -10
  182. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +0 -29
  183. data/examples/i18n/en/lib/calculator.rb +0 -14
  184. data/examples/i18n/eo/Rakefile +0 -6
  185. data/examples/i18n/eo/features/adicio.feature +0 -17
  186. data/examples/i18n/eo/features/divido.feature +0 -10
  187. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +0 -29
  188. data/examples/i18n/eo/lib/calculator.rb +0 -14
  189. data/examples/i18n/es/Rakefile +0 -6
  190. data/examples/i18n/es/features/adicion.feature +0 -17
  191. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +0 -26
  192. data/examples/i18n/es/lib/calculador.rb +0 -14
  193. data/examples/i18n/et/Rakefile +0 -6
  194. data/examples/i18n/et/features/jagamine.feature +0 -10
  195. data/examples/i18n/et/features/liitmine.feature +0 -17
  196. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -29
  197. data/examples/i18n/et/lib/kalkulaator.rb +0 -14
  198. data/examples/i18n/fi/Rakefile +0 -6
  199. data/examples/i18n/fi/features/jakolasku.feature +0 -10
  200. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +0 -29
  201. data/examples/i18n/fi/features/yhteenlasku.feature +0 -17
  202. data/examples/i18n/fi/lib/laskin.rb +0 -14
  203. data/examples/i18n/fr/Rakefile +0 -8
  204. data/examples/i18n/fr/features/addition.feature +0 -18
  205. data/examples/i18n/fr/features/addition2.feature +0 -17
  206. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -32
  207. data/examples/i18n/fr/features/support/env.rb +0 -10
  208. data/examples/i18n/fr/lib/calculatrice.rb +0 -10
  209. data/examples/i18n/he/Rakefile +0 -6
  210. data/examples/i18n/he/features/addition.feature +0 -17
  211. data/examples/i18n/he/features/division.feature +0 -10
  212. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +0 -29
  213. data/examples/i18n/he/lib/calculator.rb +0 -15
  214. data/examples/i18n/hi/Rakefile +0 -6
  215. data/examples/i18n/hi/features/addition.feature +0 -16
  216. data/examples/i18n/hi/features/division.feature +0 -10
  217. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +0 -29
  218. data/examples/i18n/hi/lib/calculator.rb +0 -15
  219. data/examples/i18n/ht/Rakefile +0 -6
  220. data/examples/i18n/ht/features/adisyon.feature +0 -17
  221. data/examples/i18n/ht/features/divizyon.feature +0 -10
  222. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +0 -29
  223. data/examples/i18n/ht/lib/kalkilatris.rb +0 -14
  224. data/examples/i18n/hu/Rakefile +0 -6
  225. data/examples/i18n/hu/features/osszeadas.feature +0 -17
  226. data/examples/i18n/hu/features/osztas.feature +0 -10
  227. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +0 -30
  228. data/examples/i18n/hu/lib/calculator.rb +0 -14
  229. data/examples/i18n/id/Rakefile +0 -6
  230. data/examples/i18n/id/features/addition.feature +0 -17
  231. data/examples/i18n/id/features/division.feature +0 -10
  232. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +0 -29
  233. data/examples/i18n/id/lib/calculator.rb +0 -14
  234. data/examples/i18n/it/Rakefile +0 -6
  235. data/examples/i18n/it/features/somma.feature +0 -11
  236. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +0 -29
  237. data/examples/i18n/it/lib/calcolatrice.rb +0 -11
  238. data/examples/i18n/ja/Rakefile +0 -6
  239. data/examples/i18n/ja/features/addition.feature +0 -17
  240. data/examples/i18n/ja/features/division.feature +0 -10
  241. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +0 -19
  242. data/examples/i18n/ja/features/support/env.rb +0 -10
  243. data/examples/i18n/ja/lib/calculator.rb +0 -14
  244. data/examples/i18n/ko/Rakefile +0 -6
  245. data/examples/i18n/ko/features/addition.feature +0 -17
  246. data/examples/i18n/ko/features/division.feature +0 -11
  247. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +0 -29
  248. data/examples/i18n/ko/lib/calculator.rb +0 -14
  249. data/examples/i18n/lt/Rakefile +0 -6
  250. data/examples/i18n/lt/features/addition.feature +0 -17
  251. data/examples/i18n/lt/features/division.feature +0 -10
  252. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +0 -29
  253. data/examples/i18n/lt/lib/calculator.rb +0 -14
  254. data/examples/i18n/lv/Rakefile +0 -6
  255. data/examples/i18n/lv/features/addition.feature +0 -17
  256. data/examples/i18n/lv/features/division.feature +0 -10
  257. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +0 -29
  258. data/examples/i18n/lv/lib/calculator.rb +0 -14
  259. data/examples/i18n/no/Rakefile +0 -6
  260. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +0 -17
  261. data/examples/i18n/no/features/summering.feature +0 -19
  262. data/examples/i18n/no/features/support/env.rb +0 -11
  263. data/examples/i18n/no/lib/kalkulator.rb +0 -11
  264. data/examples/i18n/pl/Rakefile +0 -6
  265. data/examples/i18n/pl/features/addition.feature +0 -17
  266. data/examples/i18n/pl/features/division.feature +0 -10
  267. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +0 -29
  268. data/examples/i18n/pl/features/support/env.rb +0 -10
  269. data/examples/i18n/pl/lib/calculator.rb +0 -14
  270. data/examples/i18n/pt/Rakefile +0 -6
  271. data/examples/i18n/pt/features/adicao.feature +0 -11
  272. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
  273. data/examples/i18n/pt/features/support/env.rb +0 -10
  274. data/examples/i18n/pt/lib/calculadora.rb +0 -10
  275. data/examples/i18n/ro/Rakefile +0 -6
  276. data/examples/i18n/ro/features/adunare.feature +0 -12
  277. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +0 -26
  278. data/examples/i18n/ro/lib/calculator.rb +0 -11
  279. data/examples/i18n/ru/Rakefile +0 -6
  280. data/examples/i18n/ru/features/addition.feature +0 -11
  281. data/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
  282. data/examples/i18n/ru/features/division.feature +0 -16
  283. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +0 -19
  284. data/examples/i18n/ru/features/support/env.rb +0 -10
  285. data/examples/i18n/ru/features/support/world.rb +0 -8
  286. data/examples/i18n/ru/lib/calculator.rb +0 -25
  287. data/examples/i18n/sk/Rakefile +0 -6
  288. data/examples/i18n/sk/features/addition.feature +0 -17
  289. data/examples/i18n/sk/features/division.feature +0 -10
  290. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +0 -29
  291. data/examples/i18n/sk/lib/calculator.rb +0 -14
  292. data/examples/i18n/sr-Cyrl/Rakefile +0 -6
  293. data/examples/i18n/sr-Cyrl/features/sabiranje.feature +0 -18
  294. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +0 -20
  295. data/examples/i18n/sr-Cyrl/features/support/env.rb +0 -10
  296. data/examples/i18n/sr-Cyrl/lib/calculator.rb +0 -12
  297. data/examples/i18n/sr-Latn/Rakefile +0 -6
  298. data/examples/i18n/sr-Latn/features/sabiranje.feature +0 -18
  299. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +0 -29
  300. data/examples/i18n/sr-Latn/lib/calculator.rb +0 -12
  301. data/examples/i18n/sv/Rakefile +0 -6
  302. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +0 -29
  303. data/examples/i18n/sv/features/summering.feature +0 -18
  304. data/examples/i18n/sv/lib/kalkulator.rb +0 -11
  305. data/examples/i18n/tr/Rakefile +0 -6
  306. data/examples/i18n/tr/features/bolme.feature +0 -10
  307. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +0 -29
  308. data/examples/i18n/tr/features/toplama.feature +0 -18
  309. data/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
  310. data/examples/i18n/uk/Rakefile +0 -6
  311. data/examples/i18n/uk/features/addition.feature +0 -11
  312. data/examples/i18n/uk/features/consecutive_calculations.feature +0 -17
  313. data/examples/i18n/uk/features/division.feature +0 -16
  314. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +0 -19
  315. data/examples/i18n/uk/features/support/env.rb +0 -10
  316. data/examples/i18n/uk/features/support/world.rb +0 -8
  317. data/examples/i18n/uk/lib/calculator.rb +0 -25
  318. data/examples/i18n/uz/Rakefile +0 -6
  319. data/examples/i18n/uz/features/addition.feature +0 -10
  320. data/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
  321. data/examples/i18n/uz/features/division.feature +0 -17
  322. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +0 -19
  323. data/examples/i18n/uz/features/support/env.rb +0 -10
  324. data/examples/i18n/uz/features/support/world.rb +0 -8
  325. data/examples/i18n/uz/lib/calculator.rb +0 -25
  326. data/examples/i18n/zh-CN/Rakefile +0 -4
  327. data/examples/i18n/zh-CN/features/addition.feature +0 -18
  328. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +0 -31
  329. data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
  330. data/examples/i18n/zh-TW/Rakefile +0 -4
  331. data/examples/i18n/zh-TW/features/addition.feature +0 -17
  332. data/examples/i18n/zh-TW/features/division.feature +0 -11
  333. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +0 -29
  334. data/examples/i18n/zh-TW/lib/calculator.rb +0 -14
  335. data/examples/rspec_doubles/Rakefile +0 -4
  336. data/examples/rspec_doubles/features/mocking.feature +0 -9
  337. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +0 -19
  338. data/examples/rspec_doubles/features/support/env.rb +0 -12
  339. data/examples/sinatra/README.textile +0 -13
  340. data/examples/sinatra/Rakefile +0 -6
  341. data/examples/sinatra/app.rb +0 -14
  342. data/examples/sinatra/features/add.feature +0 -11
  343. data/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
  344. data/examples/sinatra/features/support/env.rb +0 -15
  345. data/examples/sinatra/views/add.erb +0 -7
  346. data/examples/sinatra/views/layout.erb +0 -8
  347. data/examples/tcl/README.textile +0 -11
  348. data/examples/tcl/Rakefile +0 -6
  349. data/examples/tcl/features/fibonnacci.feature +0 -17
  350. data/examples/tcl/features/step_definitions/fib_steps.rb +0 -7
  351. data/examples/tcl/features/support/env.rb +0 -7
  352. data/examples/tcl/src/fib.tcl +0 -3
  353. data/examples/test_unit/Gemfile +0 -4
  354. data/examples/test_unit/Rakefile +0 -6
  355. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -20
  356. data/examples/test_unit/features/test_unit.feature +0 -9
  357. data/examples/watir/README.textile +0 -16
  358. data/examples/watir/Rakefile +0 -12
  359. data/examples/watir/cucumber.yml +0 -1
  360. data/examples/watir/features/search.feature +0 -12
  361. data/examples/watir/features/step_definitions/search_steps.rb +0 -27
  362. data/examples/watir/features/support/env.rb +0 -39
  363. data/examples/watir/features/support/screenshots.rb +0 -47
  364. data/features/docs/api/list_step_defs_as_json.feature +0 -64
  365. data/features/docs/api/listen_for_events.feature +0 -59
  366. data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -27
  367. data/features/docs/cli/backtraces.feature +0 -36
  368. data/features/docs/cli/dry_run.feature +0 -73
  369. data/features/docs/cli/exclude_files.feature +0 -18
  370. data/features/docs/cli/execute_with_tag_filter.feature +0 -119
  371. data/features/docs/cli/fail_fast.feature +0 -48
  372. data/features/docs/cli/finding_steps.feature +0 -28
  373. data/features/docs/cli/help.feature +0 -8
  374. data/features/docs/cli/i18n.feature +0 -42
  375. data/features/docs/cli/randomize.feature +0 -140
  376. data/features/docs/cli/require.feature +0 -27
  377. data/features/docs/cli/retry_failing_tests.feature +0 -92
  378. data/features/docs/cli/run_scenarios_matching_name.feature +0 -105
  379. data/features/docs/cli/run_specific_scenarios.feature +0 -77
  380. data/features/docs/cli/showing_differences.feature +0 -43
  381. data/features/docs/cli/specifying_multiple_formatters.feature +0 -68
  382. data/features/docs/cli/strict_mode.feature +0 -70
  383. data/features/docs/defining_steps/ambiguous_steps.feature +0 -89
  384. data/features/docs/defining_steps/nested_steps.feature +0 -181
  385. data/features/docs/defining_steps/nested_steps_i18n.feature +0 -37
  386. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -56
  387. data/features/docs/defining_steps/one_line_step_definitions.feature +0 -65
  388. data/features/docs/defining_steps/printing_messages.feature +0 -147
  389. data/features/docs/defining_steps/skip_scenario.feature +0 -31
  390. data/features/docs/defining_steps/snippets.feature +0 -56
  391. data/features/docs/defining_steps/table_diffing.feature +0 -50
  392. data/features/docs/events/gherkin_source_read_event.feature +0 -43
  393. data/features/docs/events/step_activated_event.feature +0 -36
  394. data/features/docs/events/step_definition_registered_event.feature +0 -29
  395. data/features/docs/events/test_case_finished_event.feature +0 -35
  396. data/features/docs/events/test_case_started_event.feature +0 -54
  397. data/features/docs/events/test_run_finished_event.feature +0 -40
  398. data/features/docs/events/test_run_started_event.feature +0 -41
  399. data/features/docs/events/test_step_finished_event.feature +0 -47
  400. data/features/docs/events/test_step_started_event.feature +0 -43
  401. data/features/docs/exception_in_after_hook.feature +0 -127
  402. data/features/docs/exception_in_after_step_hook.feature +0 -104
  403. data/features/docs/exception_in_around_hook.feature +0 -80
  404. data/features/docs/exception_in_before_hook.feature +0 -98
  405. data/features/docs/extending_cucumber/custom_filter.feature +0 -29
  406. data/features/docs/extending_cucumber/custom_formatter.feature +0 -94
  407. data/features/docs/formatters/api_methods.feature +0 -37
  408. data/features/docs/formatters/html_formatter.feature +0 -91
  409. data/features/docs/formatters/json_formatter.feature +0 -767
  410. data/features/docs/formatters/junit_formatter.feature +0 -455
  411. data/features/docs/formatters/pretty_formatter.feature +0 -74
  412. data/features/docs/formatters/progress_formatter.feature +0 -32
  413. data/features/docs/formatters/rerun_formatter.feature +0 -190
  414. data/features/docs/formatters/summary_formatter.feature +0 -35
  415. data/features/docs/formatters/usage_formatter.feature +0 -101
  416. data/features/docs/getting_started.feature +0 -28
  417. data/features/docs/gherkin/background.feature +0 -548
  418. data/features/docs/gherkin/doc_strings.feature +0 -76
  419. data/features/docs/gherkin/expand_option_for_outlines.feature +0 -47
  420. data/features/docs/gherkin/language_from_header.feature +0 -32
  421. data/features/docs/gherkin/outlines.feature +0 -158
  422. data/features/docs/gherkin/unicode_table.feature +0 -33
  423. data/features/docs/gherkin/using_descriptions.feature +0 -83
  424. data/features/docs/gherkin/using_star_notation.feature +0 -37
  425. data/features/docs/iso-8859-1.feature +0 -6
  426. data/features/docs/post_configuration_hook.feature +0 -33
  427. data/features/docs/profiles.feature +0 -120
  428. data/features/docs/rake_task.feature +0 -146
  429. data/features/docs/raketask.feature +0 -46
  430. data/features/docs/work_in_progress.feature +0 -157
  431. data/features/docs/writing_support_code/after_hooks.feature +0 -102
  432. data/features/docs/writing_support_code/after_step_hooks.feature +0 -55
  433. data/features/docs/writing_support_code/around_hooks.feature +0 -266
  434. data/features/docs/writing_support_code/before_hook.feature +0 -66
  435. data/features/docs/writing_support_code/hook_order.feature +0 -63
  436. data/features/docs/writing_support_code/load_path.feature +0 -17
  437. data/features/docs/writing_support_code/parameter_types.feature +0 -69
  438. data/features/docs/writing_support_code/state.feature +0 -32
  439. data/features/docs/writing_support_code/tagged_hooks.feature +0 -95
  440. data/features/docs/writing_support_code/world.feature +0 -129
  441. data/features/lib/step_definitions/aruba_steps.rb +0 -21
  442. data/features/lib/step_definitions/cli_steps.rb +0 -4
  443. data/features/lib/step_definitions/cucumber_steps.rb +0 -75
  444. data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -16
  445. data/features/lib/step_definitions/json_steps.rb +0 -8
  446. data/features/lib/step_definitions/junit_steps.rb +0 -14
  447. data/features/lib/step_definitions/language_steps.rb +0 -9
  448. data/features/lib/step_definitions/profile_steps.rb +0 -16
  449. data/features/lib/step_definitions/retry_steps.rb +0 -55
  450. data/features/lib/step_definitions/ruby_steps.rb +0 -4
  451. data/features/lib/support/env.rb +0 -22
  452. data/features/lib/support/fake_wire_server.rb +0 -94
  453. data/features/lib/support/feature_factory.rb +0 -68
  454. data/features/lib/support/normalise_output.rb +0 -52
  455. data/features/lib/support/parameter_types.rb +0 -5
  456. data/gem_tasks/contributors.rake +0 -19
  457. data/gem_tasks/cov.rake +0 -6
  458. data/gem_tasks/downloads.rb +0 -8
  459. data/gem_tasks/environment.rake +0 -4
  460. data/gem_tasks/examples.rake +0 -12
  461. data/gem_tasks/fix_cr_lf.rake +0 -22
  462. data/gem_tasks/flog.rake +0 -5
  463. data/gem_tasks/rspec.rake +0 -7
  464. data/gem_tasks/sass.rake +0 -5
  465. data/gem_tasks/stats +0 -16
  466. data/gem_tasks/versions.txt +0 -74
  467. data/scripts/invite-collaborator +0 -40
  468. data/scripts/update-changelog +0 -86
  469. data/spec/cucumber/cli/configuration_spec.rb +0 -446
  470. data/spec/cucumber/cli/main_spec.rb +0 -84
  471. data/spec/cucumber/cli/options_spec.rb +0 -445
  472. data/spec/cucumber/cli/profile_loader_spec.rb +0 -66
  473. data/spec/cucumber/cli/rerun_spec.rb +0 -86
  474. data/spec/cucumber/configuration_spec.rb +0 -148
  475. data/spec/cucumber/constantize_spec.rb +0 -20
  476. data/spec/cucumber/events_spec.rb +0 -9
  477. data/spec/cucumber/file_specs_spec.rb +0 -61
  478. data/spec/cucumber/filters/activate_steps_spec.rb +0 -152
  479. data/spec/cucumber/filters/gated_receiver_spec.rb +0 -48
  480. data/spec/cucumber/filters/retry_spec.rb +0 -98
  481. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +0 -39
  482. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +0 -58
  483. data/spec/cucumber/filters/tag_limits_spec.rb +0 -60
  484. data/spec/cucumber/formatter/ansicolor_spec.rb +0 -33
  485. data/spec/cucumber/formatter/backtrace_filter_spec.rb +0 -32
  486. data/spec/cucumber/formatter/console_counts_spec.rb +0 -14
  487. data/spec/cucumber/formatter/duration_spec.rb +0 -23
  488. data/spec/cucumber/formatter/fail_fast_spec.rb +0 -88
  489. data/spec/cucumber/formatter/html_spec.rb +0 -543
  490. data/spec/cucumber/formatter/interceptor_spec.rb +0 -137
  491. data/spec/cucumber/formatter/json_spec.rb +0 -815
  492. data/spec/cucumber/formatter/junit_spec.rb +0 -251
  493. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2175
  494. data/spec/cucumber/formatter/pretty_spec.rb +0 -907
  495. data/spec/cucumber/formatter/progress_spec.rb +0 -170
  496. data/spec/cucumber/formatter/rerun_spec.rb +0 -97
  497. data/spec/cucumber/formatter/spec_helper.rb +0 -84
  498. data/spec/cucumber/glue/proto_world_spec.rb +0 -63
  499. data/spec/cucumber/glue/registry_and_more_spec.rb +0 -213
  500. data/spec/cucumber/glue/snippet_spec.rb +0 -174
  501. data/spec/cucumber/glue/step_definition_spec.rb +0 -207
  502. data/spec/cucumber/hooks_spec.rb +0 -31
  503. data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -653
  504. data/spec/cucumber/project_initializer_spec.rb +0 -88
  505. data/spec/cucumber/rake/forked_spec.rb +0 -58
  506. data/spec/cucumber/rake/task_spec.rb +0 -86
  507. data/spec/cucumber/running_test_case_spec.rb +0 -140
  508. data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -8
  509. data/spec/cucumber/runtime/support_code_spec.rb +0 -17
  510. data/spec/cucumber/runtime_spec.rb +0 -21
  511. data/spec/cucumber/sell_cucumbers.feature +0 -19
  512. data/spec/cucumber/step_argument_spec.rb +0 -19
  513. data/spec/cucumber/step_match_search_spec.rb +0 -113
  514. data/spec/cucumber/step_match_spec.rb +0 -86
  515. data/spec/cucumber/world/pending_spec.rb +0 -48
  516. data/spec/spec_helper.rb +0 -30
  517. data/spec/support/standard_step_actions.rb +0 -19
@@ -1,36 +0,0 @@
1
- Feature: Backtraces
2
-
3
- In order to discover errors quickly
4
- As a cuker
5
- I want to see backtraces for failures
6
-
7
- Background:
8
- Given a file named "features/failing_hard.feature" with:
9
- """
10
- Feature: Sample
11
- Scenario: Example
12
- Given failing
13
- """
14
-
15
- @jruby
16
- Scenario: Backtraces enabled
17
- Given a file named "features/step_definitions/steps.rb" with:
18
- """
19
- require 'java'
20
- java_import 'java.util.Collections'
21
-
22
- Given /^failing$/ do
23
- Collections.empty_list.add 1
24
- end
25
- """
26
- When I run `cucumber features/failing_hard.feature`
27
- Then it should fail with:
28
- """
29
- Feature: Sample
30
-
31
- Scenario: Example # features/failing_hard.feature:2
32
- Given failing # features/step_definitions/steps.rb:4
33
- (Java::JavaLang::UnsupportedOperationException)
34
- java.util.AbstractList.add(java/util/AbstractList.java:
35
- """
36
-
@@ -1,73 +0,0 @@
1
- Feature: Dry Run
2
-
3
- Dry run gives you a way to quickly scan your features without actually running them.
4
-
5
- - Invokes formatters without executing the steps.
6
- - This also omits the loading of your support/env.rb file if it exists.
7
-
8
- Scenario: With a failing step
9
- Given a file named "features/test.feature" with:
10
- """
11
- Feature: test
12
- Scenario:
13
- Given this step fails
14
- """
15
- And the standard step definitions
16
- When I run `cucumber --dry-run`
17
- Then it should pass with exactly:
18
- """
19
- Feature: test
20
-
21
- Scenario: # features/test.feature:2
22
- Given this step fails # features/step_definitions/steps.rb:4
23
-
24
- 1 scenario (1 skipped)
25
- 1 step (1 skipped)
26
-
27
- """
28
-
29
- Scenario: In strict mode
30
- Given a file named "features/test.feature" with:
31
- """
32
- Feature: test
33
- Scenario:
34
- Given this step fails
35
- """
36
- And the standard step definitions
37
- When I run `cucumber --dry-run --strict`
38
- Then it should pass with exactly:
39
- """
40
- Feature: test
41
-
42
- Scenario: # features/test.feature:2
43
- Given this step fails # features/step_definitions/steps.rb:4
44
-
45
- 1 scenario (1 skipped)
46
- 1 step (1 skipped)
47
-
48
- """
49
-
50
- Scenario: In strict mode with an undefined step
51
- Given a file named "features/test.feature" with:
52
- """
53
- Feature: test
54
- Scenario:
55
- Given this step is undefined
56
- """
57
- When I run `cucumber --dry-run --strict`
58
- Then it should fail with:
59
- """
60
- Feature: test
61
-
62
- Scenario: # features/test.feature:2
63
- Given this step is undefined # features/test.feature:3
64
- Undefined step: "this step is undefined" (Cucumber::Undefined)
65
- features/test.feature:3:in `Given this step is undefined'
66
-
67
- Undefined Scenarios:
68
- cucumber features/test.feature:2 # Scenario:
69
-
70
- 1 scenario (1 undefined)
71
- 1 step (1 undefined)
72
-
73
- """
@@ -1,18 +0,0 @@
1
- Feature: Excluding ruby and feature files from runs
2
-
3
- Developers are able to easily exclude files from cucumber runs
4
- This is a nice feature to have in conjunction with profiles, so you can exclude
5
- certain environment files from certain runs.
6
-
7
- Scenario: exclude ruby files
8
- Given an empty file named "features/support/dont_require_me.rb"
9
- And an empty file named "features/step_definitions/fooz.rb"
10
- And an empty file named "features/step_definitions/foof.rb"
11
- And an empty file named "features/step_definitions/foot.rb"
12
- And an empty file named "features/support/require_me.rb"
13
- When I run `cucumber features -q --verbose --exclude features/support/dont --exclude foo[zf]`
14
- Then "features/support/require_me.rb" should be required
15
- And "features/step_definitions/foot.rb" should be required
16
- And "features/support/dont_require_me.rb" should not be required
17
- And "features/step_definitions/foof.rb" should not be required
18
- And "features/step_definitions/fooz.rb" should not be required
@@ -1,119 +0,0 @@
1
- Feature: Tag logic
2
- In order to conveniently run subsets of features
3
- As a Cuker
4
- I want to select features using logical AND/OR of tags
5
-
6
- Background:
7
- Given a file named "features/test.feature" with:
8
- """
9
- @feature
10
- Feature: Sample
11
-
12
- @one @three
13
- Scenario: Example
14
- Given passing
15
-
16
- @one
17
- Scenario: Another Example
18
- Given passing
19
-
20
- @three
21
- Scenario: Yet another Example
22
- Given passing
23
-
24
- @ignore
25
- Scenario: And yet another Example
26
- Given passing
27
- """
28
-
29
- Scenario: ANDing tags
30
- When I run `cucumber -q -t '@one and @three' features/test.feature`
31
- Then it should pass with:
32
- """
33
- @feature
34
- Feature: Sample
35
-
36
- @one @three
37
- Scenario: Example
38
- Given passing
39
-
40
- 1 scenario (1 undefined)
41
- 1 step (1 undefined)
42
-
43
- """
44
-
45
- Scenario: ORing tags
46
- When I run `cucumber -q -t '@one or @three' features/test.feature`
47
- Then it should pass with:
48
- """
49
- @feature
50
- Feature: Sample
51
-
52
- @one @three
53
- Scenario: Example
54
- Given passing
55
-
56
- @one
57
- Scenario: Another Example
58
- Given passing
59
-
60
- @three
61
- Scenario: Yet another Example
62
- Given passing
63
-
64
- 3 scenarios (3 undefined)
65
- 3 steps (3 undefined)
66
-
67
- """
68
-
69
- Scenario: Negative tags
70
- When I run `cucumber -q -t 'not @three' features/test.feature`
71
- Then it should pass with:
72
- """
73
- @feature
74
- Feature: Sample
75
-
76
- @one
77
- Scenario: Another Example
78
- Given passing
79
-
80
- @ignore
81
- Scenario: And yet another Example
82
- Given passing
83
-
84
- 2 scenarios (2 undefined)
85
- 2 steps (2 undefined)
86
- """
87
-
88
- Scenario: Run with limited tag count, blowing it on scenario
89
- When I run `cucumber -q --no-source --tags @one:1 features/test.feature`
90
- Then it fails before running features with:
91
- """
92
- @one occurred 2 times, but the limit was set to 1
93
- features/test.feature:5
94
- features/test.feature:9
95
- """
96
-
97
- Scenario: Run with limited tag count, blowing it via feature inheritance
98
- When I run `cucumber -q --no-source --tags @feature:1 features/test.feature`
99
- Then it fails before running features with:
100
- """
101
- @feature occurred 4 times, but the limit was set to 1
102
- features/test.feature:5
103
- features/test.feature:9
104
- features/test.feature:13
105
- features/test.feature:17
106
- """
107
-
108
- Scenario: Run with limited tag count using negative tag, blowing it via a tag that is not run
109
- When I run `cucumber -q --no-source --tags 'not @one:1' features/test.feature`
110
- Then it fails before running features with:
111
- """
112
- @one occurred 2 times, but the limit was set to 1
113
- """
114
-
115
- Scenario: Limiting with tags which do not exist in the features
116
- Originally added to check [Lighthouse bug #464](https://rspec.lighthouseapp.com/projects/16211/tickets/464).
117
-
118
- When I run `cucumber -q -t @i_dont_exist features/test.feature`
119
- Then it should pass
@@ -1,48 +0,0 @@
1
- @spawn
2
- Feature: Fail fast
3
-
4
- The --fail-fast flag causes Cucumber to exit immediately after the first
5
- scenario fails.
6
-
7
- @todo-windows
8
- Scenario: When a scenario fails
9
- Given a file named "features/bad.feature" with:
10
- """
11
- Feature: Bad
12
- Scenario: Failing
13
- Given this step fails
14
- """
15
- And a file named "features/good.feature" with:
16
- """
17
- Feature: Good
18
- Scenario: Passing
19
- Given this step passes
20
- """
21
- And the standard step definitions
22
- When I run `cucumber --fail-fast`
23
- Then it should fail
24
- And the output should contain:
25
- """
26
- 1 scenario (1 failed)
27
- """
28
-
29
- @todo-windows
30
- Scenario: When all the scenarios pass
31
- Given a file named "features/first.feature" with:
32
- """
33
- Feature: first feature
34
- Scenario: foo first
35
- Given this step passes
36
- Scenario: bar first
37
- Given this step passes
38
- """
39
- And a file named "features/second.feature" with:
40
- """
41
- Feature: second
42
- Scenario: foo second
43
- Given this step passes
44
- Scenario: bar second
45
- Given this step passes
46
- """
47
- When I run `cucumber --fail-fast`
48
- Then it should pass
@@ -1,28 +0,0 @@
1
- Feature: Loading the steps users expect
2
- As a User
3
- In order to run features in subdirectories without having to pass extra options
4
- I want cucumber to load all step files
5
-
6
- Scenario:
7
- Given a file named "features/nesting/test.feature" with:
8
- """
9
- Feature: Feature in Subdirectory
10
- Scenario: A step not in the subdirectory
11
- Given not found in subdirectory
12
- """
13
- And a file named "features/step_definitions/steps_no_in_subdirectory.rb" with:
14
- """
15
- Given(/^not found in subdirectory$/) { }
16
- """
17
- When I run `cucumber -q features/nesting/test.feature`
18
- Then it should pass with:
19
- """
20
- Feature: Feature in Subdirectory
21
-
22
- Scenario: A step not in the subdirectory
23
- Given not found in subdirectory
24
-
25
- 1 scenario (1 passed)
26
- 1 step (1 passed)
27
- """
28
-
@@ -1,8 +0,0 @@
1
- Feature: Help
2
-
3
- Running `cucumber --help` shows you command-line options.
4
-
5
- Scenario: Show help
6
- When I run `cucumber --help`
7
- Then it should pass
8
- And I should see the CLI help
@@ -1,42 +0,0 @@
1
- @needs-many-fonts
2
- Feature: i18n
3
-
4
- It's possible to ask cucumber which keywords are used for any
5
- particular language by running:
6
-
7
- `cucumber --i18n-keywords <LANG>`
8
-
9
- This will print a table showing all the different words we use for
10
- that language, to allow you to easily write features in any language
11
- you choose.
12
-
13
- Scenario: Get help for Portuguese language
14
- When I run `cucumber --i18n-keywords pt`
15
- Then it should pass with:
16
- """
17
- | feature | "Funcionalidade", "Característica", "Caracteristica" |
18
- | background | "Contexto", "Cenário de Fundo", "Cenario de Fundo", "Fundo" |
19
- | scenario | "Cenário", "Cenario" |
20
- | scenario_outline | "Esquema do Cenário", "Esquema do Cenario", "Delineação do Cenário", "Delineacao do Cenario" |
21
- | examples | "Exemplos", "Cenários", "Cenarios" |
22
- | given | "* ", "Dado ", "Dada ", "Dados ", "Dadas " |
23
- | when | "* ", "Quando " |
24
- | then | "* ", "Então ", "Entao " |
25
- | and | "* ", "E " |
26
- | but | "* ", "Mas " |
27
- | given (code) | "Dado", "Dada", "Dados", "Dadas" |
28
- | when (code) | "Quando" |
29
- | then (code) | "Então", "Entao" |
30
- | and (code) | "E" |
31
- | but (code) | "Mas" |
32
-
33
- """
34
-
35
- Scenario: List languages
36
- When I run `cucumber --i18n-languages`
37
- Then cucumber lists all the supported languages
38
-
39
- Scenario: Seek help for invalid language
40
- When I run `cucumber --i18n-keywords foo`
41
- Then the output includes the message "Invalid language 'foo'"
42
- And cucumber lists all the supported languages
@@ -1,140 +0,0 @@
1
- Feature: Randomize
2
-
3
- Use the `--order random` switch to run scenarios in random order.
4
-
5
- This is especially helpful for detecting situations where you have state
6
- leaking between scenarios, which can cause flickering or fragile tests.
7
-
8
- If you do find a random run that exposes dependencies between your tests,
9
- you can reproduce that run by using the seed that's printed at the end of
10
- the test run.
11
-
12
- For a given seed, the order of scenarios is constant, i.e. if step A runs
13
- before step B, it will always run before step B even if other steps are
14
- skipped.
15
-
16
- Background:
17
- Given a file named "features/bad_practice_part_1.feature" with:
18
- """
19
- Feature: Bad practice, part 1
20
-
21
- Scenario: Set state
22
- Given I set some state
23
-
24
- Scenario: Depend on state from a preceding scenario
25
- When I depend on the state
26
- """
27
- And a file named "features/bad_practice_part_2.feature" with:
28
- """
29
- Feature: Bad practice, part 2
30
-
31
- Scenario: Depend on state from a preceding feature
32
- When I depend on the state
33
- """
34
- And a file named "features/unrelated.feature" with:
35
- """
36
- Feature: Unrelated
37
-
38
- @skipme
39
- Scenario: Do something unrelated
40
- When I do something
41
- """
42
- And a file named "features/step_definitions/steps.rb" with:
43
- """
44
- Given(/^I set some state$/) do
45
- $global_state = "set"
46
- end
47
-
48
- Given(/^I depend on the state$/) do
49
- raise "I expect the state to be set!" unless $global_state == "set"
50
- end
51
-
52
- Given(/^I do something$/) do
53
- end
54
- """
55
-
56
- Scenario: Run scenarios in order
57
- When I run `cucumber`
58
- Then it should pass
59
-
60
- @spawn @todo-windows
61
- Scenario: Run scenarios randomized
62
- When I run `cucumber --order random:41544 -q`
63
- Then it should fail
64
- And the stdout should contain exactly:
65
- """
66
- Feature: Bad practice, part 1
67
-
68
- Scenario: Depend on state from a preceding scenario
69
- When I depend on the state
70
- I expect the state to be set! (RuntimeError)
71
- ./features/step_definitions/steps.rb:6:in `/^I depend on the state$/'
72
- features/bad_practice_part_1.feature:7:in `When I depend on the state'
73
-
74
- Feature: Unrelated
75
-
76
- @skipme
77
- Scenario: Do something unrelated
78
- When I do something
79
-
80
- Feature: Bad practice, part 2
81
-
82
- Scenario: Depend on state from a preceding feature
83
- When I depend on the state
84
- I expect the state to be set! (RuntimeError)
85
- ./features/step_definitions/steps.rb:6:in `/^I depend on the state$/'
86
- features/bad_practice_part_2.feature:4:in `When I depend on the state'
87
-
88
- Feature: Bad practice, part 1
89
-
90
- Scenario: Set state
91
- Given I set some state
92
-
93
- Failing Scenarios:
94
- cucumber features/bad_practice_part_1.feature:6
95
- cucumber features/bad_practice_part_2.feature:3
96
-
97
- 4 scenarios (2 failed, 2 passed)
98
- 4 steps (2 failed, 2 passed)
99
-
100
- Randomized with seed 41544
101
-
102
- """
103
-
104
- @spawn @todo-windows
105
- Scenario: Run scenarios randomized with some skipped
106
- When I run `cucumber --tags ~@skipme --order random:41544 -q`
107
- Then it should fail
108
- And the stdout should contain exactly:
109
- """
110
- Feature: Bad practice, part 1
111
-
112
- Scenario: Depend on state from a preceding scenario
113
- When I depend on the state
114
- I expect the state to be set! (RuntimeError)
115
- ./features/step_definitions/steps.rb:6:in `/^I depend on the state$/'
116
- features/bad_practice_part_1.feature:7:in `When I depend on the state'
117
-
118
- Feature: Bad practice, part 2
119
-
120
- Scenario: Depend on state from a preceding feature
121
- When I depend on the state
122
- I expect the state to be set! (RuntimeError)
123
- ./features/step_definitions/steps.rb:6:in `/^I depend on the state$/'
124
- features/bad_practice_part_2.feature:4:in `When I depend on the state'
125
-
126
- Feature: Bad practice, part 1
127
-
128
- Scenario: Set state
129
- Given I set some state
130
-
131
- Failing Scenarios:
132
- cucumber features/bad_practice_part_1.feature:6
133
- cucumber features/bad_practice_part_2.feature:3
134
-
135
- 3 scenarios (2 failed, 1 passed)
136
- 3 steps (2 failed, 1 passed)
137
-
138
- Randomized with seed 41544
139
-
140
- """