cucumber 1.3.20 → 2.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.rspec +1 -1
  4. data/.travis.yml +1 -2
  5. data/CONTRIBUTING.md +9 -0
  6. data/Gemfile +9 -2
  7. data/History.md +26 -17
  8. data/LICENSE +2 -2
  9. data/README.md +4 -4
  10. data/Rakefile +12 -0
  11. data/bin/cucumber +1 -5
  12. data/bin/cuke +60 -0
  13. data/cucumber.gemspec +10 -15
  14. data/cucumber.yml +14 -26
  15. data/examples/i18n/ar/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  16. data/examples/i18n/bg/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  17. data/examples/i18n/ca/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  18. data/examples/i18n/cs/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  19. data/examples/i18n/da/features/{step_definitons → step_definitions}/lommeregner_steps.rb +0 -0
  20. data/examples/i18n/de/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  21. data/examples/{ramaze → i18n/el}/Rakefile +1 -1
  22. data/examples/i18n/el/features/addition.feature +17 -0
  23. data/examples/i18n/el/features/division.feature +10 -0
  24. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +24 -0
  25. data/examples/i18n/el/lib/calculator.rb +14 -0
  26. data/examples/i18n/en/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  27. data/examples/i18n/eo/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  28. data/examples/i18n/es/features/{step_definitons → step_definitions}/calculador_steps.rb +0 -0
  29. data/examples/i18n/fi/features/{step_definitons → step_definitions}/laskin_steps.rb +0 -0
  30. data/examples/i18n/fr/Rakefile +3 -1
  31. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +2 -2
  32. data/examples/i18n/he/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  33. data/examples/i18n/hi/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  34. data/examples/i18n/hu/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  35. data/examples/i18n/id/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  36. data/examples/i18n/it/features/{step_definitons → step_definitions}/calcolatrice_steps.rb +0 -0
  37. data/examples/i18n/ja/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  38. data/examples/i18n/ko/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  39. data/examples/i18n/lt/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  40. data/examples/i18n/lv/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  41. data/examples/i18n/no/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
  42. data/examples/i18n/pl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  43. data/examples/i18n/ro/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  44. data/examples/i18n/ru/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  45. data/examples/i18n/sk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  46. data/examples/i18n/sr-Cyrl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  47. data/examples/i18n/sr-Latn/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  48. data/examples/i18n/sv/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
  49. data/examples/i18n/tr/features/{step_definitons → step_definitions}/hesap_makinesi_adimlari.rb +0 -0
  50. data/examples/i18n/uk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  51. data/examples/i18n/uz/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  52. data/examples/i18n/zh-CN/features/{step_definitons → step_definitions}/calculator_steps.rb +4 -4
  53. data/examples/i18n/zh-TW/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
  54. data/{legacy_features → features/docs}/api/list_step_defs_as_json.feature +14 -14
  55. data/{legacy_features → features/docs}/api/run_cli_main_with_existing_runtime.feature +5 -10
  56. data/features/{backtraces.feature → docs/cli/backtraces.feature} +2 -2
  57. data/features/docs/cli/dry_run.feature +25 -0
  58. data/features/docs/cli/exclude_files.feature +19 -0
  59. data/features/docs/cli/execute_with_tag_filter.feature +117 -0
  60. data/features/docs/cli/randomize.feature +46 -0
  61. data/features/docs/cli/require.feature +27 -0
  62. data/features/docs/cli/run_scenarios_matching_name.feature +104 -0
  63. data/features/docs/cli/run_specific_scenarios.feature +113 -0
  64. data/features/docs/cli/showing_differences.feature +43 -0
  65. data/features/docs/cli/specifying_multiple_formatters.feature +44 -0
  66. data/features/docs/cli/strict_mode.feature +41 -0
  67. data/features/{nested_steps.feature → docs/defining_steps/nested_steps.feature} +3 -5
  68. data/features/{nested_steps_i18n.feature → docs/defining_steps/nested_steps_i18n.feature} +0 -2
  69. data/features/{nested_steps_with_second_arg.feature → docs/defining_steps/nested_steps_with_second_arg.feature} +0 -0
  70. data/features/{step_definitions.feature → docs/defining_steps/one_line_step_definitions.feature} +3 -3
  71. data/features/docs/defining_steps/printing_messages.feature +147 -0
  72. data/features/docs/defining_steps/skip_scenario.feature +33 -0
  73. data/features/docs/defining_steps/snippets.feature +41 -0
  74. data/{legacy_features → features/docs/defining_steps}/table_diffing.feature +15 -15
  75. data/features/{transforms.feature → docs/defining_steps/transforms.feature} +2 -2
  76. data/{legacy_features/exception_in_after_block.feature → features/docs/exception_in_after_hook.feature} +25 -26
  77. data/{legacy_features/exception_in_after_step_block.feature → features/docs/exception_in_after_step_hook.feature} +21 -24
  78. data/{legacy_features/exception_in_before_block.feature → features/docs/exception_in_before_hook.feature} +18 -20
  79. data/features/{custom_formatter.feature → docs/extending_cucumber/custom_formatter.feature} +3 -8
  80. data/features/{formatter_callbacks.feature → docs/extending_cucumber/formatter_callbacks.feature} +185 -4
  81. data/{legacy_features/listener_debugger_formatter.feature → features/docs/formatters/debug_formatter.feature} +13 -15
  82. data/features/{formatter_step_file_colon_line.feature → docs/formatters/formatter_step_file_colon_line.feature} +2 -4
  83. data/features/{html_formatter.feature → docs/formatters/html_formatter.feature} +10 -14
  84. data/features/{json_formatter.feature → docs/formatters/json_formatter.feature} +109 -247
  85. data/features/docs/formatters/junit_formatter.feature +275 -0
  86. data/features/{pretty_formatter.feature → docs/formatters/pretty_formatter.feature} +1 -1
  87. data/features/{progress_formatter.feature → docs/formatters/progress_formatter.feature} +1 -1
  88. data/features/docs/formatters/rerun_formatter.feature +135 -0
  89. data/features/docs/formatters/usage_formatter.feature +102 -0
  90. data/features/docs/getting_started.feature +27 -0
  91. data/features/{background.feature → docs/gherkin/background.feature} +149 -91
  92. data/features/{doc_strings.feature → docs/gherkin/doc_strings.feature} +1 -0
  93. data/features/docs/gherkin/expand_option_for_outlines.feature +46 -0
  94. data/features/docs/gherkin/language_from_header.feature +32 -0
  95. data/features/docs/gherkin/outlines.feature +154 -0
  96. data/features/docs/gherkin/unicode_table.feature +32 -0
  97. data/features/docs/gherkin/using_descriptions.feature +88 -0
  98. data/features/docs/gherkin/using_star_notation.feature +37 -0
  99. data/features/{iso-8859-1.feature → docs/iso-8859-1.feature} +0 -0
  100. data/{legacy_features → features/docs}/post_configuration_hook.feature +17 -18
  101. data/{legacy_features → features/docs}/profiles.feature +30 -36
  102. data/{legacy_features → features/docs}/rake_task.feature +30 -41
  103. data/features/{raketask.feature → docs/raketask.feature} +6 -13
  104. data/features/docs/report_called_undefined_steps.feature +57 -0
  105. data/{legacy_features → features/docs}/wire_protocol.feature +36 -31
  106. data/{legacy_features → features/docs}/wire_protocol_erb.feature +5 -6
  107. data/{legacy_features → features/docs}/wire_protocol_table_diffing.feature +14 -12
  108. data/{legacy_features → features/docs}/wire_protocol_tags.feature +6 -7
  109. data/{legacy_features → features/docs}/wire_protocol_timeouts.feature +6 -6
  110. data/{legacy_features → features/docs}/work_in_progress.feature +52 -54
  111. data/{legacy_features → features/docs/writing_support_code}/around_hooks.feature +25 -28
  112. data/features/docs/writing_support_code/before_hook.feature +61 -0
  113. data/features/docs/writing_support_code/hook_order.feature +61 -0
  114. data/features/{load_path.feature → docs/writing_support_code/load_path.feature} +3 -0
  115. data/features/docs/writing_support_code/state.feature +32 -0
  116. data/features/{tagged_hooks.feature → docs/writing_support_code/tagged_hooks.feature} +11 -13
  117. data/features/lib/step_definitions/aruba_steps.rb +22 -0
  118. data/features/lib/step_definitions/cucumber_steps.rb +50 -0
  119. data/features/{step_definitions → lib/step_definitions}/iso-8859-1_steps.rb +3 -15
  120. data/features/lib/step_definitions/json_steps.rb +7 -0
  121. data/features/lib/step_definitions/junit_steps.rb +13 -0
  122. data/features/lib/step_definitions/language_steps.rb +4 -5
  123. data/features/lib/step_definitions/profile_steps.rb +15 -0
  124. data/features/lib/step_definitions/ruby_steps.rb +3 -0
  125. data/{legacy_features → features/lib}/step_definitions/wire_steps.rb +16 -9
  126. data/features/lib/support/env.rb +21 -0
  127. data/{legacy_features → features/lib}/support/fake_wire_server.rb +0 -0
  128. data/features/{support → lib/support}/feature_factory.rb +1 -1
  129. data/features/lib/support/normalise_output.rb +33 -0
  130. data/gem_tasks/cov.rake +5 -0
  131. data/gem_tasks/cucumber.rake +1 -10
  132. data/gem_tasks/rspec.rake +0 -2
  133. data/gem_tasks/yard.rake +4 -1
  134. data/lib/cucumber.rb +1 -3
  135. data/lib/cucumber/cli/configuration.rb +30 -25
  136. data/lib/cucumber/cli/main.rb +13 -25
  137. data/lib/cucumber/cli/options.rb +15 -57
  138. data/lib/cucumber/configuration.rb +4 -0
  139. data/lib/cucumber/constantize.rb +7 -6
  140. data/lib/cucumber/core_ext/instance_exec.rb +7 -38
  141. data/lib/cucumber/core_ext/proc.rb +1 -1
  142. data/lib/cucumber/errors.rb +3 -1
  143. data/lib/cucumber/file_specs.rb +35 -0
  144. data/lib/cucumber/formatter/console.rb +32 -21
  145. data/lib/cucumber/formatter/debug.rb +5 -0
  146. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +8 -38
  147. data/lib/cucumber/formatter/html.rb +29 -21
  148. data/lib/cucumber/formatter/junit.rb +10 -7
  149. data/lib/cucumber/formatter/pretty.rb +2 -8
  150. data/lib/cucumber/formatter/rerun.rb +2 -3
  151. data/lib/cucumber/formatter/unicode.rb +8 -21
  152. data/lib/cucumber/formatter/usage.rb +65 -2
  153. data/lib/cucumber/language_support/language_methods.rb +1 -1
  154. data/lib/cucumber/mappings.rb +212 -0
  155. data/lib/cucumber/multiline_argument.rb +115 -0
  156. data/lib/cucumber/platform.rb +21 -22
  157. data/lib/cucumber/rake/task.rb +3 -54
  158. data/lib/cucumber/rb_support/rb_language.rb +2 -5
  159. data/lib/cucumber/rb_support/rb_world.rb +14 -19
  160. data/lib/cucumber/rb_support/snippet.rb +60 -19
  161. data/lib/cucumber/reports/legacy_formatter.rb +1279 -0
  162. data/lib/cucumber/runtime.rb +176 -26
  163. data/lib/cucumber/runtime/for_programming_languages.rb +10 -4
  164. data/lib/cucumber/runtime/gated_receiver.rb +21 -0
  165. data/lib/cucumber/runtime/support_code.rb +9 -7
  166. data/lib/cucumber/runtime/tag_limits.rb +15 -0
  167. data/lib/cucumber/runtime/tag_limits/filter.rb +31 -0
  168. data/lib/cucumber/runtime/tag_limits/test_case_index.rb +29 -0
  169. data/lib/cucumber/runtime/tag_limits/verifier.rb +57 -0
  170. data/lib/cucumber/runtime/user_interface.rb +4 -0
  171. data/lib/cucumber/step_match.rb +3 -3
  172. data/lib/cucumber/term/ansicolor.rb +1 -9
  173. data/lib/cucumber/wire_support/wire_language.rb +23 -9
  174. data/lib/cucumber/wire_support/wire_packet.rb +1 -1
  175. data/lib/cucumber/wire_support/wire_protocol/requests.rb +13 -5
  176. data/lib/cucumber/wire_support/wire_step_definition.rb +1 -8
  177. data/spec/cucumber/cli/configuration_spec.rb +151 -150
  178. data/spec/cucumber/cli/main_spec.rb +36 -99
  179. data/spec/cucumber/cli/options_spec.rb +238 -272
  180. data/spec/cucumber/cli/profile_loader_spec.rb +9 -8
  181. data/spec/cucumber/configuration_spec.rb +3 -3
  182. data/spec/cucumber/constantize_spec.rb +2 -1
  183. data/spec/cucumber/core_ext/proc_spec.rb +32 -43
  184. data/spec/cucumber/file_specs_spec.rb +41 -0
  185. data/spec/cucumber/formatter/ansicolor_spec.rb +11 -10
  186. data/spec/cucumber/formatter/debug_spec.rb +569 -0
  187. data/spec/cucumber/formatter/duration_spec.rb +6 -6
  188. data/spec/cucumber/formatter/html_spec.rb +53 -62
  189. data/spec/cucumber/formatter/interceptor_spec.rb +38 -31
  190. data/spec/cucumber/formatter/junit_spec.rb +34 -28
  191. data/spec/cucumber/formatter/pretty_spec.rb +238 -52
  192. data/spec/cucumber/formatter/progress_spec.rb +2 -2
  193. data/spec/cucumber/formatter/spec_helper.rb +23 -17
  194. data/spec/cucumber/rake/forked_spec.rb +13 -22
  195. data/spec/cucumber/rb_support/rb_language_spec.rb +76 -67
  196. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +63 -42
  197. data/spec/cucumber/rb_support/rb_transform_spec.rb +4 -3
  198. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +6 -4
  199. data/spec/cucumber/rb_support/snippet_spec.rb +42 -33
  200. data/spec/cucumber/reports/legacy_formatter_spec.rb +1750 -0
  201. data/spec/cucumber/runtime/for_programming_languages_spec.rb +11 -10
  202. data/spec/cucumber/runtime/gated_receiver_spec.rb +47 -0
  203. data/spec/cucumber/runtime/results_spec.rb +33 -26
  204. data/spec/cucumber/runtime/support_code_spec.rb +29 -29
  205. data/spec/cucumber/runtime/tag_limits/filter_spec.rb +59 -0
  206. data/spec/cucumber/runtime/tag_limits/test_case_index_spec.rb +38 -0
  207. data/spec/cucumber/runtime/tag_limits/verifier_spec.rb +57 -0
  208. data/spec/cucumber/runtime_spec.rb +39 -34
  209. data/spec/cucumber/step_match_spec.rb +30 -20
  210. data/spec/cucumber/wire_support/configuration_spec.rb +8 -5
  211. data/spec/cucumber/wire_support/connection_spec.rb +12 -8
  212. data/spec/cucumber/wire_support/wire_exception_spec.rb +14 -8
  213. data/spec/cucumber/wire_support/wire_language_spec.rb +8 -9
  214. data/spec/cucumber/wire_support/wire_packet_spec.rb +17 -13
  215. data/spec/cucumber/world/pending_spec.rb +36 -36
  216. data/spec/simplecov_setup.rb +18 -0
  217. data/spec/spec_helper.rb +3 -9
  218. metadata +298 -507
  219. data/.gitattributes +0 -1
  220. data/.ruby-version +0 -1
  221. data/examples/python/README.textile +0 -8
  222. data/examples/python/Rakefile +0 -4
  223. data/examples/python/features/fibonacci.feature +0 -19
  224. data/examples/python/features/step_definitions/fib_steps.py +0 -11
  225. data/examples/python/lib/fib.py +0 -7
  226. data/examples/ramaze/README.textile +0 -7
  227. data/examples/ramaze/app.rb +0 -21
  228. data/examples/ramaze/features/add.feature +0 -11
  229. data/examples/ramaze/features/step_definitions/add_steps.rb +0 -15
  230. data/examples/ramaze/features/support/env.rb +0 -32
  231. data/examples/ramaze/layout/default.html.erb +0 -8
  232. data/examples/ramaze/view/index.html.erb +0 -5
  233. data/examples/ruby2python/README.textile +0 -8
  234. data/examples/ruby2python/Rakefile +0 -4
  235. data/examples/ruby2python/features/fibonacci.feature +0 -19
  236. data/examples/ruby2python/features/step_definitions/fib_steps.rb +0 -7
  237. data/examples/ruby2python/features/support/env.rb +0 -21
  238. data/examples/ruby2python/lib/fib.py +0 -7
  239. data/examples/v8/Rakefile +0 -6
  240. data/examples/v8/features/fibonacci.feature +0 -43
  241. data/examples/v8/features/step_definitions/fib_steps.js +0 -49
  242. data/examples/v8/features/support/env.js +0 -14
  243. data/examples/v8/lib/fibonacci.js +0 -19
  244. data/features/.cucumber/stepdefs.json +0 -722
  245. data/features/assertions.feature +0 -73
  246. data/features/autoformat_profile_output.feature +0 -23
  247. data/features/before_hook.feature +0 -43
  248. data/features/bootstrap.feature +0 -26
  249. data/features/drb_server_integration.feature +0 -63
  250. data/features/execute_with_tag_filter.feature +0 -63
  251. data/features/parsing.feature +0 -18
  252. data/features/rerun_formatter.feature +0 -99
  253. data/features/run_specific_scenarios.feature +0 -47
  254. data/features/stats_formatters.feature +0 -73
  255. data/features/step_definitions/cucumber-features/cucumber_ruby_mappings.rb +0 -197
  256. data/features/step_definitions/cucumber_steps.rb +0 -57
  257. data/features/step_definitions/drb_steps.rb +0 -3
  258. data/features/support/env.rb +0 -57
  259. data/fixtures/json/features/background.feature +0 -7
  260. data/fixtures/json/features/embed.feature +0 -4
  261. data/fixtures/json/features/one_passing_one_failing.feature +0 -11
  262. data/fixtures/json/features/step_definitions/steps.rb +0 -32
  263. data/fixtures/json/features/tables.feature +0 -13
  264. data/fixtures/junit/features/one_passing_one_failing.feature +0 -8
  265. data/fixtures/junit/features/pending.feature +0 -7
  266. data/fixtures/junit/features/scenario_outline.feature +0 -9
  267. data/fixtures/junit/features/some_subdirectory/one_passing_one_failing.feature +0 -8
  268. data/fixtures/junit/features/step_definitions/steps.rb +0 -11
  269. data/fixtures/self_test/README.textile +0 -6
  270. data/fixtures/self_test/Rakefile +0 -6
  271. data/fixtures/self_test/features/call_undefined_step_from_step_def.feature +0 -7
  272. data/fixtures/self_test/features/failing_expectation.feature +0 -4
  273. data/fixtures/self_test/features/lots_of_undefined.feature +0 -8
  274. data/fixtures/self_test/features/multiline_name.feature +0 -27
  275. data/fixtures/self_test/features/outline_sample.feature +0 -15
  276. data/fixtures/self_test/features/sample.feature +0 -21
  277. data/fixtures/self_test/features/search_sample.feature +0 -32
  278. data/fixtures/self_test/features/step_definitions/sample_steps.rb +0 -84
  279. data/fixtures/self_test/features/support/bubble_256x256.png +0 -0
  280. data/fixtures/self_test/features/support/env.rb +0 -26
  281. data/fixtures/self_test/features/tags_sample.feature +0 -17
  282. data/fixtures/self_test/features/tons_of_cukes.feature +0 -52
  283. data/fixtures/self_test/features/undefined_multiline_args.feature +0 -12
  284. data/fixtures/self_test/list-of-features.txt +0 -1
  285. data/fixtures/steps_library/features/step_definitions/steps_lib1.rb +0 -8
  286. data/fixtures/steps_library/features/step_definitions/steps_lib2.rb +0 -8
  287. data/fixtures/tickets/Rakefile +0 -20
  288. data/fixtures/tickets/features.html +0 -138
  289. data/fixtures/tickets/features/172.feature +0 -28
  290. data/fixtures/tickets/features/177/1.feature +0 -28
  291. data/fixtures/tickets/features/177/2.feature +0 -20
  292. data/fixtures/tickets/features/177/3.feature +0 -18
  293. data/fixtures/tickets/features/180.feature +0 -7
  294. data/fixtures/tickets/features/229/tagged_hooks.feature +0 -8
  295. data/fixtures/tickets/features/229/tagged_hooks.rb +0 -14
  296. data/fixtures/tickets/features/236.feature +0 -13
  297. data/fixtures/tickets/features/241.feature +0 -12
  298. data/fixtures/tickets/features/246.feature +0 -4
  299. data/fixtures/tickets/features/248.feature +0 -11
  300. data/fixtures/tickets/features/270/back.feature +0 -14
  301. data/fixtures/tickets/features/270/back.steps.rb +0 -14
  302. data/fixtures/tickets/features/272/hooks.feature +0 -26
  303. data/fixtures/tickets/features/272/hooks_steps.rb +0 -53
  304. data/fixtures/tickets/features/279/py_string_indent.feature +0 -25
  305. data/fixtures/tickets/features/279/py_string_indent.steps.rb +0 -12
  306. data/fixtures/tickets/features/279/wrong.feature_ +0 -11
  307. data/fixtures/tickets/features/301/filter_background_tagged_hooks.feature +0 -6
  308. data/fixtures/tickets/features/301/filter_background_tagged_hooks_steps.rb +0 -12
  309. data/fixtures/tickets/features/306/only_background.feature +0 -4
  310. data/fixtures/tickets/features/around_timeout.feature +0 -6
  311. data/fixtures/tickets/features/gherkin_67.feature +0 -12
  312. data/fixtures/tickets/features/gherkin_68.feature +0 -4
  313. data/fixtures/tickets/features/half_manual.feature +0 -11
  314. data/fixtures/tickets/features/lib/eatting_machine.rb +0 -18
  315. data/fixtures/tickets/features/lib/pantry.rb +0 -20
  316. data/fixtures/tickets/features/scenario_outline.feature +0 -95
  317. data/fixtures/tickets/features/step_definitons/246_steps.rb +0 -3
  318. data/fixtures/tickets/features/step_definitons/248_steps.rb +0 -15
  319. data/fixtures/tickets/features/step_definitons/around_timeout_steps.rb +0 -9
  320. data/fixtures/tickets/features/step_definitons/half_manual_steps.rb +0 -11
  321. data/fixtures/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
  322. data/fixtures/tickets/features/step_definitons/tickets_steps.rb +0 -88
  323. data/fixtures/tickets/features/table_diffing.feature +0 -13
  324. data/fixtures/tickets/features/tickets.feature +0 -28
  325. data/legacy_features/README.md +0 -14
  326. data/legacy_features/announce.feature +0 -152
  327. data/legacy_features/bug_371.feature +0 -32
  328. data/legacy_features/bug_464.feature +0 -16
  329. data/legacy_features/bug_475.feature +0 -42
  330. data/legacy_features/bug_585_tab_indentation.feature +0 -22
  331. data/legacy_features/bug_600.feature +0 -73
  332. data/legacy_features/cucumber_cli.feature +0 -584
  333. data/legacy_features/cucumber_cli_outlines.feature +0 -117
  334. data/legacy_features/default_snippets.feature +0 -43
  335. data/legacy_features/diffing.feature +0 -25
  336. data/legacy_features/drb_server_integration.feature +0 -174
  337. data/legacy_features/exclude_files.feature +0 -20
  338. data/legacy_features/expand.feature +0 -60
  339. data/legacy_features/junit_formatter.feature +0 -214
  340. data/legacy_features/language_from_header.feature +0 -30
  341. data/legacy_features/multiline_names.feature +0 -44
  342. data/legacy_features/report_called_undefined_steps.feature +0 -35
  343. data/legacy_features/rerun_formatter.feature +0 -52
  344. data/legacy_features/simplest.feature +0 -11
  345. data/legacy_features/snippet.feature +0 -23
  346. data/legacy_features/snippets_when_using_star_keyword.feature +0 -38
  347. data/legacy_features/step_definitions/cucumber_steps.rb +0 -179
  348. data/legacy_features/step_definitions/extra_steps.rb +0 -2
  349. data/legacy_features/step_definitions/simplest_steps.rb +0 -3
  350. data/legacy_features/support/env.rb +0 -161
  351. data/legacy_features/support/env.rb.simplest +0 -7
  352. data/legacy_features/table_mapping.feature +0 -34
  353. data/legacy_features/transform.feature +0 -245
  354. data/legacy_features/unicode_table.feature +0 -35
  355. data/lib/README.rdoc +0 -12
  356. data/lib/cucumber/ast.rb +0 -30
  357. data/lib/cucumber/ast/background.rb +0 -116
  358. data/lib/cucumber/ast/comment.rb +0 -31
  359. data/lib/cucumber/ast/doc_string.rb +0 -61
  360. data/lib/cucumber/ast/empty_background.rb +0 -33
  361. data/lib/cucumber/ast/examples.rb +0 -49
  362. data/lib/cucumber/ast/feature.rb +0 -99
  363. data/lib/cucumber/ast/features.rb +0 -38
  364. data/lib/cucumber/ast/has_steps.rb +0 -74
  365. data/lib/cucumber/ast/location.rb +0 -41
  366. data/lib/cucumber/ast/multiline_argument.rb +0 -30
  367. data/lib/cucumber/ast/names.rb +0 -13
  368. data/lib/cucumber/ast/outline_table.rb +0 -194
  369. data/lib/cucumber/ast/scenario.rb +0 -103
  370. data/lib/cucumber/ast/scenario_outline.rb +0 -146
  371. data/lib/cucumber/ast/step.rb +0 -122
  372. data/lib/cucumber/ast/step_collection.rb +0 -92
  373. data/lib/cucumber/ast/step_invocation.rb +0 -196
  374. data/lib/cucumber/ast/table.rb +0 -738
  375. data/lib/cucumber/ast/tags.rb +0 -28
  376. data/lib/cucumber/ast/tree_walker.rb +0 -191
  377. data/lib/cucumber/ast/visitor.rb +0 -11
  378. data/lib/cucumber/broadcaster.rb +0 -13
  379. data/lib/cucumber/cli/drb_client.rb +0 -43
  380. data/lib/cucumber/feature_file.rb +0 -101
  381. data/lib/cucumber/formatter/ordered_xml_markup.rb +0 -24
  382. data/lib/cucumber/js_support/js_dsl.js +0 -57
  383. data/lib/cucumber/js_support/js_language.rb +0 -185
  384. data/lib/cucumber/js_support/js_snippets.rb +0 -27
  385. data/lib/cucumber/parser.rb +0 -2
  386. data/lib/cucumber/parser/gherkin_builder.rb +0 -284
  387. data/lib/cucumber/py_support/py_dsl.py +0 -10
  388. data/lib/cucumber/py_support/py_language.py +0 -10
  389. data/lib/cucumber/py_support/py_language.rb +0 -80
  390. data/lib/cucumber/step_mother.rb +0 -10
  391. data/spec/cucumber/ast/background_spec.rb +0 -122
  392. data/spec/cucumber/ast/doc_string_spec.rb +0 -40
  393. data/spec/cucumber/ast/feature_factory.rb +0 -72
  394. data/spec/cucumber/ast/feature_spec.rb +0 -63
  395. data/spec/cucumber/ast/features_spec.rb +0 -51
  396. data/spec/cucumber/ast/outline_table_spec.rb +0 -21
  397. data/spec/cucumber/ast/scenario_outline_spec.rb +0 -74
  398. data/spec/cucumber/ast/step_spec.rb +0 -68
  399. data/spec/cucumber/ast/table_spec.rb +0 -594
  400. data/spec/cucumber/ast/tree_walker_spec.rb +0 -19
  401. data/spec/cucumber/broadcaster_spec.rb +0 -15
  402. data/spec/cucumber/cli/drb_client_spec.rb +0 -76
  403. data/spec/cucumber/rake/rcov_spec.rb +0 -71
  404. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +0 -20
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 514eb451f10f568e1402ba020ee3ee6256032dca
4
+ data.tar.gz: 1e21fe76f4e75993ef5effa867cddc1f0ef823ef
5
+ SHA512:
6
+ metadata.gz: f6a83f29f65355640bd4df83bd8bcac5b086445318c76cf3250e7ae2db1aacdfe4b6753546f983111014b1536f7944176e959c9783cba9baa8a3305a3c745947
7
+ data.tar.gz: 996994c7adba08dc88ca282cd1e7de86095940ae3780fc032b3a58d7c44635674802989f2aaaf13cf99a1d84837c1d3ee3d85fc8c77d964eb227acab0f54a130
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color --backtrace
1
+ --color
@@ -1,9 +1,7 @@
1
1
  rvm:
