jwilger-cucumber 0.3.11.200906161550

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 (411) hide show
  1. data/History.txt +830 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +410 -0
  4. data/README.txt +4 -0
  5. data/Rakefile +9 -0
  6. data/bin/cucumber +17 -0
  7. data/config/hoe.rb +76 -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 +30 -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 +16 -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/zh-CN/Rakefile +6 -0
  151. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  152. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  153. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  154. data/examples/i18n/zh-TW/Rakefile +6 -0
  155. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  156. data/examples/i18n/zh-TW/features/division.feature +11 -0
  157. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  158. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  159. data/examples/java/README.textile +18 -0
  160. data/examples/java/build.xml +33 -0
  161. data/examples/java/features/hello.feature +11 -0
  162. data/examples/java/features/step_definitons/hello_steps.rb +23 -0
  163. data/examples/java/features/step_definitons/tree_steps.rb +14 -0
  164. data/examples/java/features/tree.feature +9 -0
  165. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  166. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  167. data/examples/junit/features/pending.feature +5 -0
  168. data/examples/junit/features/step_definitions/steps.rb +11 -0
  169. data/examples/pure_java/README.textile +5 -0
  170. data/examples/selenium/Rakefile +6 -0
  171. data/examples/selenium/features/search.feature +9 -0
  172. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  173. data/examples/selenium/features/support/env.rb +19 -0
  174. data/examples/selenium_webrat/Rakefile +6 -0
  175. data/examples/selenium_webrat/config.ru +0 -0
  176. data/examples/selenium_webrat/features/search.feature +9 -0
  177. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  178. data/examples/selenium_webrat/features/support/env.rb +45 -0
  179. data/examples/self_test/README.textile +6 -0
  180. data/examples/self_test/Rakefile +6 -0
  181. data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  182. data/examples/self_test/features/background/background_with_name.feature +7 -0
  183. data/examples/self_test/features/background/failing_background.feature +12 -0
  184. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  185. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  186. data/examples/self_test/features/background/passing_background.feature +10 -0
  187. data/examples/self_test/features/background/pending_background.feature +10 -0
  188. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  189. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  190. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  191. data/examples/self_test/features/failing_expectation.feature +4 -0
  192. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  193. data/examples/self_test/features/multiline_name.feature +27 -0
  194. data/examples/self_test/features/outline_sample.feature +15 -0
  195. data/examples/self_test/features/sample.feature +21 -0
  196. data/examples/self_test/features/search_sample.feature +32 -0
  197. data/examples/self_test/features/step_definitions/sample_steps.rb +81 -0
  198. data/examples/self_test/features/support/env.rb +17 -0
  199. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  200. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  201. data/examples/sinatra/Rakefile +6 -0
  202. data/examples/sinatra/app.rb +14 -0
  203. data/examples/sinatra/features/add.feature +11 -0
  204. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  205. data/examples/sinatra/features/support/env.rb +28 -0
  206. data/examples/sinatra/views/add.erb +5 -0
  207. data/examples/sinatra/views/layout.erb +8 -0
  208. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  209. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  210. data/examples/test_unit/Rakefile +6 -0
  211. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  212. data/examples/test_unit/features/test_unit.feature +9 -0
  213. data/examples/tickets/Rakefile +16 -0
  214. data/examples/tickets/features/172.feature +28 -0
  215. data/examples/tickets/features/177/1.feature +29 -0
  216. data/examples/tickets/features/177/2.feature +21 -0
  217. data/examples/tickets/features/177/3.feature +18 -0
  218. data/examples/tickets/features/180.feature +7 -0
  219. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  220. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  221. data/examples/tickets/features/236.feature +13 -0
  222. data/examples/tickets/features/241.feature +13 -0
  223. data/examples/tickets/features/246.feature +4 -0
  224. data/examples/tickets/features/248.feature +11 -0
  225. data/examples/tickets/features/270/back.feature +14 -0
  226. data/examples/tickets/features/270/back.steps.rb +14 -0
  227. data/examples/tickets/features/272/hooks.feature +26 -0
  228. data/examples/tickets/features/272/hooks_steps.rb +53 -0
  229. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  230. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  231. data/examples/tickets/features/279/wrong.feature_ +11 -0
  232. data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  233. data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  234. data/examples/tickets/features/306/only_background.feature +4 -0
  235. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  236. data/examples/tickets/features/lib/pantry.rb +20 -0
  237. data/examples/tickets/features/scenario_outline.feature +95 -0
  238. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  239. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  240. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  241. data/examples/tickets/features/step_definitons/tickets_steps.rb +66 -0
  242. data/examples/tickets/features/tickets.feature +28 -0
  243. data/examples/watir/README.textile +16 -0
  244. data/examples/watir/Rakefile +6 -0
  245. data/examples/watir/features/search.feature +12 -0
  246. data/examples/watir/features/step_definitons/search_steps.rb +22 -0
  247. data/examples/watir/features/support/env.rb +32 -0
  248. data/features/after_block_exceptions.feature +102 -0
  249. data/features/after_step_block_exceptions.feature +104 -0
  250. data/features/background.feature +311 -0
  251. data/features/bug_371.feature +32 -0
  252. data/features/cucumber_cli.feature +549 -0
  253. data/features/cucumber_cli_diff_disabled.feature +53 -0
  254. data/features/cucumber_cli_outlines.feature +109 -0
  255. data/features/custom_formatter.feature +11 -0
  256. data/features/drb_server_integration.feature +115 -0
  257. data/features/exclude_files.feature +20 -0
  258. data/features/expand.feature +49 -0
  259. data/features/html_formatter/a.html +185 -0
  260. data/features/html_formatter.feature +7 -0
  261. data/features/junit_formatter.feature +71 -0
  262. data/features/language_from_header.feature +30 -0
  263. data/features/multiline_names.feature +43 -0
  264. data/features/rake_task.feature +150 -0
  265. data/features/report_called_undefined_steps.feature +35 -0
  266. data/features/snippet.feature +22 -0
  267. data/features/step_definitions/cucumber_steps.rb +130 -0
  268. data/features/step_definitions/extra_steps.rb +2 -0
  269. data/features/steps_formatter.feature +25 -0
  270. data/features/support/env.rb +120 -0
  271. data/features/usage.feature +126 -0
  272. data/features/work_in_progress.feature +151 -0
  273. data/gem_tasks/deployment.rake +11 -0
  274. data/gem_tasks/environment.rake +7 -0
  275. data/gem_tasks/features.rake +10 -0
  276. data/gem_tasks/fix_cr_lf.rake +10 -0
  277. data/gem_tasks/flog.rake +4 -0
  278. data/gem_tasks/gemspec.rake +10 -0
  279. data/gem_tasks/rspec.rake +45 -0
  280. data/gem_tasks/sass.rake +4 -0
  281. data/gem_tasks/yard.rake +8 -0
  282. data/lib/autotest/cucumber.rb +6 -0
  283. data/lib/autotest/cucumber_mixin.rb +125 -0
  284. data/lib/autotest/cucumber_rails.rb +6 -0
  285. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  286. data/lib/autotest/cucumber_rspec.rb +6 -0
  287. data/lib/autotest/discover.rb +9 -0
  288. data/lib/cucumber/ast/background.rb +62 -0
  289. data/lib/cucumber/ast/comment.rb +30 -0
  290. data/lib/cucumber/ast/examples.rb +26 -0
  291. data/lib/cucumber/ast/feature.rb +58 -0
  292. data/lib/cucumber/ast/feature_element.rb +57 -0
  293. data/lib/cucumber/ast/features.rb +30 -0
  294. data/lib/cucumber/ast/outline_table.rb +143 -0
  295. data/lib/cucumber/ast/py_string.rb +57 -0
  296. data/lib/cucumber/ast/scenario.rb +83 -0
  297. data/lib/cucumber/ast/scenario_outline.rb +93 -0
  298. data/lib/cucumber/ast/step.rb +112 -0
  299. data/lib/cucumber/ast/step_collection.rb +75 -0
  300. data/lib/cucumber/ast/step_invocation.rb +136 -0
  301. data/lib/cucumber/ast/table.rb +334 -0
  302. data/lib/cucumber/ast/tags.rb +33 -0
  303. data/lib/cucumber/ast/visitor.rb +116 -0
  304. data/lib/cucumber/ast.rb +29 -0
  305. data/lib/cucumber/broadcaster.rb +13 -0
  306. data/lib/cucumber/cli/configuration.rb +427 -0
  307. data/lib/cucumber/cli/drb_client.rb +20 -0
  308. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  309. data/lib/cucumber/cli/main.rb +136 -0
  310. data/lib/cucumber/core_ext/exception.rb +53 -0
  311. data/lib/cucumber/core_ext/instance_exec.rb +67 -0
  312. data/lib/cucumber/core_ext/proc.rb +29 -0
  313. data/lib/cucumber/core_ext/string.rb +48 -0
  314. data/lib/cucumber/feature_file.rb +47 -0
  315. data/lib/cucumber/filter.rb +50 -0
  316. data/lib/cucumber/formatter/ansicolor.rb +110 -0
  317. data/lib/cucumber/formatter/color_io.rb +23 -0
  318. data/lib/cucumber/formatter/console.rb +149 -0
  319. data/lib/cucumber/formatter/cucumber.css +132 -0
  320. data/lib/cucumber/formatter/cucumber.sass +139 -0
  321. data/lib/cucumber/formatter/duration.rb +10 -0
  322. data/lib/cucumber/formatter/html.rb +258 -0
  323. data/lib/cucumber/formatter/junit.rb +75 -0
  324. data/lib/cucumber/formatter/pretty.rb +188 -0
  325. data/lib/cucumber/formatter/profile.rb +77 -0
  326. data/lib/cucumber/formatter/progress.rb +60 -0
  327. data/lib/cucumber/formatter/rerun.rb +44 -0
  328. data/lib/cucumber/formatter/steps.rb +49 -0
  329. data/lib/cucumber/formatter/tag_cloud.rb +28 -0
  330. data/lib/cucumber/formatter/unicode.rb +35 -0
  331. data/lib/cucumber/formatter/usage.rb +85 -0
  332. data/lib/cucumber/formatters/unicode.rb +7 -0
  333. data/lib/cucumber/languages.yml +532 -0
  334. data/lib/cucumber/parser/feature.rb +1787 -0
  335. data/lib/cucumber/parser/feature.tt +324 -0
  336. data/lib/cucumber/parser/i18n/language.rb +80 -0
  337. data/lib/cucumber/parser/i18n.tt +42 -0
  338. data/lib/cucumber/parser/table.rb +414 -0
  339. data/lib/cucumber/parser/table.tt +71 -0
  340. data/lib/cucumber/parser/treetop_ext.rb +52 -0
  341. data/lib/cucumber/parser.rb +6 -0
  342. data/lib/cucumber/platform.rb +23 -0
  343. data/lib/cucumber/rails/rspec.rb +10 -0
  344. data/lib/cucumber/rails/world.rb +99 -0
  345. data/lib/cucumber/rake/task.rb +233 -0
  346. data/lib/cucumber/rspec_neuter.rb +23 -0
  347. data/lib/cucumber/step_definition.rb +122 -0
  348. data/lib/cucumber/step_match.rb +61 -0
  349. data/lib/cucumber/step_mother.rb +362 -0
  350. data/lib/cucumber/version.rb +10 -0
  351. data/lib/cucumber/world.rb +53 -0
  352. data/lib/cucumber.rb +11 -0
  353. data/rails_generators/cucumber/USAGE +11 -0
  354. data/rails_generators/cucumber/cucumber_generator.rb +66 -0
  355. data/rails_generators/cucumber/templates/cucumber +8 -0
  356. data/rails_generators/cucumber/templates/cucumber.rake +20 -0
  357. data/rails_generators/cucumber/templates/cucumber_environment.rb +23 -0
  358. data/rails_generators/cucumber/templates/env.rb +26 -0
  359. data/rails_generators/cucumber/templates/paths.rb +27 -0
  360. data/rails_generators/cucumber/templates/spork_env.rb +36 -0
  361. data/rails_generators/cucumber/templates/webrat_steps.rb +147 -0
  362. data/rails_generators/feature/USAGE +12 -0
  363. data/rails_generators/feature/feature_generator.rb +40 -0
  364. data/rails_generators/feature/templates/feature.erb +31 -0
  365. data/rails_generators/feature/templates/steps.erb +20 -0
  366. data/spec/cucumber/ast/background_spec.rb +50 -0
  367. data/spec/cucumber/ast/feature_element_spec.rb +40 -0
  368. data/spec/cucumber/ast/feature_factory.rb +63 -0
  369. data/spec/cucumber/ast/feature_spec.rb +38 -0
  370. data/spec/cucumber/ast/py_string_spec.rb +51 -0
  371. data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
  372. data/spec/cucumber/ast/scenario_spec.rb +38 -0
  373. data/spec/cucumber/ast/step_collection_spec.rb +17 -0
  374. data/spec/cucumber/ast/step_spec.rb +66 -0
  375. data/spec/cucumber/ast/table_spec.rb +186 -0
  376. data/spec/cucumber/ast/visitor_spec.rb +27 -0
  377. data/spec/cucumber/broadcaster_spec.rb +15 -0
  378. data/spec/cucumber/cli/configuration_spec.rb +396 -0
  379. data/spec/cucumber/cli/drb_client_spec.rb +43 -0
  380. data/spec/cucumber/cli/main_spec.rb +140 -0
  381. data/spec/cucumber/core_ext/proc_spec.rb +54 -0
  382. data/spec/cucumber/core_ext/string_spec.rb +42 -0
  383. data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
  384. data/spec/cucumber/formatter/color_io_spec.rb +27 -0
  385. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  386. data/spec/cucumber/formatter/progress_spec.rb +36 -0
  387. data/spec/cucumber/parser/feature_parser_spec.rb +387 -0
  388. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  389. data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
  390. data/spec/cucumber/rails/stubs/test_help.rb +1 -0
  391. data/spec/cucumber/rails/world_spec.rb +11 -0
  392. data/spec/cucumber/sell_cucumbers.feature +19 -0
  393. data/spec/cucumber/step_definition_spec.rb +101 -0
  394. data/spec/cucumber/step_mother_spec.rb +155 -0
  395. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  396. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  397. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  398. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  399. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  400. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  401. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  402. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  403. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  404. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  405. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  406. data/spec/cucumber/treetop_parser/with_comments.feature +10 -0
  407. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  408. data/spec/cucumber/world/pending_spec.rb +47 -0
  409. data/spec/spec.opts +2 -0
  410. data/spec/spec_helper.rb +13 -0
  411. metadata +506 -0
