dwaite-cucumber 0.3.101

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 (454) hide show
  1. data/History.txt +1067 -0
  2. data/License.txt +22 -0
  3. data/Manifest.txt +453 -0
  4. data/README.txt +4 -0
  5. data/Rakefile +9 -0
  6. data/bin/cucumber +17 -0
  7. data/config/hoe.rb +78 -0
  8. data/config/requirements.rb +15 -0
  9. data/cucumber.yml +2 -0
  10. data/examples/cs/README.textile +1 -0
  11. data/examples/cs/Rakefile +12 -0
  12. data/examples/cs/compile.bat +1 -0
  13. data/examples/cs/features/addition.feature +16 -0
  14. data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
  15. data/examples/cs/src/demo/Calculator.cs +20 -0
  16. data/examples/dos_line_endings/Rakefile +6 -0
  17. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
  18. data/examples/i18n/README.textile +18 -0
  19. data/examples/i18n/Rakefile +32 -0
  20. data/examples/i18n/ar/Rakefile +6 -0
  21. data/examples/i18n/ar/features/addition.feature +17 -0
  22. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
  23. data/examples/i18n/ar/lib/calculator.rb +11 -0
  24. data/examples/i18n/bg/Rakefile +6 -0
  25. data/examples/i18n/bg/features/addition.feature +12 -0
  26. data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
  27. data/examples/i18n/bg/features/division.feature +17 -0
  28. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  29. data/examples/i18n/bg/features/support/env.rb +6 -0
  30. data/examples/i18n/bg/features/support/world.rb +8 -0
  31. data/examples/i18n/bg/lib/calculator.rb +24 -0
  32. data/examples/i18n/cat/Rakefile +6 -0
  33. data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
  34. data/examples/i18n/cat/features/suma.feature +17 -0
  35. data/examples/i18n/cat/lib/calculadora.rb +16 -0
  36. data/examples/i18n/da/Rakefile +6 -0
  37. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +24 -0
  38. data/examples/i18n/da/features/summering.feature +18 -0
  39. data/examples/i18n/da/lib/kalkulator.rb +11 -0
  40. data/examples/i18n/de/Rakefile +6 -0
  41. data/examples/i18n/de/features/addition.feature +17 -0
  42. data/examples/i18n/de/features/division.feature +10 -0
  43. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
  44. data/examples/i18n/de/lib/calculator.rb +14 -0
  45. data/examples/i18n/en/Rakefile +6 -0
  46. data/examples/i18n/en/features/addition.feature +17 -0
  47. data/examples/i18n/en/features/division.feature +10 -0
  48. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
  49. data/examples/i18n/en/lib/calculator.rb +14 -0
  50. data/examples/i18n/en-lol/Rakefile +6 -0
  51. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  52. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  53. data/examples/i18n/en-lol/features/support/env.rb +8 -0
  54. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  55. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  56. data/examples/i18n/es/Rakefile +6 -0
  57. data/examples/i18n/es/features/adicion.feature +17 -0
  58. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
  59. data/examples/i18n/es/lib/calculador.rb +14 -0
  60. data/examples/i18n/et/Rakefile +6 -0
  61. data/examples/i18n/et/features/jagamine.feature +10 -0
  62. data/examples/i18n/et/features/liitmine.feature +17 -0
  63. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  64. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  65. data/examples/i18n/fi/Rakefile +6 -0
  66. data/examples/i18n/fi/features/jakolasku.feature +10 -0
  67. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  68. data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
  69. data/examples/i18n/fi/lib/laskin.rb +14 -0
  70. data/examples/i18n/fr/Rakefile +6 -0
  71. data/examples/i18n/fr/features/addition.feature +18 -0
  72. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +25 -0
  73. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  74. data/examples/i18n/he/Rakefile +6 -0
  75. data/examples/i18n/he/features/addition.feature +17 -0
  76. data/examples/i18n/he/features/division.feature +10 -0
  77. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  78. data/examples/i18n/he/lib/calculator.rb +14 -0
  79. data/examples/i18n/hu/Rakefile +6 -0
  80. data/examples/i18n/hu/features/addition.feature +17 -0
  81. data/examples/i18n/hu/features/division.feature +10 -0
  82. data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
  83. data/examples/i18n/hu/lib/calculator.rb +14 -0
  84. data/examples/i18n/id/Rakefile +6 -0
  85. data/examples/i18n/id/features/addition.feature +17 -0
  86. data/examples/i18n/id/features/division.feature +10 -0
  87. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  88. data/examples/i18n/id/lib/calculator.rb +14 -0
  89. data/examples/i18n/it/Rakefile +6 -0
  90. data/examples/i18n/it/features/somma.feature +11 -0
  91. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  92. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  93. data/examples/i18n/ja/Rakefile +6 -0
  94. data/examples/i18n/ja/features/addition.feature +17 -0
  95. data/examples/i18n/ja/features/division.feature +10 -0
  96. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
  97. data/examples/i18n/ja/lib/calculator.rb +14 -0
  98. data/examples/i18n/ko/Rakefile +6 -0
  99. data/examples/i18n/ko/features/addition.feature +17 -0
  100. data/examples/i18n/ko/features/division.feature +11 -0
  101. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  102. data/examples/i18n/ko/lib/calculator.rb +14 -0
  103. data/examples/i18n/lt/Rakefile +6 -0
  104. data/examples/i18n/lt/features/addition.feature +17 -0
  105. data/examples/i18n/lt/features/division.feature +10 -0
  106. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  107. data/examples/i18n/lt/lib/calculator.rb +14 -0
  108. data/examples/i18n/lv/Rakefile +6 -0
  109. data/examples/i18n/lv/features/addition.feature +17 -0
  110. data/examples/i18n/lv/features/division.feature +10 -0
  111. data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
  112. data/examples/i18n/lv/lib/calculator.rb +14 -0
  113. data/examples/i18n/no/Rakefile +6 -0
  114. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  115. data/examples/i18n/no/features/summering.feature +19 -0
  116. data/examples/i18n/no/features/support/env.rb +6 -0
  117. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  118. data/examples/i18n/pl/Rakefile +6 -0
  119. data/examples/i18n/pl/features/addition.feature +17 -0
  120. data/examples/i18n/pl/features/division.feature +10 -0
  121. data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
  122. data/examples/i18n/pl/features/support/env.rb +6 -0
  123. data/examples/i18n/pl/lib/calculator.rb +14 -0
  124. data/examples/i18n/pt/Rakefile +6 -0
  125. data/examples/i18n/pt/features/adicao.feature +11 -0
  126. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  127. data/examples/i18n/pt/features/support/env.rb +6 -0
  128. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  129. data/examples/i18n/ro/Rakefile +6 -0
  130. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
  131. data/examples/i18n/ro/features/suma.feature +11 -0
  132. data/examples/i18n/ro/lib/calculator.rb +11 -0
  133. data/examples/i18n/ru/Rakefile +6 -0
  134. data/examples/i18n/ru/features/addition.feature +11 -0
  135. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  136. data/examples/i18n/ru/features/division.feature +16 -0
  137. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  138. data/examples/i18n/ru/features/support/env.rb +6 -0
  139. data/examples/i18n/ru/features/support/world.rb +8 -0
  140. data/examples/i18n/ru/lib/calculator.rb +24 -0
  141. data/examples/i18n/se/Rakefile +6 -0
  142. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
  143. data/examples/i18n/se/features/summering.feature +18 -0
  144. data/examples/i18n/se/lib/kalkulator.rb +11 -0
  145. data/examples/i18n/sk/Rakefile +6 -0
  146. data/examples/i18n/sk/features/addition.feature +17 -0
  147. data/examples/i18n/sk/features/division.feature +10 -0
  148. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  149. data/examples/i18n/sk/lib/calculator.rb +14 -0
  150. data/examples/i18n/uz/Rakefile +6 -0
  151. data/examples/i18n/uz/features/addition.feature +10 -0
  152. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  153. data/examples/i18n/uz/features/division.feature +17 -0
  154. data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
  155. data/examples/i18n/uz/features/support/env.rb +6 -0
  156. data/examples/i18n/uz/features/support/world.rb +8 -0
  157. data/examples/i18n/uz/lib/calculator.rb +24 -0
  158. data/examples/i18n/zh-CN/Rakefile +6 -0
  159. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  160. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  161. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  162. data/examples/i18n/zh-TW/Rakefile +6 -0
  163. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  164. data/examples/i18n/zh-TW/features/division.feature +11 -0
  165. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  166. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  167. data/examples/java/README.textile +18 -0
  168. data/examples/java/build.xml +33 -0
  169. data/examples/java/features/hello.feature +11 -0
  170. data/examples/java/features/step_definitons/hello_steps.rb +23 -0
  171. data/examples/java/features/step_definitons/tree_steps.rb +14 -0
  172. data/examples/java/features/tree.feature +9 -0
  173. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  174. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  175. data/examples/junit/features/pending.feature +5 -0
  176. data/examples/junit/features/step_definitions/steps.rb +11 -0
  177. data/examples/pure_java/README.textile +5 -0
  178. data/examples/python/features/fibonacci.feature +19 -0
  179. data/examples/python/features/step_definitions/fib_steps.py +3 -0
  180. data/examples/python/features/step_definitions/fib_steps.rb +7 -0
  181. data/examples/python/features/support/env.rb +21 -0
  182. data/examples/python/lib/fib.py +7 -0
  183. data/examples/selenium/Rakefile +6 -0
  184. data/examples/selenium/features/search.feature +9 -0
  185. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  186. data/examples/selenium/features/support/env.rb +19 -0
  187. data/examples/selenium_webrat/Rakefile +6 -0
  188. data/examples/selenium_webrat/config.ru +0 -0
  189. data/examples/selenium_webrat/features/search.feature +9 -0
  190. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  191. data/examples/selenium_webrat/features/support/env.rb +45 -0
  192. data/examples/self_test/README.textile +6 -0
  193. data/examples/self_test/Rakefile +6 -0
  194. data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  195. data/examples/self_test/features/background/background_with_name.feature +7 -0
  196. data/examples/self_test/features/background/failing_background.feature +12 -0
  197. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  198. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  199. data/examples/self_test/features/background/passing_background.feature +10 -0
  200. data/examples/self_test/features/background/pending_background.feature +10 -0
  201. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  202. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  203. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  204. data/examples/self_test/features/failing_expectation.feature +4 -0
  205. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  206. data/examples/self_test/features/multiline_name.feature +27 -0
  207. data/examples/self_test/features/outline_sample.feature +15 -0
  208. data/examples/self_test/features/sample.feature +21 -0
  209. data/examples/self_test/features/search_sample.feature +32 -0
  210. data/examples/self_test/features/step_definitions/sample_steps.rb +93 -0
  211. data/examples/self_test/features/support/env.rb +24 -0
  212. data/examples/self_test/features/tags_sample.feature +17 -0
  213. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  214. data/examples/self_test/features/transform_sample.feature +10 -0
  215. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  216. data/examples/self_test/list-of-features.txt +1 -0
  217. data/examples/sinatra/README.textile +13 -0
  218. data/examples/sinatra/Rakefile +6 -0
  219. data/examples/sinatra/app.rb +14 -0
  220. data/examples/sinatra/features/add.feature +11 -0
  221. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  222. data/examples/sinatra/features/support/env.rb +32 -0
  223. data/examples/sinatra/views/add.erb +5 -0
  224. data/examples/sinatra/views/layout.erb +8 -0
  225. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  226. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  227. data/examples/test_unit/Rakefile +6 -0
  228. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  229. data/examples/test_unit/features/test_unit.feature +9 -0
  230. data/examples/tickets/Rakefile +16 -0
  231. data/examples/tickets/features/172.feature +28 -0
  232. data/examples/tickets/features/177/1.feature +29 -0
  233. data/examples/tickets/features/177/2.feature +21 -0
  234. data/examples/tickets/features/177/3.feature +18 -0
  235. data/examples/tickets/features/180.feature +7 -0
  236. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  237. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  238. data/examples/tickets/features/236.feature +13 -0
  239. data/examples/tickets/features/241.feature +13 -0
  240. data/examples/tickets/features/246.feature +4 -0
  241. data/examples/tickets/features/248.feature +11 -0
  242. data/examples/tickets/features/270/back.feature +14 -0
  243. data/examples/tickets/features/270/back.steps.rb +14 -0
  244. data/examples/tickets/features/272/hooks.feature +26 -0
  245. data/examples/tickets/features/272/hooks_steps.rb +53 -0
  246. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  247. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  248. data/examples/tickets/features/279/wrong.feature_ +11 -0
  249. data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  250. data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  251. data/examples/tickets/features/306/only_background.feature +4 -0
  252. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  253. data/examples/tickets/features/lib/pantry.rb +20 -0
  254. data/examples/tickets/features/scenario_outline.feature +95 -0
  255. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  256. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  257. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  258. data/examples/tickets/features/step_definitons/tickets_steps.rb +81 -0
  259. data/examples/tickets/features/table_diffing.feature +13 -0
  260. data/examples/tickets/features/tickets.feature +28 -0
  261. data/examples/watir/README.textile +16 -0
  262. data/examples/watir/Rakefile +6 -0
  263. data/examples/watir/features/search.feature +12 -0
  264. data/examples/watir/features/step_definitons/search_steps.rb +26 -0
  265. data/examples/watir/features/support/env.rb +32 -0
  266. data/features/background.feature +311 -0
  267. data/features/bug_371.feature +32 -0
  268. data/features/cucumber_cli.feature +667 -0
  269. data/features/cucumber_cli_diff_disabled.feature +54 -0
  270. data/features/cucumber_cli_outlines.feature +109 -0
  271. data/features/custom_formatter.feature +11 -0
  272. data/features/drb_server_integration.feature +173 -0
  273. data/features/exception_in_after_block.feature +102 -0
  274. data/features/exception_in_after_step_block.feature +104 -0
  275. data/features/exception_in_before_block.feature +47 -0
  276. data/features/exclude_files.feature +20 -0
  277. data/features/expand.feature +49 -0
  278. data/features/html_formatter/a.html +183 -0
  279. data/features/html_formatter.feature +7 -0
  280. data/features/junit_formatter.feature +89 -0
  281. data/features/language_from_header.feature +30 -0
  282. data/features/multiline_names.feature +43 -0
  283. data/features/post_configuration_hook.feature +37 -0
  284. data/features/profiles.feature +112 -0
  285. data/features/rake_task.feature +178 -0
  286. data/features/report_called_undefined_steps.feature +35 -0
  287. data/features/snippet.feature +22 -0
  288. data/features/step_definitions/cucumber_steps.rb +154 -0
  289. data/features/step_definitions/extra_steps.rb +2 -0
  290. data/features/steps_formatter.feature +25 -0
  291. data/features/support/env.rb +139 -0
  292. data/features/table_diffing.feature +45 -0
  293. data/features/transform.feature +24 -0
  294. data/features/unicode_table.feature +35 -0
  295. data/features/usage.feature +132 -0
  296. data/features/work_in_progress.feature +158 -0
  297. data/gem_tasks/contributors.rake +12 -0
  298. data/gem_tasks/deployment.rake +11 -0
  299. data/gem_tasks/environment.rake +7 -0
  300. data/gem_tasks/features.rake +11 -0
  301. data/gem_tasks/fix_cr_lf.rake +10 -0
  302. data/gem_tasks/flog.rake +4 -0
  303. data/gem_tasks/gemspec.rake +10 -0
  304. data/gem_tasks/rspec.rake +45 -0
  305. data/gem_tasks/sass.rake +4 -0
  306. data/gem_tasks/sdoc.rake +7 -0
  307. data/lib/README.rdoc +12 -0
  308. data/lib/autotest/cucumber.rb +6 -0
  309. data/lib/autotest/cucumber_mixin.rb +125 -0
  310. data/lib/autotest/cucumber_rails.rb +6 -0
  311. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  312. data/lib/autotest/cucumber_rspec.rb +6 -0
  313. data/lib/autotest/discover.rb +9 -0
  314. data/lib/cucumber/ast/background.rb +63 -0
  315. data/lib/cucumber/ast/comment.rb +31 -0
  316. data/lib/cucumber/ast/examples.rb +32 -0
  317. data/lib/cucumber/ast/feature.rb +81 -0
  318. data/lib/cucumber/ast/feature_element.rb +61 -0
  319. data/lib/cucumber/ast/features.rb +40 -0
  320. data/lib/cucumber/ast/outline_table.rb +146 -0
  321. data/lib/cucumber/ast/py_string.rb +57 -0
  322. data/lib/cucumber/ast/scenario.rb +108 -0
  323. data/lib/cucumber/ast/scenario_outline.rb +96 -0
  324. data/lib/cucumber/ast/step.rb +116 -0
  325. data/lib/cucumber/ast/step_collection.rb +76 -0
  326. data/lib/cucumber/ast/step_invocation.rb +166 -0
  327. data/lib/cucumber/ast/table.rb +626 -0
  328. data/lib/cucumber/ast/tags.rb +44 -0
  329. data/lib/cucumber/ast/visitor.rb +115 -0
  330. data/lib/cucumber/ast.rb +29 -0
  331. data/lib/cucumber/broadcaster.rb +13 -0
  332. data/lib/cucumber/cli/configuration.rb +190 -0
  333. data/lib/cucumber/cli/drb_client.rb +26 -0
  334. data/lib/cucumber/cli/language_help_formatter.rb +61 -0
  335. data/lib/cucumber/cli/main.rb +116 -0
  336. data/lib/cucumber/cli/options.rb +394 -0
  337. data/lib/cucumber/cli/profile_loader.rb +70 -0
  338. data/lib/cucumber/constantize.rb +28 -0
  339. data/lib/cucumber/core_ext/instance_exec.rb +93 -0
  340. data/lib/cucumber/core_ext/proc.rb +29 -0
  341. data/lib/cucumber/core_ext/string.rb +48 -0
  342. data/lib/cucumber/feature_file.rb +54 -0
  343. data/lib/cucumber/filter.rb +52 -0
  344. data/lib/cucumber/formatter/ansicolor.rb +143 -0
  345. data/lib/cucumber/formatter/color_io.rb +23 -0
  346. data/lib/cucumber/formatter/console.rb +185 -0
  347. data/lib/cucumber/formatter/cucumber.css +132 -0
  348. data/lib/cucumber/formatter/cucumber.sass +139 -0
  349. data/lib/cucumber/formatter/duration.rb +13 -0
  350. data/lib/cucumber/formatter/html.rb +261 -0
  351. data/lib/cucumber/formatter/junit.rb +121 -0
  352. data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
  353. data/lib/cucumber/formatter/pdf.rb +217 -0
  354. data/lib/cucumber/formatter/pretty.rb +222 -0
  355. data/lib/cucumber/formatter/profile.rb +78 -0
  356. data/lib/cucumber/formatter/progress.rb +67 -0
  357. data/lib/cucumber/formatter/rerun.rb +46 -0
  358. data/lib/cucumber/formatter/steps.rb +50 -0
  359. data/lib/cucumber/formatter/tag_cloud.rb +29 -0
  360. data/lib/cucumber/formatter/unicode.rb +35 -0
  361. data/lib/cucumber/formatter/usage.rb +86 -0
  362. data/lib/cucumber/formatters/unicode.rb +7 -0
  363. data/lib/cucumber/language_support/language_methods.rb +75 -0
  364. data/lib/cucumber/language_support/step_definition_methods.rb +46 -0
  365. data/lib/cucumber/language_support.rb +30 -0
  366. data/lib/cucumber/languages.yml +561 -0
  367. data/lib/cucumber/parser/feature.rb +1838 -0
  368. data/lib/cucumber/parser/feature.tt +351 -0
  369. data/lib/cucumber/parser/i18n.tt +42 -0
  370. data/lib/cucumber/parser/natural_language.rb +72 -0
  371. data/lib/cucumber/parser/table.rb +417 -0
  372. data/lib/cucumber/parser/table.tt +71 -0
  373. data/lib/cucumber/parser/treetop_ext.rb +53 -0
  374. data/lib/cucumber/parser.rb +6 -0
  375. data/lib/cucumber/platform.rb +27 -0
  376. data/lib/cucumber/py_support/py_dsl.py +8 -0
  377. data/lib/cucumber/py_support/py_language.py +2 -0
  378. data/lib/cucumber/py_support/py_language.rb +68 -0
  379. data/lib/cucumber/rails/rspec.rb +10 -0
  380. data/lib/cucumber/rails/world.rb +100 -0
  381. data/lib/cucumber/rake/task.rb +241 -0
  382. data/lib/cucumber/rb_support/rb_dsl.rb +100 -0
  383. data/lib/cucumber/rb_support/rb_hook.rb +18 -0
  384. data/lib/cucumber/rb_support/rb_language.rb +153 -0
  385. data/lib/cucumber/rb_support/rb_step_definition.rb +60 -0
  386. data/lib/cucumber/rb_support/rb_world.rb +93 -0
  387. data/lib/cucumber/rspec_neuter.rb +23 -0
  388. data/lib/cucumber/step_match.rb +61 -0
  389. data/lib/cucumber/step_mother.rb +307 -0
  390. data/lib/cucumber/version.rb +10 -0
  391. data/lib/cucumber/webrat/element_locator.rb +87 -0
  392. data/lib/cucumber/webrat/table_locator.rb +1 -0
  393. data/lib/cucumber.rb +10 -0
  394. data/rails_generators/cucumber/USAGE +11 -0
  395. data/rails_generators/cucumber/cucumber_generator.rb +70 -0
  396. data/rails_generators/cucumber/templates/cucumber +9 -0
  397. data/rails_generators/cucumber/templates/cucumber.rake +36 -0
  398. data/rails_generators/cucumber/templates/cucumber_environment.rb +26 -0
  399. data/rails_generators/cucumber/templates/env.rb +27 -0
  400. data/rails_generators/cucumber/templates/paths.rb +27 -0
  401. data/rails_generators/cucumber/templates/spork_env.rb +35 -0
  402. data/rails_generators/cucumber/templates/webrat_steps.rb +236 -0
  403. data/rails_generators/feature/USAGE +12 -0
  404. data/rails_generators/feature/feature_generator.rb +40 -0
  405. data/rails_generators/feature/templates/feature.erb +31 -0
  406. data/rails_generators/feature/templates/steps.erb +14 -0
  407. data/spec/cucumber/ast/background_spec.rb +60 -0
  408. data/spec/cucumber/ast/feature_element_spec.rb +40 -0
  409. data/spec/cucumber/ast/feature_factory.rb +62 -0
  410. data/spec/cucumber/ast/feature_spec.rb +44 -0
  411. data/spec/cucumber/ast/py_string_spec.rb +51 -0
  412. data/spec/cucumber/ast/scenario_outline_spec.rb +72 -0
  413. data/spec/cucumber/ast/scenario_spec.rb +43 -0
  414. data/spec/cucumber/ast/step_collection_spec.rb +17 -0
  415. data/spec/cucumber/ast/step_spec.rb +66 -0
  416. data/spec/cucumber/ast/table_spec.rb +394 -0
  417. data/spec/cucumber/broadcaster_spec.rb +15 -0
  418. data/spec/cucumber/cli/configuration_spec.rb +396 -0
  419. data/spec/cucumber/cli/drb_client_spec.rb +77 -0
  420. data/spec/cucumber/cli/main_spec.rb +172 -0
  421. data/spec/cucumber/cli/options_spec.rb +331 -0
  422. data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
  423. data/spec/cucumber/core_ext/proc_spec.rb +68 -0
  424. data/spec/cucumber/core_ext/string_spec.rb +43 -0
  425. data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
  426. data/spec/cucumber/formatter/color_io_spec.rb +27 -0
  427. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  428. data/spec/cucumber/formatter/html_spec.rb +18 -0
  429. data/spec/cucumber/formatter/progress_spec.rb +33 -0
  430. data/spec/cucumber/parser/feature_parser_spec.rb +396 -0
  431. data/spec/cucumber/parser/table_parser_spec.rb +52 -0
  432. data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
  433. data/spec/cucumber/rails/stubs/test_help.rb +1 -0
  434. data/spec/cucumber/rails/world_spec.rb +16 -0
  435. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +123 -0
  436. data/spec/cucumber/sell_cucumbers.feature +19 -0
  437. data/spec/cucumber/step_mother_spec.rb +282 -0
  438. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  439. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  440. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  441. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  442. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  443. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  444. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  445. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  446. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  447. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  448. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  449. data/spec/cucumber/treetop_parser/with_comments.feature +23 -0
  450. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  451. data/spec/cucumber/world/pending_spec.rb +46 -0
  452. data/spec/spec.opts +4 -0
  453. data/spec/spec_helper.rb +18 -0
  454. metadata +561 -0