2
- - 2.2
3
2
  - 2.1.0
4
3
  - 2.0.0
5
4
  - 1.9.3
6
- - 1.8.7
7
5
  - jruby-1.7.12
8
6
 
9
7
  # whitelist
@@ -11,6 +9,7 @@ branches:
11
9
  only:
12
10
  - master
13
11
  - v1.3.x-bugfix
12
+ - ruby-2-1-support
14
13
 
15
14
  notifications:
16
15
  email:
@@ -15,6 +15,12 @@ We appreciate that. But before you do, please learn our basic rules:
15
15
 
16
16
  This document is a guide for those maintaining Cucumber, and others who would like to submit patches.
17
17
 
18
+ ## WARNING
19
+
20
+ The master branch is the in-development branch for version 2.0 of Cucumber. This code is work in progress and some way off
21
+ release. If you have a minor change that you'd like released soon, we suggest submitting a pull request against the
22
+ `1.3.x-bugfix` branch.
23
+
18
24
  ## Note on Patches/Pull Requests
19
25
 
20
26
  * Fork the project. Make a branch for your change.
@@ -31,6 +37,8 @@ This document is a guide for those maintaining Cucumber, and others who would li
31
37
  bundle install
32
38
  bundle exec rake
33
39
 
40
+ To get code coverage results, run `bundle exec rake cov`
41
+
34
42
  ## Release Process