@@ -0,0 +1,549 @@
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
+ @mri186
131
+ Scenario: Run all with progress formatter
132
+ When I run cucumber -q --format progress features/sample.feature
133
+ Then it should fail with
134
+ """
135
+ U.F
136
+
137
+ (::) failed steps (::)
138
+
139
+ FAIL (RuntimeError)
140
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
141
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
142
+ features/sample.feature:18:in `Given failing'
143
+
144
+ Failing Scenarios:
145
+ cucumber features/sample.feature:17 # Scenario: Failing
146
+
147
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
148
+ 3 steps (1 failed, 1 undefined, 1 passed)
149
+
150
+ """
151
+
152
+ Scenario: Run Norwegian
153
+ Given I am in i18n/no
154
+ When I run cucumber -q --language no features
155
+ Then it should pass with
156
+ """
157
+ # language: no
158
+ Egenskap: Summering
159
+ For å slippe å gjøre dumme feil
160
+ Som en regnskapsfører
161
+ Vil jeg kunne legge sammen
162
+
163
+ Scenario: to tall
164
+ Gitt at jeg har tastet inn 5
165
+ Og at jeg har tastet inn 7
166
+ Når jeg summerer
167
+ Så skal resultatet være 12
168
+
169
+ @iterasjon3
170
+ Scenario: tre tall
171
+ Gitt at jeg har tastet inn 5
172
+ Og at jeg har tastet inn 7
173
+ Og at jeg har tastet inn 1
174
+ Når jeg summerer
175
+ Så skal resultatet være 13
176
+
177
+ 2 scenarios (2 passed)
178
+ 9 steps (9 passed)
179
+
180
+ """
181
+
182
+ Scenario: --dry-run
183
+ When I run cucumber --dry-run --no-snippets features/*.feature --tags ~@lots
184
+ Then it should pass with
185
+ """
186
+ Feature: Calling undefined step
187
+
188
+ Scenario: Call directly
189
+ Given a step definition that calls an undefined step
190
+
191
+ Scenario: Call via another
192
+ Given call step "a step definition that calls an undefined step"
193
+
194
+ Feature: Failing expectation
195
+
196
+ Scenario: Failing expectation
197
+ Given failing expectation
198
+
199
+ Feature: Lots of undefined
200
+
201
+ Scenario: Implement me
202
+ Given it snows in Sahara
203
+ Given it's 40 degrees in Norway
204
+ And it's 40 degrees in Norway
205
+ When I stop procrastinating
206
+ And there is world peace
207
+
208
+ Feature: multiline
209
+
210
+ Background: I'm a multiline name
211
+ which goes on and on and on for three lines
212
+ yawn
213
+ Given passing without a table
214
+
215
+ Scenario: I'm a multiline name
216
+ which goes on and on and on for three lines
217
+ yawn
218
+ Given passing without a table
219
+
220
+ Scenario Outline: I'm a multiline name
221
+ which goes on and on and on for three lines
222
+ yawn
223
+ Given <state> without a table
224
+
225
+ Examples:
226
+ | state |
227
+ | passing |
228
+
229
+ Scenario Outline: name
230
+ Given <state> without a table
231
+
232
+ Examples: I'm a multiline name
233
+ which goes on and on and on for three lines
234
+ yawn
235
+ | state |
236
+ | passing |
237
+
238
+ Feature: Outline Sample
239
+
240
+ Scenario: I have no steps
241
+
242
+ Scenario Outline: Test state
243
+ Given <state> without a table
244
+ Given <other_state> without a table
245
+
246
+ Examples: Rainbow colours
247
+ | state | other_state |
248
+ | missing | passing |
249
+ | passing | passing |
250
+ | failing | passing |
251
+
252
+ Examples: Only passing
253
+ | state | other_state |
254
+ | passing | passing |
255
+
256
+ # Feature comment
257
+ @one
258
+ Feature: Sample
259
+
260
+ @two @three
261
+ Scenario: Missing
262
+ Given missing
263
+
264
+ # Scenario comment
265
+ @three
266
+ Scenario: Passing
267
+ Given passing
268
+ | a | b |
269
+ | c | d |
270
+
271
+ @four
272
+ Scenario: Failing
273
+ Given failing
274
+ \"\"\"
275
+ hello
276
+ \"\"\"
277
+
278
+ Feature: search examples
279
+
280
+ Background: Hantu Pisang background match
281
+ Given passing without a table
282
+
283
+ Scenario: should match Hantu Pisang
284
+ Given passing without a table
285
+
286
+ Scenario: Ignore me
287
+ Given failing without a table
288
+
289
+ Scenario Outline: Ignore me
290
+ Given <state> without a table
291
+
292
+ Examples:
293
+ | state |
294
+ | failing |
295
+
296
+ Scenario Outline: Hantu Pisang match
297
+ Given <state> without a table
298
+
299
+ Examples:
300
+ | state |
301
+ | passing |
302
+
303
+ Scenario Outline: no match in name but in examples
304
+ Given <state> without a table
305
+
306
+ Examples: Hantu Pisang
307
+ | state |
308
+ | passing |
309
+
310
+ Examples: Ignore me
311
+ | state |
312
+ | failing |
313
+
314
+ Feature: undefined multiline args
315
+
316
+ Scenario: pystring
317
+ Given a pystring
318
+ \"\"\"
319
+ example
320
+ \"\"\"
321
+
322
+ Scenario: table
323
+ Given a table
324
+ | table |
325
+ | example |
326
+
327
+ 23 scenarios (17 skipped, 5 undefined, 1 passed)
328
+ 39 steps (30 skipped, 9 undefined)
329
+
330
+ """
331
+
332
+ Scenario: Multiple formatters and outputs
333
+ When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --dry-run features/lots_of_undefined.feature
334
+ And "examples/self_test/tmp/progress.txt" should contain
335
+ """
336
+ UUUUU
337
+
338
+ 1 scenario (1 undefined)
339
+ 5 steps (5 undefined)
340
+
341
+ """
342
+ And "examples/self_test/tmp/pretty.txt" should contain
343
+ """
344
+ Feature: Lots of undefined
345
+
346
+ Scenario: Implement me
347
+ Given it snows in Sahara
348
+ Given it's 40 degrees in Norway
349
+ And it's 40 degrees in Norway
350
+ When I stop procrastinating
351
+ And there is world peace
352
+
353
+ 1 scenario (1 undefined)
354
+ 5 steps (5 undefined)
355
+
356
+ """
357
+
358
+ Scenario: Run feature elements which matches a name using --name
359
+ When I run cucumber --name Pisang -q features/
360
+ Then it should pass with
361
+ """
362
+ Feature: search examples
363
+
364
+ Background: Hantu Pisang background match
365
+ Given passing without a table
366
+
367
+ Scenario: should match Hantu Pisang
368
+ Given passing without a table
369
+
370
+ Scenario Outline: Hantu Pisang match
371
+ Given <state> without a table
372
+
373
+ Examples:
374
+ | state |
375
+ | passing |
376
+
377
+ Scenario Outline: no match in name but in examples
378
+ Given <state> without a table
379
+
380
+ Examples: Hantu Pisang
381
+ | state |
382
+ | passing |
383
+
384
+ 3 scenarios (3 passed)
385
+ 6 steps (6 passed)
386
+
387
+ """
388
+
389
+ Scenario: Run a single background which matches a name using --name (Useful if there is an error in it)
390
+ When I run cucumber --name 'Hantu Pisang background' -q features/
391
+ Then it should pass with
392
+ """
393
+ Feature: search examples
394
+
395
+ Background: Hantu Pisang background match
396
+ Given passing without a table
397
+
398
+ 0 scenarios
399
+ 1 step (1 passed)
400
+
401
+ """
402
+
403
+
404
+ Scenario: Run with a tag that exists on 2 scenarios
405
+ When I run cucumber -q features --tags three
406
+ Then it should pass with
407
+ """
408
+ # Feature comment
409
+ @one
410
+ Feature: Sample
411
+
412
+ @two @three
413
+ Scenario: Missing
414
+ Given missing
415
+
416
+ # Scenario comment
417
+ @three
418
+ Scenario: Passing
419
+ Given passing
420
+ | a | b |
421
+ | c | d |
422
+
423
+ 2 scenarios (1 undefined, 1 passed)
424
+ 2 steps (1 undefined, 1 passed)
425
+
426
+ """
427
+
428
+ @mri186
429
+ Scenario: Run with a tag that exists on 1 feature
430
+ When I run cucumber -q features --tags one
431
+ Then it should fail with
432
+ """
433
+ # Feature comment
434
+ @one
435
+ Feature: Sample
436
+
437
+ @two @three
438
+ Scenario: Missing
439
+ Given missing
440
+
441
+ # Scenario comment
442
+ @three
443
+ Scenario: Passing
444
+ Given passing
445
+ | a | b |
446
+ | c | d |
447
+
448
+ @four
449
+ Scenario: Failing
450
+ Given failing
451
+ \"\"\"
452
+ hello
453
+ \"\"\"
454
+ FAIL (RuntimeError)
455
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
456
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
457
+ features/sample.feature:18:in `Given failing'
458
+
459
+ Failing Scenarios:
460
+ cucumber features/sample.feature:17 # Scenario: Failing
461
+
462
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
463
+ 3 steps (1 failed, 1 undefined, 1 passed)
464
+
465
+ """
466
+
467
+ Scenario: Run with a negative tag
468
+ When I run cucumber -q features/sample.feature --dry-run -t ~four
469
+ Then it should pass with
470
+ """
471
+ # Feature comment
472
+ @one
473
+ Feature: Sample
474
+
475
+ @two @three
476
+ Scenario: Missing
477
+ Given missing
478
+
479
+ # Scenario comment
480
+ @three
481
+ Scenario: Passing
482
+ Given passing
483
+ | a | b |
484
+ | c | d |
485
+
486
+ 2 scenarios (1 skipped, 1 undefined)
487
+ 2 steps (1 skipped, 1 undefined)
488
+
489
+ """
490
+
491
+ Scenario: Reformat files with --autoformat
492
+ When I run cucumber --autoformat tmp/formatted features
493
+ Then "examples/self_test/tmp/formatted/features/sample.feature" should contain
494
+ """
495
+ # Feature comment
496
+ @one
497
+ Feature: Sample
498
+
499
+ @two @three
500
+ Scenario: Missing
501
+ Given missing
502
+
503
+ # Scenario comment
504
+ @three
505
+ Scenario: Passing
506
+ Given passing
507
+ | a | b |
508
+ | c | d |
509
+
510
+ @four
511
+ Scenario: Failing
512
+ Given failing
513
+ \"\"\"
514
+ hello
515
+ \"\"\"
516
+
517
+
518
+ """
519
+
520
+ Scenario: Run feature elements which match a name using -n
521
+ When I run cucumber -n Pisang -q features/
522
+ Then it should pass with
523
+ """
524
+ Feature: search examples
525
+
526
+ Background: Hantu Pisang background match
527
+ Given passing without a table
528
+
529
+ Scenario: should match Hantu Pisang
530
+ Given passing without a table
531
+
532
+ Scenario Outline: Hantu Pisang match
533
+ Given <state> without a table
534
+
535
+ Examples:
536
+ | state |
537
+ | passing |
538
+
539
+ Scenario Outline: no match in name but in examples
540
+ Given <state> without a table
541
+
542
+ Examples: Hantu Pisang
543
+ | state |
544
+ | passing |
545
+
546
+ 3 scenarios (3 passed)
547
+ 6 steps (6 passed)
548
+
549
+ """
@@ -0,0 +1,53 @@
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
+ Diff:
17
+ @@ -1,2 +1,2 @@
18
+ -that
19
+ +this
20
+ (Spec::Expectations::ExpectationNotMetError)
21
+ ./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
22
+ features/failing_expectation.feature:4:in `Given failing expectation'
23
+
24
+ Failing Scenarios:
25
+ cucumber features/failing_expectation.feature:3 # Scenario: Failing expectation
26
+
27
+ 1 scenario (1 failed)
28
+ 1 step (1 failed)
29
+
30
+ """
31
+
32
+ @mri186
33
+ Scenario: Run single failing scenario with diff output disabled
34
+ When I run cucumber -q --no-diff features/failing_expectation.feature
35
+ Then it should fail with
36
+ """
37
+ Feature: Failing expectation
38
+
39
+ Scenario: Failing expectation
40
+ Given failing expectation
41
+ expected: "that",
42
+ got: "this" (using ==) (Spec::Expectations::ExpectationNotMetError)
43
+ ./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
44
+ features/failing_expectation.feature:4:in `Given failing expectation'
45
+
46
+ Failing Scenarios:
47
+ cucumber features/failing_expectation.feature:3 # Scenario: Failing expectation
48
+
49
+ 1 scenario (1 failed)
50
+ 1 step (1 failed)
51
+
52
+ """
53
+
@@ -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 | three | two |
8
+ | 1 | 1 | 1 | 1 | 1 | 2 | 1 |
9
+
10
+ """
11
+