@@ -0,0 +1,109 @@
1
+ Feature: Cucumber command line
2
+ In order to write better software
3
+ Developers should be able to execute requirements as tests
4
+
5
+ @mri186
6
+ Scenario: Run scenario outline with filtering on outline name
7
+ When I run cucumber -q features --name "Test state"
8
+ Then it should fail with
9
+ """
10
+ Feature: Outline Sample
11
+
12
+ Scenario Outline: Test state
13
+ Given <state> without a table
14
+ Given <other_state> without a table
15
+
16
+ Examples: Rainbow colours
17
+ | state | other_state |
18
+ | missing | passing |
19
+ | passing | passing |
20
+ | failing | passing |
21
+ FAIL (RuntimeError)
22
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
23
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
24
+ features/outline_sample.feature:6:in `Given <state> without a table'
25
+
26
+ Examples: Only passing
27
+ | state | other_state |
28
+ | passing | passing |
29
+
30
+ 4 scenarios (1 failed, 1 undefined, 2 passed)
31
+ 8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
32
+
33
+ """
34
+
35
+ @mri186
36
+ Scenario: Run scenario outline steps only
37
+ When I run cucumber -q features/outline_sample.feature:7
38
+ Then it should fail with
39
+ """
40
+ Feature: Outline Sample
41
+
42
+ Scenario Outline: Test state
43
+ Given <state> without a table
44
+ Given <other_state> without a table
45
+
46
+ Examples: Rainbow colours
47
+ | state | other_state |
48
+ | missing | passing |
49
+ | passing | passing |
50
+ | failing | passing |
51
+ FAIL (RuntimeError)
52
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
53
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
54
+ features/outline_sample.feature:6:in `Given <state> without a table'
55
+
56
+ Examples: Only passing
57
+ | state | other_state |
58
+ | passing | passing |
59
+
60
+ 4 scenarios (1 failed, 1 undefined, 2 passed)
61
+ 8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
62
+
63
+ """
64
+
65
+ @mri186
66
+ Scenario: Run single failing scenario outline table row
67
+ When I run cucumber features/outline_sample.feature:12
68
+ Then it should fail with
69
+ """
70
+ Feature: Outline Sample
71
+
72
+ Scenario Outline: Test state # features/outline_sample.feature:5
73
+ Given <state> without a table # features/step_definitions/sample_steps.rb:15
74
+ Given <other_state> without a table # features/step_definitions/sample_steps.rb:12
75
+
76
+ Examples: Rainbow colours
77
+ | state | other_state |
78
+ | failing | passing |
79
+ FAIL (RuntimeError)
80
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
81
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
82
+ features/outline_sample.feature:6:in `Given <state> without a table'
83
+
84
+ 1 scenario (1 failed)
85
+ 2 steps (1 failed, 1 skipped)
86
+
87
+ """
88
+
89
+ # There are 10 characters in the progress, but only 8 reported steps. Needs investigation.
90
+ # Looks like we're outputting too many characters.
91
+ @mri186
92
+ Scenario: Run all with progress formatter
93
+ When I run cucumber -q --format progress features/outline_sample.feature
94
+ Then it should fail with
95
+ """
96
+ --U-..F-..
97
+
98
+ (::) failed steps (::)
99
+
100
+ FAIL (RuntimeError)
101
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
102
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
103
+ features/outline_sample.feature:6:in `Given <state> without a table'
104
+
105
+ 5 scenarios (1 failed, 1 undefined, 3 passed)
106
+ 8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
107
+
108
+ """
109
+
@@ -0,0 +1,11 @@
1
+ Feature: Custom Formatter
2
+
3
+ Scenario: count tags
4
+ When I run cucumber --format Cucumber::Formatter::TagCloud features
5
+ Then it should fail with
6
+ """
7
+ | after_file | background_tagged_before_on_outline | four | lots | one | sample_four | sample_one | sample_three | sample_two | three | two |
8
+ | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
9
+
10
+ """
11
+
@@ -0,0 +1,173 @@
1
+ Feature: DRb Server Integration
2
+ To prevent waiting for Rails and other large Ruby applications to load their environments
3
+ for each feature run Cucumber ships with a DRb client that can speak to a server which
4
+ loads up the environment only once.
5
+
6
+ Background: App with Spork support
7
+ Spork is a gem that has a DRb server and the scenarios below illustrate how to use it.
8
+ However, any DRb server that adheres to the protocol that the client expects would work.
9
+
10
+ Given a standard Cucumber project directory structure
11
+ And a file named "features/support/env.rb" with:
12
+ """
13
+ require 'rubygems'
14
+ require 'spork'
15
+
16
+ Spork.prefork do
17
+ puts "I'm loading all the heavy stuff..."
18
+ end
19
+
20
+ Spork.each_run do
21
+ puts "I'm loading the stuff just for this run..."
22
+ end
23
+ """
24
+ And a file named "features/sample.feature" with:
25
+ """
26
+ # language: en
27
+ Feature: Sample
28
+ Scenario: this is a test
29
+ Given I am just testing stuff
30
+ """
31
+ And a file named "features/essai.feature" with:
32
+ """
33
+ # language: fr
34
+ Fonction: Essai
35
+ Scenario: ceci est un test
36
+ Soit je teste
37
+ """
38
+ And a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
39
+ """
40
+ Given /^I am just testing stuff$/ do
41
+ # no-op
42
+ end
43
+
44
+ Soit /^je teste$/ do
45
+ # no-op
46
+ end
47
+ """
48
+
49
+ Scenario: Feature Passing with --drb flag
50
+ Given I am running spork in the background
51
+
52
+ When I run cucumber features --drb
53
+ Then it should pass
54
+ And STDERR should be empty
55
+ And the output should contain
56
+ """
57
+ 1 step (1 passed)
58
+ """
59
+ And the output should contain
60
+ """
61
+ I'm loading the stuff just for this run...
62
+ """
63
+ And the output should not contain
64
+ """
65
+ I'm loading all the heavy stuff...
66
+ """
67
+
68
+ Scenario: Feature Failing with --drb flag
69
+ Given a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
70
+ """
71
+ Given /^I am just testing stuff$/ do
72
+ raise "Oh noes!"
73
+ end
74
+ """
75
+ And I am running spork in the background
76
+
77
+ When I run cucumber features --drb
78
+ Then it should fail
79
+ And the output should contain
80
+ """
81
+ 1 step (1 failed)
82
+ """
83
+ And the output should contain
84
+ """
85
+ I'm loading the stuff just for this run...
86
+ """
87
+ And the output should not contain
88
+ """
89
+ I'm loading all the heavy stuff...
90
+ """
91
+
92
+ Scenario: Feature Run with --drb flag with no DRb server running
93
+ Cucumber will fall back on running the features locally in this case.
94
+
95
+ Given I am not running a DRb server in the background
96
+
97
+ When I run cucumber features --drb
98
+ Then it should pass
99
+ And STDERR should match
100
+ """
101
+ No DRb server is running. Running features locally:
102
+ """
103
+ And the output should contain
104
+ """
105
+ I'm loading all the heavy stuff...
106
+ I'm loading the stuff just for this run...
107
+ """
108
+ And the output should contain
109
+ """
110
+ 1 step (1 passed)
111
+ """
112
+
113
+
114
+ Scenario: Feature Run with --drb flag *defined in a profile* with no DRb server running
115
+
116
+ Given I am not running a DRb server in the background
117
+ And the following profile is defined:
118
+ """
119
+ server: --drb features
120
+ """
121
+
122
+ When I run cucumber --profile server
123
+ Then it should pass
124
+ And STDERR should match
125
+ """
126
+ No DRb server is running. Running features locally:
127
+ """
128
+ And the output should contain
129
+ """
130
+ I'm loading all the heavy stuff...
131
+ I'm loading the stuff just for this run...
132
+ """
133
+
134
+ Scenario: Feature Run with --drb specifying a non-standard port
135
+
136
+ Given I am running spork in the background on port 9000
137
+
138
+ When I run cucumber features --drb --port 9000
139
+ Then it should pass
140
+ And STDERR should be empty
141
+ And the output should contain
142
+ """
143
+ 1 step (1 passed)
144
+ """
145
+ And the output should contain
146
+ """
147
+ I'm loading the stuff just for this run...
148
+ """
149
+ And the output should not contain
150
+ """
151
+ I'm loading all the heavy stuff...
152
+ """
153
+
154
+ Scenario: Feature Run with $CUCUMBER_DRB environment variable
155
+
156
+ Given I have environment variable CUCUMBER_DRB set to "9000"
157
+ And I am running spork in the background on port 9000
158
+
159
+ When I run cucumber features/ --drb
160
+ Then it should pass
161
+ And STDERR should be empty
162
+ And the output should contain
163
+ """
164
+ 1 step (1 passed)
165
+ """
166
+ And the output should contain
167
+ """
168
+ I'm loading the stuff just for this run...
169
+ """
170
+ And the output should not contain
171
+ """
172
+ I'm loading all the heavy stuff...
173
+ """
@@ -0,0 +1,102 @@
1
+ Feature: Exception in After Block
2
+ In order to use custom assertions at the end of each scenario
3
+ As a developer
4
+ I want exceptions raised in After blocks to be handled gracefully and reported by the formatters
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/step_definitions/steps.rb" with:
9
+ """
10
+ Given /^this step does something naughty$/ do
11
+ @naughty = true
12
+ end
13
+
14
+ Given /^this step works$/ do
15
+ end
16
+ """
17
+ And a file named "features/support/env.rb" with:
18
+ """
19
+ class NaughtyScenarioException < Exception; end
20
+ After do
21
+ if @naughty
22
+ raise NaughtyScenarioException.new("This scenario has been very very naughty")
23
+ end
24
+ end
25
+ """
26
+
27
+ @mri186
28
+ Scenario: Handle Exception in standard scenario step and carry on
29
+ Given a file named "features/naughty_step_in_scenario.feature" with:
30
+ """
31
+ Feature: Sample
32
+
33
+ Scenario: Naughty Step
34
+ Given this step does something naughty
35
+
36
+ Scenario: Success
37
+ Given this step works
38
+ """
39
+ When I run cucumber features
40
+ Then it should fail with
41
+ """
42
+ Feature: Sample
43
+
44
+ Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
45
+ Given this step does something naughty # features/step_definitions/steps.rb:1
46
+ This scenario has been very very naughty (NaughtyScenarioException)
47
+ ./features/support/env.rb:4:in `After'
48
+
49
+ Scenario: Success # features/naughty_step_in_scenario.feature:6
50
+ Given this step works # features/step_definitions/steps.rb:5
51
+
52
+ Failing Scenarios:
53
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
54
+
55
+ 2 scenarios (1 failed, 1 passed)
56
+ 2 steps (2 passed)
57
+
58
+ """
59
+
60
+ @mri186
61
+ Scenario: Handle Exception in scenario outline table row and carry on
62
+ Given a file named "features/naughty_step_in_scenario_outline.feature" with:
63
+ """
64
+ Feature: Sample
65
+
66
+ Scenario Outline: Naughty Step
67
+ Given this step <Might Work>
68
+
69
+ Examples:
70
+ | Might Work |
71
+ | works |
72
+ | does something naughty |
73
+ | works |
74
+
75
+ Scenario: Success
76
+ Given this step works
77
+
78
+ """
79
+ When I run cucumber features
80
+ Then it should fail with
81
+ """
82
+ Feature: Sample
83
+
84
+ Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
85
+ Given this step <Might Work> # features/step_definitions/steps.rb:5
86
+
87
+ Examples:
88
+ | Might Work |
89
+ | works |
90
+ | does something naughty |
91
+ This scenario has been very very naughty (NaughtyScenarioException)
92
+ ./features/support/env.rb:4:in `After'
93
+ | works |
94
+
95
+ Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
96
+ Given this step works # features/step_definitions/steps.rb:5
97
+
98
+ 4 scenarios (1 failed, 3 passed)
99
+ 4 steps (4 passed)
100
+
101
+ """
102
+
@@ -0,0 +1,104 @@
1
+ Feature: Exception in AfterStep Block
2
+ In order to use custom assertions at the end of each step
3
+ As a developer
4
+ I want exceptions raised in AfterStep blocks to be handled gracefully and reported by the formatters
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/step_definitions/steps.rb" with:
9
+ """
10
+ Given /^this step does something naughty$/ do
11
+ @naughty = true
12
+ end
13
+
14
+ Given /^this step works$/ do
15
+ end
16
+ """
17
+ And a file named "features/support/env.rb" with:
18
+ """
19
+ class NaughtyStepException < Exception; end
20
+ AfterStep do
21
+ if @naughty
22
+ raise NaughtyStepException.new("This step has been very very naughty")
23
+ end
24
+ end
25
+ """
26
+
27
+ @mri186
28
+ Scenario: Handle Exception in standard scenario step and carry on
29
+ Given a file named "features/naughty_step_in_scenario.feature" with:
30
+ """
31
+ Feature: Sample
32
+
33
+ Scenario: Naughty Step
34
+ Given this step does something naughty
35
+
36
+ Scenario: Success
37
+ Given this step works
38
+ """
39
+ When I run cucumber features
40
+ Then it should fail with
41
+ """
42
+ Feature: Sample
43
+
44
+ Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
45
+ Given this step does something naughty # features/step_definitions/steps.rb:1
46
+ This step has been very very naughty (NaughtyStepException)
47
+ ./features/support/env.rb:4:in `AfterStep'
48
+ features/naughty_step_in_scenario.feature:4:in `Given this step does something naughty'
49
+
50
+ Scenario: Success # features/naughty_step_in_scenario.feature:6
51
+ Given this step works # features/step_definitions/steps.rb:5
52
+
53
+ Failing Scenarios:
54
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
55
+
56
+ 2 scenarios (1 failed, 1 passed)
57
+ 2 steps (1 failed, 1 passed)
58
+
59
+ """
60
+
61
+ @mri186
62
+ Scenario: Handle Exception in scenario outline table row and carry on
63
+ Given a file named "features/naughty_step_in_scenario_outline.feature" with:
64
+ """
65
+ Feature: Sample
66
+
67
+ Scenario Outline: Naughty Step
68
+ Given this step <Might Work>
69
+
70
+ Examples:
71
+ | Might Work |
72
+ | works |
73
+ | does something naughty |
74
+ | works |
75
+
76
+ Scenario: Success
77
+ Given this step works
78
+
79
+ """
80
+ When I run cucumber features
81
+ Then it should fail with
82
+ """
83
+ Feature: Sample
84
+
85
+ Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
86
+ Given this step <Might Work> # features/step_definitions/steps.rb:5
87
+
88
+ Examples:
89
+ | Might Work |
90
+ | works |
91
+ | does something naughty |
92
+ This step has been very very naughty (NaughtyStepException)
93
+ ./features/support/env.rb:4:in `AfterStep'
94
+ features/naughty_step_in_scenario_outline.feature:4:in `Given this step <Might Work>'
95
+ | works |
96
+
97
+ Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
98
+ Given this step works # features/step_definitions/steps.rb:5
99
+
100
+ 4 scenarios (1 failed, 3 passed)
101
+ 4 steps (1 failed, 3 passed)
102
+
103
+ """
104
+
@@ -0,0 +1,47 @@
1
+ Feature: Exception in Before Block
2
+ In order to know with confidence that my before blocks have run OK
3
+ As a developer
4
+ I want exceptions raised in Before blocks to be handled gracefully and reported by the formatters
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/step_definitions/steps.rb" with:
9
+ """
10
+ Given /^this step works$/ do
11
+ end
12
+ """
13
+ And a file named "features/support/env.rb" with:
14
+ """
15
+ class SomeSetupException < Exception; end
16
+ class BadStepException < Exception; end
17
+ Before do
18
+ raise SomeSetupException.new("I cannot even start this scenario")
19
+ end
20
+ """
21
+
22
+ @mri186
23
+ Scenario: Handle Exception in standard scenario step and carry on
24
+ Given a file named "features/naughty_step_in_scenario.feature" with:
25
+ """
26
+ Feature: Sample
27
+
28
+ Scenario: Run a good step
29
+ Given this step works
30
+ """
31
+ When I run cucumber features
32
+ Then it should fail with
33
+ """
34
+ Feature: Sample
35
+
36
+ Scenario: Run a good step # features/naughty_step_in_scenario.feature:3
37
+ I cannot even start this scenario (SomeSetupException)
38
+ ./features/support/env.rb:4:in `Before'
39
+ Given this step works # features/step_definitions/steps.rb:1
40
+
41
+ Failing Scenarios:
42
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Run a good step
43
+
44
+ 1 scenario (1 failed)
45
+ 1 step (1 skipped)
46
+
47
+ """
@@ -0,0 +1,20 @@
1
+ Feature: Exclude ruby and feature files from runs
2
+ Developers should be able to easily exclude files from cucumber runs
3
+ This is a nice feature to have in conjunction with profiles, so you can exclude
4
+ certain environment files from certain runs.
5
+
6
+ Scenario: exclude ruby files
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/support/dont_require_me.rb"
9
+ And a file named "features/step_definitions/fooz.rb"
10
+ And a file named "features/step_definitions/foof.rb"
11
+ And a file named "features/step_definitions/foot.rb"
12
+ And a file named "features/support/require_me.rb"
13
+
14
+ When I run cucumber features -q --verbose --exclude features/support/dont --exclude foo[zf]
15
+
16
+ Then "features/support/require_me.rb" should be required
17
+ And "features/step_definitions/foot.rb" should be required
18
+ And "features/support/dont_require_me.rb" should not be required
19
+ And "features/step_definitions/foof.rb" should not be required
20
+ And "features/step_definitions/fooz.rb" should not be required
@@ -0,0 +1,49 @@
1
+ Feature: --expand option
2
+ In order to make it easier to writhe certain editor plugins
3
+ and also for some people to understand scenarios, Cucumber
4
+ should expand examples in outlines.
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/expand_me.feature" with:
9
+ """
10
+ Feature: submit guess
11
+ Scenario Outline: submit guess
12
+ Given the secret code is <code>
13
+ When I guess <guess>
14
+ Then the mark should be <mark>
15
+
16
+ Examples: all colors correct
17
+ | code | guess | mark |
18
+ | r g y c | r g y c | bbbb |
19
+ | r g y c | r g c y | bbww |
20
+ """
21
+
22
+ Scenario: Expand the outline
23
+ When I run cucumber -i -q --expand features/expand_me.feature
24
+ Then STDERR should be empty
25
+ And it should pass with
26
+ """
27
+ Feature: submit guess
28
+
29
+ Scenario Outline: submit guess
30
+ Given the secret code is <code>
31
+ When I guess <guess>
32
+ Then the mark should be <mark>
33
+
34
+ Examples: all colors correct
35
+
36
+ Scenario: | r g y c | r g y c | bbbb |
37
+ Given the secret code is r g y c
38
+ When I guess r g y c
39
+ Then the mark should be bbbb
40
+
41
+ Scenario: | r g y c | r g c y | bbww |
42
+ Given the secret code is r g y c
43
+ When I guess r g c y
44
+ Then the mark should be bbww
45
+
46
+ 2 scenarios (2 undefined)
47
+ 6 steps (6 undefined)
48
+
49
+ """