35
43
 
36
44
  * Bump the version number in `lib/cucumber/platform.rb`.
@@ -53,6 +61,7 @@ Current release managers:
53
61
  * Matt Wynne
54
62
  * Aslak Hellesøy
55
63
  * Oleg Sukhodolsky
64
+ * Steve Tooke
56
65
 
57
66
  To grant release karma, issue the following command:
58
67
 
data/Gemfile CHANGED
@@ -1,4 +1,11 @@
1
+ gem "cucumber-pro", "0.0.13", :group => :test
1
2
  source "https://rubygems.org"
2
3
  gemspec
3
-
4
- # gem 'gherkin', :path => '../gherkin'
4
+ unless ENV['CUCUMBER_USE_RELEASED_CORE']
5
+ core_path = File.expand_path("../../cucumber-ruby-core", __FILE__)
6
+ if File.exist?(core_path) && !ENV['CUCUMBER_USE_GIT_CORE']
7
+ gem 'cucumber-core', :path => core_path
8
+ else
9
+ gem 'cucumber-core', :git => "git://github.com/cucumber/cucumber-ruby-core.git"
10
+ end
11
+ end
data/History.md CHANGED
@@ -1,26 +1,35 @@
1
- ## [In Git](https://github.com/cucumber/cucumber/compare/v1.3.19...v1.3.x-bugfix)
1
+ ## [v2.0.0.pre (unreleased)](https://github.com/cucumber/cucumber/compare/v1.3.8...master)
2
2
 
