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,667 @@
1
+ Feature: Cucumber command line
2
+ In order to write better software
3
+ Developers should be able to execute requirements as tests
4
+
5
+ Scenario: Run single scenario with missing step definition
6
+ When I run cucumber -q features/sample.feature:5
7
+ Then it should pass with
8
+ """
9
+ # Feature comment
10
+ @one
11
+ Feature: Sample
12
+
13
+ @two @three
14
+ Scenario: Missing
15
+ Given missing
16
+
17
+ 1 scenario (1 undefined)
18
+ 1 step (1 undefined)
19
+
20
+ """
21
+
22
+ Scenario: Fail with --strict
23
+ When I run cucumber -q features/sample.feature:5 --strict
24
+ Then it should fail with
25
+ """
26
+ # Feature comment
27
+ @one
28
+ Feature: Sample
29
+
30
+ @two @three
31
+ Scenario: Missing
32
+ Given missing
33
+ Undefined step: "missing" (Cucumber::Undefined)
34
+ features/sample.feature:7:in `Given missing'
35
+
36
+ 1 scenario (1 undefined)
37
+ 1 step (1 undefined)
38
+
39
+ """
40
+
41
+ Scenario: Succeed with --strict
42
+ When I run cucumber -q features/sample.feature:10 --strict
43
+ Then it should pass with
44
+ """
45
+ # Feature comment
46
+ @one
47
+ Feature: Sample
48
+
49
+ # Scenario comment
50
+ @three
51
+ Scenario: Passing
52
+ Given passing
53
+ | a | b |
54
+ | c | d |
55
+
56
+ 1 scenario (1 passed)
57
+ 1 step (1 passed)
58
+
59
+ """
60
+
61
+ @mri186
62
+ Scenario: Specify 2 line numbers where one is a tag
63
+ When I run cucumber -q features/sample.feature:5:16
64
+ Then it should fail with
65
+ """
66
+ # Feature comment
67
+ @one
68
+ Feature: Sample
69
+
70
+ @two @three
71
+ Scenario: Missing
72
+ Given missing
73
+
74
+ @four
75
+ Scenario: Failing
76
+ Given failing
77
+ \"\"\"
78
+ hello
79
+ \"\"\"
80
+ FAIL (RuntimeError)
81
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
82
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
83
+ features/sample.feature:18:in `Given failing'
84
+
85
+ Failing Scenarios:
86
+ cucumber features/sample.feature:17 # Scenario: Failing
87
+
88
+ 2 scenarios (1 failed, 1 undefined)
89
+ 2 steps (1 failed, 1 undefined)
90
+
91
+ """
92
+
93
+ Scenario: Require missing step definition from elsewhere
94
+ When I run cucumber -q -r ../../features/step_definitions/extra_steps.rb features/sample.feature:5
95
+ Then it should pass with
96
+ """
97
+ # Feature comment
98
+ @one
99
+ Feature: Sample
100
+
101
+ @two @three
102
+ Scenario: Missing
103
+ Given missing
104
+
105
+ 1 scenario (1 passed)
106
+ 1 step (1 passed)
107
+
108
+ """
109
+
110
+ Scenario: Specify the line number of a row
111
+ When I run cucumber -q features/sample.feature:12
112
+ Then it should pass with
113
+ """
114
+ # Feature comment
115
+ @one
116
+ Feature: Sample
117
+
118
+ # Scenario comment
119
+ @three
120
+ Scenario: Passing
121
+ Given passing
122
+ | a | b |
123
+ | c | d |
124
+
125
+ 1 scenario (1 passed)
126
+ 1 step (1 passed)
127
+
128
+ """
129
+
130
+ Scenario: Use @-notation to specify a file containing feature file list
131
+ When I run cucumber -q @list-of-features.txt
132
+ Then it should pass with
133
+ """
134
+ # Feature comment
135
+ @one
136
+ Feature: Sample
137
+
138
+ # Scenario comment
139
+ @three
140
+ Scenario: Passing
141
+ Given passing
142
+ | a | b |
143
+ | c | d |
144
+
145
+ 1 scenario (1 passed)
146
+ 1 step (1 passed)
147
+
148
+ """
149
+
150
+ @mri186
151
+ Scenario: Run all with progress formatter
152
+ When I run cucumber -q --format progress features/sample.feature
153
+ Then it should fail with
154
+ """
155
+ U.F
156
+
157
+ (::) failed steps (::)
158
+
159
+ FAIL (RuntimeError)
160
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
161
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
162
+ features/sample.feature:18:in `Given failing'
163
+
164
+ Failing Scenarios:
165
+ cucumber features/sample.feature:17 # Scenario: Failing
166
+
167
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
168
+ 3 steps (1 failed, 1 undefined, 1 passed)
169
+
170
+ """
171
+
172
+ Scenario: Run Norwegian
173
+ Given I am in i18n/no
174
+ When I run cucumber -q --language no features
175
+ Then STDERR should be empty
176
+ Then it should pass with
177
+ """
178
+ # language: no
179
+ Egenskap: Summering
180
+ For å slippe å gjøre dumme feil
181
+ Som en regnskapsfører
182
+ Vil jeg kunne legge sammen
183
+
184
+ Scenario: to tall
185
+ Gitt at jeg har tastet inn 5
186
+ Og at jeg har tastet inn 7
187
+ Når jeg summerer
188
+ Så skal resultatet være 12
189
+
190
+ @iterasjon3
191
+ Scenario: tre tall
192
+ Gitt at jeg har tastet inn 5
193
+ Og at jeg har tastet inn 7
194
+ Og at jeg har tastet inn 1
195
+ Når jeg summerer
196
+ Så skal resultatet være 13
197
+
198
+ 2 scenarios (2 passed)
199
+ 9 steps (9 passed)
200
+
201
+ """
202
+
203
+ Scenario: --dry-run
204
+ When I run cucumber --dry-run --no-snippets features/*.feature --tags ~@lots
205
+ Then it should pass with
206
+ """
207
+ Feature: Calling undefined step
208
+
209
+ Scenario: Call directly
210
+ Given a step definition that calls an undefined step
211
+
212
+ Scenario: Call via another
213
+ Given call step "a step definition that calls an undefined step"
214
+
215
+ Feature: Failing expectation
216
+
217
+ Scenario: Failing expectation
218
+ Given failing expectation
219
+
220
+ Feature: Lots of undefined
221
+
222
+ Scenario: Implement me
223
+ Given it snows in Sahara
224
+ Given it's 40 degrees in Norway
225
+ And it's 40 degrees in Norway
226
+ When I stop procrastinating
227
+ And there is world peace
228
+
229
+ Feature: multiline
230
+
231
+ Background: I'm a multiline name
232
+ which goes on and on and on for three lines
233
+ yawn
234
+ Given passing without a table
235
+
236
+ Scenario: I'm a multiline name
237
+ which goes on and on and on for three lines
238
+ yawn
239
+ Given passing without a table
240
+
241
+ Scenario Outline: I'm a multiline name
242
+ which goes on and on and on for three lines
243
+ yawn
244
+ Given <state> without a table
245
+
246
+ Examples:
247
+ | state |
248
+ | passing |
249
+
250
+ Scenario Outline: name
251
+ Given <state> without a table
252
+
253
+ Examples: I'm a multiline name
254
+ which goes on and on and on for three lines
255
+ yawn
256
+ | state |
257
+ | passing |
258
+
259
+ Feature: Outline Sample
260
+
261
+ Scenario: I have no steps
262
+
263
+ Scenario Outline: Test state
264
+ Given <state> without a table
265
+ Given <other_state> without a table
266
+
267
+ Examples: Rainbow colours
268
+ | state | other_state |
269
+ | missing | passing |
270
+ | passing | passing |
271
+ | failing | passing |
272
+
273
+ Examples: Only passing
274
+ | state | other_state |
275
+ | passing | passing |
276
+
277
+ # Feature comment
278
+ @one
279
+ Feature: Sample
280
+
281
+ @two @three
282
+ Scenario: Missing
283
+ Given missing
284
+
285
+ # Scenario comment
286
+ @three
287
+ Scenario: Passing
288
+ Given passing
289
+ | a | b |
290
+ | c | d |
291
+
292
+ @four
293
+ Scenario: Failing
294
+ Given failing
295
+ \"\"\"
296
+ hello
297
+ \"\"\"
298
+
299
+ Feature: search examples
300
+
301
+ Background: Hantu Pisang background match
302
+ Given passing without a table
303
+
304
+ Scenario: should match Hantu Pisang
305
+ Given passing without a table
306
+
307
+ Scenario: Ignore me
308
+ Given failing without a table
309
+
310
+ Scenario Outline: Ignore me
311
+ Given <state> without a table
312
+
313
+ Examples:
314
+ | state |
315
+ | failing |
316
+
317
+ Scenario Outline: Hantu Pisang match
318
+ Given <state> without a table
319
+
320
+ Examples:
321
+ | state |
322
+ | passing |
323
+
324
+ Scenario Outline: no match in name but in examples
325
+ Given <state> without a table
326
+
327
+ Examples: Hantu Pisang
328
+ | state |
329
+ | passing |
330
+
331
+ Examples: Ignore me
332
+ | state |
333
+ | failing |
334
+
335
+ @sample_one
336
+ Feature: Tag samples
337
+
338
+ @sample_two @sample_four
339
+ Scenario: Passing
340
+ Given missing
341
+
342
+ @sample_three
343
+ Scenario Outline:
344
+ Given <state>
345
+
346
+ Examples:
347
+ | state |
348
+ | missing |
349
+
350
+ @sample_three @sample_four
351
+ Scenario: Skipped
352
+ Given missing
353
+
354
+ Feature: Step argument transformations
355
+
356
+ Scenario: transform with matches
357
+ Then I should transform '10' to an Integer
358
+
359
+ Scenario: transform with matches that capture
360
+ Then I should transform 'abc' to a Symbol
361
+
362
+ Scenario: transform without matches
363
+ Then I should not transform '10' to an Integer
364
+
365
+ Feature: undefined multiline args
366
+
367
+ Scenario: pystring
368
+ Given a pystring
369
+ \"\"\"
370
+ example
371
+ \"\"\"
372
+
373
+ Scenario: table
374
+ Given a table
375
+ | table |
376
+ | example |
377
+
378
+ 29 scenarios (20 skipped, 8 undefined, 1 passed)
379
+ 45 steps (33 skipped, 12 undefined)
380
+
381
+ """
382
+
383
+ Scenario: Multiple formatters and outputs
384
+ When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --dry-run features/lots_of_undefined.feature
385
+ And "examples/self_test/tmp/progress.txt" should contain
386
+ """
387
+ UUUUU
388
+
389
+ 1 scenario (1 undefined)
390
+ 5 steps (5 undefined)
391
+
392
+ """
393
+ And "examples/self_test/tmp/pretty.txt" should contain
394
+ """
395
+ Feature: Lots of undefined
396
+
397
+ Scenario: Implement me
398
+ Given it snows in Sahara
399
+ Given it's 40 degrees in Norway
400
+ And it's 40 degrees in Norway
401
+ When I stop procrastinating
402
+ And there is world peace
403
+
404
+ 1 scenario (1 undefined)
405
+ 5 steps (5 undefined)
406
+
407
+ """
408
+
409
+ Scenario: Run feature elements which matches a name using --name
410
+ When I run cucumber --name Pisang -q features/
411
+ Then it should pass with
412
+ """
413
+ Feature: search examples
414
+
415
+ Background: Hantu Pisang background match
416
+ Given passing without a table
417
+
418
+ Scenario: should match Hantu Pisang
419
+ Given passing without a table
420
+
421
+ Scenario Outline: Hantu Pisang match
422
+ Given <state> without a table
423
+
424
+ Examples:
425
+ | state |
426
+ | passing |
427
+
428
+ Scenario Outline: no match in name but in examples
429
+ Given <state> without a table
430
+
431
+ Examples: Hantu Pisang
432
+ | state |
433
+ | passing |
434
+
435
+ 3 scenarios (3 passed)
436
+ 6 steps (6 passed)
437
+
438
+ """
439
+
440
+ Scenario: Run a single background which matches a name using --name (Useful if there is an error in it)
441
+ When I run cucumber --name 'Hantu Pisang background' -q features/
442
+ Then it should pass with
443
+ """
444
+ Feature: search examples
445
+
446
+ Background: Hantu Pisang background match
447
+ Given passing without a table
448
+
449
+ 0 scenarios
450
+ 1 step (1 passed)
451
+
452
+ """
453
+
454
+
455
+ Scenario: Run with a tag that exists on 2 scenarios
456
+ When I run cucumber -q features --tags three
457
+ Then it should pass with
458
+ """
459
+ # Feature comment
460
+ @one
461
+ Feature: Sample
462
+
463
+ @two @three
464
+ Scenario: Missing
465
+ Given missing
466
+
467
+ # Scenario comment
468
+ @three
469
+ Scenario: Passing
470
+ Given passing
471
+ | a | b |
472
+ | c | d |
473
+
474
+ 2 scenarios (1 undefined, 1 passed)
475
+ 2 steps (1 undefined, 1 passed)
476
+
477
+ """
478
+
479
+ @mri186
480
+ Scenario: Run with a tag that exists on 1 feature
481
+ When I run cucumber -q features --tags one
482
+ Then it should fail with
483
+ """
484
+ # Feature comment
485
+ @one
486
+ Feature: Sample
487
+
488
+ @two @three
489
+ Scenario: Missing
490
+ Given missing
491
+
492
+ # Scenario comment
493
+ @three
494
+ Scenario: Passing
495
+ Given passing
496
+ | a | b |
497
+ | c | d |
498
+
499
+ @four
500
+ Scenario: Failing
501
+ Given failing
502
+ \"\"\"
503
+ hello
504
+ \"\"\"
505
+ FAIL (RuntimeError)
506
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
507
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
508
+ features/sample.feature:18:in `Given failing'
509
+
510
+ Failing Scenarios:
511
+ cucumber features/sample.feature:17 # Scenario: Failing
512
+
513
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
514
+ 3 steps (1 failed, 1 undefined, 1 passed)
515
+
516
+ """
517
+
518
+ Scenario: Run with a negative tag
519
+ When I run cucumber -q features/sample.feature --dry-run -t ~four
520
+ Then it should pass with
521
+ """
522
+ # Feature comment
523
+ @one
524
+ Feature: Sample
525
+
526
+ @two @three
527
+ Scenario: Missing
528
+ Given missing
529
+
530
+ # Scenario comment
531
+ @three
532
+ Scenario: Passing
533
+ Given passing
534
+ | a | b |
535
+ | c | d |
536
+
537
+ 2 scenarios (1 skipped, 1 undefined)
538
+ 2 steps (1 skipped, 1 undefined)
539
+
540
+ """
541
+
542
+ Scenario: Run with limited tag number
543
+ When I run cucumber -q features/tags_sample.feature --dry-run -t sample_three:1
544
+ Then it should fail with
545
+ """
546
+ @sample_one
547
+ Feature: Tag samples
548
+
549
+ @sample_three
550
+ Scenario Outline:
551
+ Given <state>
552
+
553
+ Examples:
554
+ | state |
555
+ | missing |
556
+
557
+ @sample_three @sample_four
558
+ Scenario: Skipped
559
+ Given missing
560
+
561
+ 2 scenarios (2 undefined)
562
+ 2 steps (2 undefined)
563
+
564
+ Failed due to exceeding the tag limit
565
+ @sample_three occurred:2 limit:1
566
+ features/tags_sample.feature:9
567
+ features/tags_sample.feature:16
568
+
569
+ """
570
+
571
+ Scenario: Run with a feature tag which has a limit
572
+ When I run cucumber -q features/tags_sample.feature --dry-run -t sample_one:1
573
+ Then it should fail with
574
+ """
575
+ @sample_one
576
+ Feature: Tag samples
577
+
578
+ @sample_two @sample_four
579
+ Scenario: Passing
580
+ Given missing
581
+
582
+ @sample_three
583
+ Scenario Outline:
584
+ Given <state>
585
+
586
+ Examples:
587
+ | state |
588
+ | missing |
589
+
590
+ @sample_three @sample_four
591
+ Scenario: Skipped
592
+ Given missing
593
+
594
+ 3 scenarios (3 undefined)
595
+ 3 steps (3 undefined)
596
+
597
+ Failed due to exceeding the tag limit
598
+ @sample_one occurred:3 limit:1
599
+ features/tags_sample.feature:5
600
+ features/tags_sample.feature:9
601
+ features/tags_sample.feature:16
602
+
603
+ """
604
+
605
+ Scenario: Reformat files with --autoformat
606
+ When I run cucumber --autoformat tmp/formatted features
607
+ Then "examples/self_test/tmp/formatted/features/sample.feature" should contain
608
+ """
609
+ # Feature comment
610
+ @one
611
+ Feature: Sample
612
+
613
+ @two @three
614
+ Scenario: Missing
615
+ Given missing
616
+
617
+ # Scenario comment
618
+ @three
619
+ Scenario: Passing
620
+ Given passing
621
+ | a | b |
622
+ | c | d |
623
+
624
+ @four
625
+ Scenario: Failing
626
+ Given failing
627
+ \"\"\"
628
+ hello
629
+ \"\"\"
630
+
631
+
632
+ """
633
+
634
+ Scenario: Generate PDF with pdf formatter
635
+ When I run cucumber --format pdf --out tmp/sample.pdf --dry-run features/sample.feature
636
+ Then "examples/self_test/tmp/sample.pdf" should match "Pages 2"
637
+
638
+ Scenario: Run feature elements which match a name using -n
639
+ When I run cucumber -n Pisang -q features/
640
+ Then it should pass with
641
+ """
642
+ Feature: search examples
643
+
644
+ Background: Hantu Pisang background match
645
+ Given passing without a table
646
+
647
+ Scenario: should match Hantu Pisang
648
+ Given passing without a table
649
+
650
+ Scenario Outline: Hantu Pisang match
651
+ Given <state> without a table
652
+
653
+ Examples:
654
+ | state |
655
+ | passing |
656
+
657
+ Scenario Outline: no match in name but in examples
658
+ Given <state> without a table
659
+
660
+ Examples: Hantu Pisang
661
+ | state |
662
+ | passing |
663
+
664
+ 3 scenarios (3 passed)
665
+ 6 steps (6 passed)
666
+
667
+ """
@@ -0,0 +1,54 @@
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 single failing scenario with default diff enabled
7
+ When I run cucumber -q features/failing_expectation.feature
8
+ Then it should fail with
9
+ """
10
+ Feature: Failing expectation
11
+
12
+ Scenario: Failing expectation
13
+ Given failing expectation
14
+ expected: "that",
15
+ got: "this" (using ==)
16
+
17
+ Diff:
18
+ @@ -1,2 +1,2 @@
19
+ -that
20
+ +this
21
+ (Spec::Expectations::ExpectationNotMetError)
22
+ ./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
23
+ features/failing_expectation.feature:4:in `Given failing expectation'
24
+
25
+ Failing Scenarios:
26
+ cucumber features/failing_expectation.feature:3 # Scenario: Failing expectation
27
+
28
+ 1 scenario (1 failed)
29
+ 1 step (1 failed)
30
+
31
+ """
32
+
33
+ @mri186
34
+ Scenario: Run single failing scenario with diff output disabled
35
+ When I run cucumber -q --no-diff features/failing_expectation.feature
36
+ Then it should fail with
37
+ """
38
+ Feature: Failing expectation
39
+
40
+ Scenario: Failing expectation
41
+ Given failing expectation
42
+ expected: "that",
43
+ got: "this" (using ==) (Spec::Expectations::ExpectationNotMetError)
44
+ ./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
45
+ features/failing_expectation.feature:4:in `Given failing expectation'
46
+
47
+ Failing Scenarios:
48
+ cucumber features/failing_expectation.feature:3 # Scenario: Failing expectation
49
+
50
+ 1 scenario (1 failed)
51
+ 1 step (1 failed)
52
+
53
+ """
54
+