3
- * Handle step output correctly for Scenario Outlines with the --expand option ([804](https://github.com/cucumber/cucumber/issues/804) @brasmusson)
4
- * Avoid writing JUnit results that have no testcases ([872](https://github.com/cucumber/cucumber/pull/872) @marxarelli)
3
+ Version 2.0 contains a major internal redesign, extracting the core logic of
4
+ parsing and executing tests into a [separate gem](https://github.com/cucumber/cucumber-ruby-core).
5
5
 
6
- ## [v1.3.19](https://github.com/cucumber/cucumber/compare/v1.3.18...v1.3.19)
6
+ Although we've tried to keep the API and behaviour consistent through this change,
7
+ there are bound to be differences our tests haven't picked up. We're still working through
8
+ a backlog of scenarios that are not yet passing. Run `cucumber -p wip` to see them
9
+ all.
7
10
 
8
- * Update multi_test dependency to prevent crashes on ruby 2.2 when no minitest
9
- or rspec available (@tooky)
10
- * Fixing the spaces in file paths in the rerun file causing the file list to be
11
- split incorrectly ([793](https://github.com/cucumber/cucumber/pull/793)
12
- @callahat)
11
+ ### New features
12
+
13
+ * Better snippet comment ([579](https://github.com/cucumber/cucumber/pull/579) Jeff Nyman)
14
+ * Random scenario ordering with `--order random`
15
+ * Embed plain text ([712](https://github.com/cucumber/cucumber/pull/712) @bingwei
16
+
17
+ ### Features removed
18
+
19
+ * Removed deprecated StepMother and Ast::Visitor classes (Matt Wynne)
20
+ * Remove support for i18n nested step methods (Matt Wynne)
21
+ * Remove experimental .js and .py support (Matt Wynne)
22
+ * Remove Ruby 1.8.7 support, including RCov
13
23
 
14
- ## [v1.3.18](https://github.com/cucumber/cucumber/compare/v1.3.17...v1.3.18)
24
+ ### API Changes
15
25
 
16
- * Ruby 2.2 support ([774](https://github.com/cucumber/cucumber/pull/774) @tricknotes)
26
+ * String arguments passed to step definitions are immutable (frozen). This is
27
+ to prevent garbled output in case an argument gets modified. If you need to
28
+ modify an argument, `dup` it first. (Aslak Hellesøy)
17
29
 
18
- ## [v1.3.17](https://github.com/cucumber/cucumber/compare/v1.3.16...v1.3.17)
30
+ ### Minor changes
19
31
 
20
- * Rescue ArgumentError on split so formatters don't fail due to bad encoding ([692](https://github.com/cucumber/cucumber/pull/692) Arthur Silva)
21
- * Support embedding images directly in HTML files ([696](https://github.com/cucumber/cucumber/pull/696) @brasmusson)
22
- * Support embedding images directly in Gherkin formatters ([695](https://github.com/cucumber/cucumber/pull/695) @brasmusson)
23
- * Fix JSON formatter output for expand mode ([700](https://github.com/cucumber/cucumber/pull/700) @brasmusson)
32
+ * Greek examples added ([497](https://github.com/cucumber/cucumber/issues/497) @rousisk)
24
33
 
25
34
  ## [v1.3.16](https://github.com/cucumber/cucumber/compare/v1.3.15...v1.3.16)
26
35
 
@@ -101,7 +110,7 @@
101
110
 
102
111
  ## [1.3.3](https://github.com/cucumber/cucumber/compare/v1.3.2...v1.3.3)
103
112
 
104
- * Fix compatability with MiniTest 5.0 ([#456](https://github.com/.cucumber/cucumber/issues/456) Matt Wynne)
113
+ * Fix compatability with MiniTest 5.0 ([#456](https://github.com/cucumber/cucumber/issues/456) Matt Wynne)
105
114
  * Warn that Spork support is broken (Steve Tooke)
106
115
  * Fix error with Ruby 2.0.0 and `Cucumber::RUBY_1_8_7`
107
116
  ([#492](https://github.com/cucumber/cucumber/issues/492) Matt Wynne)
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2008,2009,2010,2011,2012 Aslak Hellesøy
3
+ Copyright (c) 2008-2013 Aslak Hellesøy
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
- [![Build Status](https://secure.travis-ci.org/cucumber/cucumber.png)](http://travis-ci.org/cucumber/cucumber) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/cucumber/cucumber)
1
+ [![Build Status](https://secure.travis-ci.org/cucumber/cucumber.png)](http://travis-ci.org/cucumber/cucumber) [![Code Climate](https://codeclimate.com/github/cucumber/cucumber.png)](https://codeclimate.com/github/cucumber/cucumber) [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber/badge.png?branch=master)](https://coveralls.io/r/cucumber/cucumber?branch=master) [![Dependency Status](https://gemnasium.com/cucumber/cucumber.png)](https://gemnasium.com/cucumber/cucumber)
2
2
 
3
3
  # Cucumber
4
4
 
5
- Cucumber is a tool for running automated tests written in plan language. Because they're
6
- written in plan language, they can be read by anyone on your team. Because they can be
5
+ Cucumber is a tool for running automated tests written in plain language. Because they're
6
+ written in plain language, they can be read by anyone on your team. Because they can be
7
7
  read by anyone, you can use them to help improve communication, collaboration and trust on
8
8
  your team.
9
9
 
@@ -19,4 +19,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for info on contributing to Cucumber.
19
19
 
20
20
  ## Copyright
21
21
 
22
- Copyright (c) 2008,2009,2010,2011,2012,2013 Aslak Hellesøy and Contributors. See LICENSE for details.
22
+ Copyright (c) 2008-2013 Aslak Hellesøy and Contributors. See LICENSE for details.
data/Rakefile CHANGED
@@ -6,7 +6,19 @@ Bundler::GemHelper.install_tasks
6
6
  $:.unshift(File.dirname(__FILE__) + '/lib')
7
7
  Dir['gem_tasks/**/*.rake'].each { |rake| load rake }
8
8
 
9
+ task :release => 'api:doc'
10
+
9
11
  task :default => [:spec, :cucumber]
10
12
 
13
+ if ENV['TRAVIS']
14
+ ENV['SIMPLECOV'] = 'ci'
15
+ ENV['JRUBY_OPTS'] = [ENV['JRUBY_OPTS'], '--debug'].compact.join(' ')
16
+
17
+ require 'coveralls/rake/task'
18
+ Coveralls::RakeTask.new
19
+
20
+ task :default => [:spec, :cucumber, 'coveralls:push']
21
+ end
22
+
11
23
  require 'rake/clean'
12
24
  CLEAN.include %w(**/*.{log,pyc,rbc,tgz} doc)
@@ -1,11 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
3
3
 
4
- if(ENV['SIMPLECOV'] && RUBY_VERSION =~ /1\.9/)
5
- require 'simplecov'
6
- SimpleCov.root(File.expand_path(File.dirname(__FILE__) + '/..'))
7
- SimpleCov.start
8
- end
4
+ load File.expand_path(File.dirname(__FILE__) + '/../spec/simplecov_setup.rb')
9
5
 
10
6
  require 'cucumber/rspec/disable_option_parser'
11
7
  require 'cucumber/cli/main'
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+ $: << File.dirname(__FILE__) + '/../lib'
4
+ $: << File.dirname(__FILE__) + '/../../cucumber-ruby-core/lib'
5
+
6
+ require 'cucumber/platform'
7
+
8
+ module Cucumber
9
+
10
+ features_glob = ARGV[0] || 'features/**/*.feature'
11
+ feature_files = Dir[features_glob].reject { |f| f =~ /iso-8859-1/ }
12
+ puts "Running features:"
13
+ p feature_files
14
+
15
+ require 'cucumber/core'
16
+ extend Cucumber::Core
17
+
18
+ require 'cucumber/core/gherkin/document'
19
+ features = feature_files.map do |file|
20
+ Cucumber::Core::Gherkin::Document.new(file, File.read(file))
21
+ end
22
+
23
+ require 'cucumber/mappings'
24
+ mappings = Mappings.new
25
+
26
+ require 'cucumber/formatter/report_adapter'
27
+ require 'cucumber/formatter/progress'
28
+ require 'cucumber/formatter/pretty'
29
+ formatter_options = {
30
+ skip_profile_information: true,
31
+ source: true,
32
+ }
33
+ formatter = Cucumber::Formatter::Pretty.new(mappings.runtime, STDOUT, formatter_options)
34
+ report = Cucumber::Formatter::ReportAdapter.new(mappings.runtime, formatter)
35
+
36
+ DebugReport = Class.new do
37
+ def before_test_case(test_case)
38
+ puts
39
+ puts test_case.inspect
40
+ end
41
+
42
+ def after_test_case(test_case, result)
43
+ end
44
+
45
+ def before_test_step(test_step)
46
+ puts ' ' + test_step.inspect
47
+ end
48
+
49
+ def after_test_step(test_step, result)
50
+ end
51
+
52
+ def after_suite
53
+ end
54
+ end
55
+ #report = DebugReport.new
56
+
57
+ require 'cucumber/core/test/tag_filter'
58
+ execute features, mappings, report, [[Cucumber::Core::Test::TagFilter, ['~@jruby']]]
59
+ report.after_suite
60
+ end
@@ -9,24 +9,25 @@ Gem::Specification.new do |s|
9
9
  s.description = 'Behaviour Driven Development with elegance and joy'
10
10
  s.summary = "cucumber-#{s.version}"
11
11
  s.email = 'cukes@googlegroups.com'
12
+ s.license = 'MIT'
12
13
  s.homepage = "http://cukes.info"
13
-
14
14
  s.platform = Gem::Platform::RUBY
15
+ s.required_ruby_version = ">= 1.9.3"
15
16
 
17
+ s.add_dependency 'cucumber-core', '~> 1.0.0.beta.1'
16
18
  s.add_dependency 'builder', '>= 2.1.2'
17
19
  s.add_dependency 'diff-lcs', '>= 1.1.3'
18
20
  s.add_dependency 'gherkin', '~> 2.12'
19
21
  s.add_dependency 'multi_json', '>= 1.7.5', '< 2.0'
20
- s.add_dependency 'multi_test', '>= 0.1.2'
22
+ s.add_dependency 'multi_test', '>= 0.1.1'
21
23
 
22
- s.add_development_dependency 'aruba', '= 0.5.2'
24
+ s.add_development_dependency 'aruba', '~> 0.5.3'
23
25
  s.add_development_dependency 'json', '~> 1.7'
24
- s.add_development_dependency 'nokogiri', '~> 1.5.2'
25
- s.add_development_dependency 'rake', '>= 0.9.2', '< 10.2'
26
- s.add_development_dependency 'rspec', '~> 2'
27
- s.add_development_dependency 'test-unit'
26
+ s.add_development_dependency 'nokogiri', '~> 1.5'
27
+ s.add_development_dependency 'rake', '>= 0.9.2'
28
+ s.add_development_dependency 'rspec', '>= 3.0'
28
29
  s.add_development_dependency 'simplecov', '>= 0.6.2'
29
- s.add_development_dependency 'spork', '>= 1.0.0.rc2'
30
+ s.add_development_dependency 'coveralls', '~> 0.7'
30
31
  s.add_development_dependency 'syntax', '>= 1.0.0'
31
32
 
32
33
  # For Documentation:
@@ -35,15 +36,9 @@ Gem::Specification.new do |s|
35
36
  s.add_development_dependency 'yard', '~> 0.8.0'
36
37
 
37
38
  # Needed for examples (rake examples)
38
- s.add_development_dependency 'capybara', '>= 1.1.2', '< 2.1'
39
+ s.add_development_dependency 'capybara', '>= 2.1'
39
40
  s.add_development_dependency 'rack-test', '>= 0.6.1'
40
- s.add_development_dependency 'ramaze'
41
41
  s.add_development_dependency 'sinatra', '>= 1.3.2'
42
- s.add_development_dependency 'webrat', '>= 0.7.3'
43
-
44
- # Needed for ruby 1.8.7 support v1.3.x
45
- s.add_development_dependency 'mime-types', '< 2.0'
46
- s.add_development_dependency 'rubyzip', '< 1.0'
47
42
 
48
43
  s.rubygems_version = ">= 1.6.1"
49
44
  s.files = `git ls-files`.split("\n").reject {|path| path =~ /\.gitignore$/ }
@@ -1,32 +1,20 @@
1
1
  <%
2
+ cucumber_pro_opts = ENV['ENABLE_CUCUMBER_PRO'] ? "--format Cucumber::Pro --out /dev/null" : ""
2
3
  rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
4
  rerun_opts = rerun.to_s.strip.empty? ? "--format progress features" : "--format pretty #{rerun}"
4
- std_opts = "--format progress features --tags ~@wip"
5
+ std_opts = "--format progress features --tags ~@wip --tag ~@wip-new-core -r features --strict #{cucumber_pro_opts}"
5
6
  std_opts << " --tags ~@wip-jruby" if defined?(JRUBY_VERSION)
6
- begin
7
- require 'rspec/expectations'
8
- std_opts << ' --tags ~@rspec1'
9
- rescue LoadError
10
- # rspec 1
11
- std_opts << ' --tags ~@rspec2'
12
- end
13
- wip_opts = "--color --tags @wip:3"
14
- wip_opts << ",@wip-jruby:3" if defined?(JRUBY_VERSION)
15
7
 
16
- legacy_opts = ''
17
- legacy_opts << " --tags ~@wire" if defined?(JRUBY_VERSION)
18
- legacy_opts << " --tags ~@wip-jruby" if defined?(JRUBY_VERSION)
8
+ wip_opts = "--color -r features --tags @wip,@wip-new-core"
9
+ wip_opts << ",@wip-jruby" if defined?(JRUBY_VERSION)
19
10
  %>
20
- default: <%= std_opts %> --tags ~@jruby --dotcucumber features/.cucumber
21
- jruby: <%= std_opts %> --tags ~@spork --tags ~@wire
22
- jruby_win: <%= std_opts %> --tags ~@spork --tags ~@wire CUCUMBER_FORWARD_SLASH_PATHS=true
23
- windows_mri: <%= std_opts %> --tags ~@jruby --tags ~@spork --tags ~@wire --tags ~@needs-many-fonts CUCUMBER_FORWARD_SLASH_PATHS=true
24
- ruby_1_8_7: <%= std_opts %> --tags ~@jruby --tags ~@fails_on_1_8_7
25
- ruby_1_9: <%= std_opts %> --tags ~@jruby --tags ~@fails_on_1_9
26
- ruby_2_0: <%= std_opts %> --tags ~@jruby --tags ~@fails_on_1_9
27
- ruby_2_1: <%= std_opts %> --tags ~@jruby --tags ~@fails_on_1_9
28
- ruby_2_2: <%= std_opts %> --tags ~@jruby --tags ~@fails_on_1_9
29
- wip: --wip <%= wip_opts %> features
30
- none: --format pretty
31
- rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
32
- legacy: legacy_features -r legacy_features -f progress --tags ~@spork <%= legacy_opts %>
11
+ default: <%= std_opts %> --tags ~@jruby
12
+ jruby: <%= std_opts %> --tags ~@wire
13
+ jruby_win: <%= std_opts %> --tags ~@wire CUCUMBER_FORWARD_SLASH_PATHS=true
14
+ windows_mri: <%= std_opts %> --tags ~@jruby --tags ~@wire --tags ~@needs-many-fonts CUCUMBER_FORWARD_SLASH_PATHS=true
15
+ ruby_1_9: <%= std_opts %> --tags ~@jruby
16
+ ruby_2_0: <%= std_opts %> --tags ~@jruby
17
+ ruby_2_1: <%= std_opts %> --tags ~@jruby
18
+ wip: --wip <%= wip_opts %> features <%= cucumber_pro_opts %>
19
+ none: --format pretty --format Cucumber::Pro --out /dev/null
20
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip --tag ~@wip-new-core <%= cucumber_pro_opts %>
@@ -1,4 +1,4 @@
1
- $:.unshift(File.dirname(__FILE__) + '/../../lib')
1
+ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
@@ -0,0 +1,17 @@
1
+ # language: el
2
+ Δυνατότητα: Πρόσθεση
3
+ Για να αποφεύγω χαζά λάθη
4
+ Ως πρωτάρης στα μαθηματικά
5
+ Θέλω να βλέπω το άθροισμα δύο αριθμών
6
+
7
+ Περιγραφή Σεναρίου: Πρόσθεση δύο αριθμών
8
+ Δεδομένου ότι έχω εισάγει <τελεστής_1> στην αριθμομηχανή
9
+ Και έχω εισάγει <τελεστής_2> στην αριθμομηχανή
10
+ Όταν πατάω <κουμπί>
11
+ Τότε το αποτέλεσμα στην οθόνη πρέπει να είναι <αποτέλεσμα>
12
+
13
+ Παραδείγματα:
14
+ | τελεστής_1 | τελεστής_2 | κουμπί | αποτέλεσμα |
15
+ | 20 | 30 | add | 50 |
16
+ | 2 | 5 | add | 7 |
17
+ | 0 | 40 | add | 40 |
@@ -0,0 +1,10 @@
1
+ # language: el
2
+ Δυνατότητα: Διαίρεση
3
+ Για να αποφευχθούν χαζά λάθη
4
+ Οι ταμίες θα πρέπει να μπορούν να υπολογίζουν κλάσματα
5
+
6
+ Σενάριο: Κανονικοί αριθμοί
7
+ Δεδομένου ότι έχω εισάγει 3 στην αριθμομηχανή
8
+ Και έχω εισάγει 2 στην αριθμομηχανή
9
+ Όταν πατάω divide
10
+ Τότε το αποτέλεσμα στην οθόνη πρέπει να είναι 1.5
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
3
+ require 'cucumber/formatter/unicode'
4
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
5
+ require 'calculator'
6
+
7
+ Before do
8
+ @calc = Calculator.new
9
+ end
10
+
11
+ After do
12
+ end
13
+
14
+ Δεδομένου ότι /έχω εισάγει (\d+) στην αριθμομηχανή/ do |n|
15
+ @calc.push n.to_i
16
+ end
17
+
18
+ Όταν /πατάω (\w+)/ do |op|
19
+ @result = @calc.send op
20
+ end
21
+
22
+ Τότε /το αποτέλεσμα στην οθόνη πρέπει να είναι (.*)/ do |result|
23
+ @result.should == result.to_f
24
+ end
@@ -0,0 +1,14 @@
1
+ class Calculator
2
+ def push(n)
3
+ @args ||= []
4
+ @args << n
5
+ end
6
+
7
+ def add
8
+ @args.inject(0){|n,sum| sum+=n}
9
+ end
10
+
11
+ def divide
12
+ @args[0].to_f / @args[1].to_f
13
+ end
14
+ end