casecumber 1.0.2.1

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 (563) hide show
  1. data/.gitattributes +1 -0
  2. data/.gitignore +26 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +7 -0
  6. data/.yardopts +0 -0
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +115 -0
  9. data/History.md +1702 -0
  10. data/LICENSE +22 -0
  11. data/README.md +25 -0
  12. data/Rakefile +12 -0
  13. data/bin/cucumber +22 -0
  14. data/cucumber.gemspec +60 -0
  15. data/cucumber.yml +20 -0
  16. data/examples/i18n/README.textile +18 -0
  17. data/examples/i18n/Rakefile +33 -0
  18. data/examples/i18n/ar/Rakefile +6 -0
  19. data/examples/i18n/ar/features/addition.feature +17 -0
  20. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
  21. data/examples/i18n/ar/lib/calculator.rb +11 -0
  22. data/examples/i18n/bg/Rakefile +6 -0
  23. data/examples/i18n/bg/features/addition.feature +12 -0
  24. data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
  25. data/examples/i18n/bg/features/division.feature +17 -0
  26. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  27. data/examples/i18n/bg/features/support/env.rb +5 -0
  28. data/examples/i18n/bg/features/support/world.rb +8 -0
  29. data/examples/i18n/bg/lib/calculator.rb +24 -0
  30. data/examples/i18n/ca/Rakefile +6 -0
  31. data/examples/i18n/ca/features/step_definitons/calculator_steps.rb +21 -0
  32. data/examples/i18n/ca/features/suma.feature +17 -0
  33. data/examples/i18n/ca/lib/calculadora.rb +16 -0
  34. data/examples/i18n/da/Rakefile +6 -0
  35. data/examples/i18n/da/features/sammenlaegning.feature +18 -0
  36. data/examples/i18n/da/features/step_definitons/lommeregner_steps.rb +24 -0
  37. data/examples/i18n/da/lib/lommeregner.rb +11 -0
  38. data/examples/i18n/de/.gitignore +1 -0
  39. data/examples/i18n/de/Rakefile +6 -0
  40. data/examples/i18n/de/features/addition.feature +17 -0
  41. data/examples/i18n/de/features/division.feature +10 -0
  42. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
  43. data/examples/i18n/de/lib/calculator.rb +14 -0
  44. data/examples/i18n/en-lol/Rakefile +4 -0
  45. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  46. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  47. data/examples/i18n/en-lol/features/support/env.rb +7 -0
  48. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  49. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  50. data/examples/i18n/en/.gitignore +1 -0
  51. data/examples/i18n/en/Rakefile +6 -0
  52. data/examples/i18n/en/features/addition.feature +17 -0
  53. data/examples/i18n/en/features/division.feature +10 -0
  54. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
  55. data/examples/i18n/en/lib/calculator.rb +14 -0
  56. data/examples/i18n/eo/.gitignore +1 -0
  57. data/examples/i18n/eo/Rakefile +6 -0
  58. data/examples/i18n/eo/features/adicio.feature +17 -0
  59. data/examples/i18n/eo/features/divido.feature +10 -0
  60. data/examples/i18n/eo/features/step_definitons/calculator_steps.rb +24 -0
  61. data/examples/i18n/eo/lib/calculator.rb +14 -0
  62. data/examples/i18n/es/Rakefile +6 -0
  63. data/examples/i18n/es/features/adicion.feature +17 -0
  64. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
  65. data/examples/i18n/es/lib/calculador.rb +14 -0
  66. data/examples/i18n/et/Rakefile +6 -0
  67. data/examples/i18n/et/features/jagamine.feature +10 -0
  68. data/examples/i18n/et/features/liitmine.feature +17 -0
  69. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  70. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  71. data/examples/i18n/fi/.gitignore +1 -0
  72. data/examples/i18n/fi/Rakefile +6 -0
  73. data/examples/i18n/fi/features/jakolasku.feature +10 -0
  74. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  75. data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
  76. data/examples/i18n/fi/lib/laskin.rb +14 -0
  77. data/examples/i18n/fr/Rakefile +6 -0
  78. data/examples/i18n/fr/features/addition.feature +18 -0
  79. data/examples/i18n/fr/features/addition2.feature +17 -0
  80. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +32 -0
  81. data/examples/i18n/fr/features/support/env.rb +5 -0
  82. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  83. data/examples/i18n/he/Rakefile +6 -0
  84. data/examples/i18n/he/features/addition.feature +17 -0
  85. data/examples/i18n/he/features/division.feature +10 -0
  86. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  87. data/examples/i18n/he/lib/calculator.rb +15 -0
  88. data/examples/i18n/hu/.gitignore +1 -0
  89. data/examples/i18n/hu/Rakefile +6 -0
  90. data/examples/i18n/hu/features/osszeadas.feature +17 -0
  91. data/examples/i18n/hu/features/osztas.feature +10 -0
  92. data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
  93. data/examples/i18n/hu/lib/calculator.rb +14 -0
  94. data/examples/i18n/id/.gitignore +1 -0
  95. data/examples/i18n/id/Rakefile +6 -0
  96. data/examples/i18n/id/features/addition.feature +17 -0
  97. data/examples/i18n/id/features/division.feature +10 -0
  98. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  99. data/examples/i18n/id/lib/calculator.rb +14 -0
  100. data/examples/i18n/it/Rakefile +6 -0
  101. data/examples/i18n/it/features/somma.feature +11 -0
  102. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  103. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  104. data/examples/i18n/ja/.gitignore +1 -0
  105. data/examples/i18n/ja/Rakefile +6 -0
  106. data/examples/i18n/ja/features/addition.feature +17 -0
  107. data/examples/i18n/ja/features/division.feature +10 -0
  108. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +19 -0
  109. data/examples/i18n/ja/features/support/env.rb +5 -0
  110. data/examples/i18n/ja/lib/calculator.rb +14 -0
  111. data/examples/i18n/ko/.gitignore +1 -0
  112. data/examples/i18n/ko/Rakefile +6 -0
  113. data/examples/i18n/ko/features/addition.feature +17 -0
  114. data/examples/i18n/ko/features/division.feature +11 -0
  115. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  116. data/examples/i18n/ko/lib/calculator.rb +14 -0
  117. data/examples/i18n/lt/.gitignore +1 -0
  118. data/examples/i18n/lt/Rakefile +6 -0
  119. data/examples/i18n/lt/features/addition.feature +17 -0
  120. data/examples/i18n/lt/features/division.feature +10 -0
  121. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  122. data/examples/i18n/lt/lib/calculator.rb +14 -0
  123. data/examples/i18n/lv/Rakefile +6 -0
  124. data/examples/i18n/lv/features/addition.feature +17 -0
  125. data/examples/i18n/lv/features/division.feature +10 -0
  126. data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
  127. data/examples/i18n/lv/lib/calculator.rb +14 -0
  128. data/examples/i18n/no/Rakefile +6 -0
  129. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  130. data/examples/i18n/no/features/summering.feature +19 -0
  131. data/examples/i18n/no/features/support/env.rb +6 -0
  132. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  133. data/examples/i18n/pl/.gitignore +1 -0
  134. data/examples/i18n/pl/Rakefile +6 -0
  135. data/examples/i18n/pl/features/addition.feature +17 -0
  136. data/examples/i18n/pl/features/division.feature +10 -0
  137. data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
  138. data/examples/i18n/pl/features/support/env.rb +5 -0
  139. data/examples/i18n/pl/lib/calculator.rb +14 -0
  140. data/examples/i18n/pt/Rakefile +6 -0
  141. data/examples/i18n/pt/features/adicao.feature +11 -0
  142. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  143. data/examples/i18n/pt/features/support/env.rb +5 -0
  144. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  145. data/examples/i18n/ro/Rakefile +6 -0
  146. data/examples/i18n/ro/features/adunare.feature +12 -0
  147. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +21 -0
  148. data/examples/i18n/ro/lib/calculator.rb +11 -0
  149. data/examples/i18n/ru/Rakefile +6 -0
  150. data/examples/i18n/ru/features/addition.feature +11 -0
  151. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  152. data/examples/i18n/ru/features/division.feature +16 -0
  153. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  154. data/examples/i18n/ru/features/support/env.rb +5 -0
  155. data/examples/i18n/ru/features/support/world.rb +8 -0
  156. data/examples/i18n/ru/lib/calculator.rb +24 -0
  157. data/examples/i18n/sk/.gitignore +1 -0
  158. data/examples/i18n/sk/Rakefile +6 -0
  159. data/examples/i18n/sk/features/addition.feature +17 -0
  160. data/examples/i18n/sk/features/division.feature +10 -0
  161. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  162. data/examples/i18n/sk/lib/calculator.rb +14 -0
  163. data/examples/i18n/sr-Cyrl/Rakefile +6 -0
  164. data/examples/i18n/sr-Cyrl/features/sabiranje.feature +18 -0
  165. data/examples/i18n/sr-Cyrl/features/step_definitons/calculator_steps.rb +20 -0
  166. data/examples/i18n/sr-Cyrl/features/support/env.rb +5 -0
  167. data/examples/i18n/sr-Cyrl/lib/calculator.rb +12 -0
  168. data/examples/i18n/sr-Latn/Rakefile +6 -0
  169. data/examples/i18n/sr-Latn/features/sabiranje.feature +18 -0
  170. data/examples/i18n/sr-Latn/features/step_definitons/calculator_steps.rb +24 -0
  171. data/examples/i18n/sr-Latn/lib/calculator.rb +12 -0
  172. data/examples/i18n/sv/Rakefile +6 -0
  173. data/examples/i18n/sv/features/step_definitons/kalkulator_steps.rb +24 -0
  174. data/examples/i18n/sv/features/summering.feature +18 -0
  175. data/examples/i18n/sv/lib/kalkulator.rb +11 -0
  176. data/examples/i18n/tr/.gitignore +1 -0
  177. data/examples/i18n/tr/Rakefile +6 -0
  178. data/examples/i18n/tr/features/bolme.feature +10 -0
  179. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +24 -0
  180. data/examples/i18n/tr/features/toplama.feature +18 -0
  181. data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
  182. data/examples/i18n/uk/Rakefile +6 -0
  183. data/examples/i18n/uk/features/addition.feature +11 -0
  184. data/examples/i18n/uk/features/consecutive_calculations.feature +17 -0
  185. data/examples/i18n/uk/features/division.feature +16 -0
  186. data/examples/i18n/uk/features/step_definitons/calculator_steps.rb +19 -0
  187. data/examples/i18n/uk/features/support/env.rb +5 -0
  188. data/examples/i18n/uk/features/support/world.rb +8 -0
  189. data/examples/i18n/uk/lib/calculator.rb +24 -0
  190. data/examples/i18n/uz/Rakefile +6 -0
  191. data/examples/i18n/uz/features/addition.feature +10 -0
  192. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  193. data/examples/i18n/uz/features/division.feature +17 -0
  194. data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
  195. data/examples/i18n/uz/features/support/env.rb +5 -0
  196. data/examples/i18n/uz/features/support/world.rb +8 -0
  197. data/examples/i18n/uz/lib/calculator.rb +24 -0
  198. data/examples/i18n/zh-CN/Rakefile +4 -0
  199. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  200. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  201. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  202. data/examples/i18n/zh-TW/.gitignore +1 -0
  203. data/examples/i18n/zh-TW/Rakefile +4 -0
  204. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  205. data/examples/i18n/zh-TW/features/division.feature +11 -0
  206. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  207. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  208. data/examples/python/README.textile +7 -0
  209. data/examples/python/Rakefile +4 -0
  210. data/examples/python/features/fibonacci.feature +19 -0
  211. data/examples/python/features/step_definitions/fib_steps.py +11 -0
  212. data/examples/python/lib/.gitignore +1 -0
  213. data/examples/python/lib/fib.py +7 -0
  214. data/examples/ramaze/README.textile +7 -0
  215. data/examples/ramaze/Rakefile +6 -0
  216. data/examples/ramaze/app.rb +21 -0
  217. data/examples/ramaze/features/add.feature +11 -0
  218. data/examples/ramaze/features/step_definitions/add_steps.rb +15 -0
  219. data/examples/ramaze/features/support/env.rb +32 -0
  220. data/examples/ramaze/layout/default.html.erb +8 -0
  221. data/examples/ramaze/view/index.html.erb +5 -0
  222. data/examples/rspec_doubles/Rakefile +4 -0
  223. data/examples/rspec_doubles/features/mocking.feature +9 -0
  224. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +19 -0
  225. data/examples/rspec_doubles/features/support/env.rb +12 -0
  226. data/examples/ruby2python/README.textile +7 -0
  227. data/examples/ruby2python/Rakefile +4 -0
  228. data/examples/ruby2python/features/fibonacci.feature +19 -0
  229. data/examples/ruby2python/features/step_definitions/fib_steps.rb +7 -0
  230. data/examples/ruby2python/features/support/env.rb +21 -0
  231. data/examples/ruby2python/lib/.gitignore +1 -0
  232. data/examples/ruby2python/lib/fib.py +7 -0
  233. data/examples/sinatra/README.textile +13 -0
  234. data/examples/sinatra/Rakefile +6 -0
  235. data/examples/sinatra/app.rb +14 -0
  236. data/examples/sinatra/features/add.feature +11 -0
  237. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  238. data/examples/sinatra/features/support/env.rb +10 -0
  239. data/examples/sinatra/views/add.erb +7 -0
  240. data/examples/sinatra/views/layout.erb +8 -0
  241. data/examples/tcl/README.textile +11 -0
  242. data/examples/tcl/Rakefile +6 -0
  243. data/examples/tcl/features/fibonnacci.feature +17 -0
  244. data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
  245. data/examples/tcl/features/support/env.rb +6 -0
  246. data/examples/tcl/src/fib.tcl +3 -0
  247. data/examples/test_unit/Rakefile +6 -0
  248. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  249. data/examples/test_unit/features/test_unit.feature +9 -0
  250. data/examples/v8/Rakefile +6 -0
  251. data/examples/v8/features/fibonacci.feature +43 -0
  252. data/examples/v8/features/step_definitions/fib_steps.js +49 -0
  253. data/examples/v8/features/support/env.js +14 -0
  254. data/examples/v8/lib/fibonacci.js +19 -0
  255. data/examples/watir/.gitignore +2 -0
  256. data/examples/watir/README.textile +16 -0
  257. data/examples/watir/Rakefile +12 -0
  258. data/examples/watir/cucumber.yml +1 -0
  259. data/examples/watir/features/search.feature +12 -0
  260. data/examples/watir/features/step_definitions/search_steps.rb +26 -0
  261. data/examples/watir/features/support/env.rb +32 -0
  262. data/examples/watir/features/support/screenshots.rb +47 -0
  263. data/features/background.feature +498 -0
  264. data/features/bootstrap.feature +13 -0
  265. data/features/custom_formatter.feature +41 -0
  266. data/features/execute_with_tag_filter.feature +63 -0
  267. data/features/hooks.feature +59 -0
  268. data/features/iso-8859-1.feature +6 -0
  269. data/features/json_formatter.feature +248 -0
  270. data/features/stats_formatters.feature +70 -0
  271. data/features/step_definitions/cucumber-features/cucumber_ruby_mappings.rb +168 -0
  272. data/features/step_definitions/cucumber_steps.rb +23 -0
  273. data/features/step_definitions/iso-8859-1_steps.rb +24 -0
  274. data/features/support/env.rb +26 -0
  275. data/features/tagged_hooks.feature +217 -0
  276. data/features/transforms.feature +63 -0
  277. data/fixtures/json/features/background.feature +7 -0
  278. data/fixtures/json/features/embed.feature +4 -0
  279. data/fixtures/json/features/one_passing_one_failing.feature +11 -0
  280. data/fixtures/json/features/step_definitions/steps.rb +32 -0
  281. data/fixtures/json/features/tables.feature +13 -0
  282. data/fixtures/junit/features/one_passing_one_failing.feature +8 -0
  283. data/fixtures/junit/features/pending.feature +7 -0
  284. data/fixtures/junit/features/scenario_outline.feature +9 -0
  285. data/fixtures/junit/features/some_subdirectory/one_passing_one_failing.feature +8 -0
  286. data/fixtures/junit/features/step_definitions/steps.rb +11 -0
  287. data/fixtures/self_test/.gitignore +1 -0
  288. data/fixtures/self_test/README.textile +6 -0
  289. data/fixtures/self_test/Rakefile +6 -0
  290. data/fixtures/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  291. data/fixtures/self_test/features/failing_expectation.feature +4 -0
  292. data/fixtures/self_test/features/lots_of_undefined.feature +8 -0
  293. data/fixtures/self_test/features/multiline_name.feature +27 -0
  294. data/fixtures/self_test/features/outline_sample.feature +15 -0
  295. data/fixtures/self_test/features/sample.feature +21 -0
  296. data/fixtures/self_test/features/search_sample.feature +32 -0
  297. data/fixtures/self_test/features/step_definitions/sample_steps.rb +84 -0
  298. data/fixtures/self_test/features/support/bubble_256x256.png +0 -0
  299. data/fixtures/self_test/features/support/env.rb +26 -0
  300. data/fixtures/self_test/features/tags_sample.feature +17 -0
  301. data/fixtures/self_test/features/tons_of_cukes.feature +52 -0
  302. data/fixtures/self_test/features/undefined_multiline_args.feature +12 -0
  303. data/fixtures/self_test/list-of-features.txt +1 -0
  304. data/fixtures/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  305. data/fixtures/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  306. data/fixtures/tickets/Rakefile +20 -0
  307. data/fixtures/tickets/features.html +138 -0
  308. data/fixtures/tickets/features/172.feature +28 -0
  309. data/fixtures/tickets/features/177/1.feature +28 -0
  310. data/fixtures/tickets/features/177/2.feature +20 -0
  311. data/fixtures/tickets/features/177/3.feature +18 -0
  312. data/fixtures/tickets/features/180.feature +7 -0
  313. data/fixtures/tickets/features/229/tagged_hooks.feature +8 -0
  314. data/fixtures/tickets/features/229/tagged_hooks.rb +14 -0
  315. data/fixtures/tickets/features/236.feature +13 -0
  316. data/fixtures/tickets/features/241.feature +12 -0
  317. data/fixtures/tickets/features/246.feature +4 -0
  318. data/fixtures/tickets/features/248.feature +11 -0
  319. data/fixtures/tickets/features/270/back.feature +14 -0
  320. data/fixtures/tickets/features/270/back.steps.rb +14 -0
  321. data/fixtures/tickets/features/272/hooks.feature +26 -0
  322. data/fixtures/tickets/features/272/hooks_steps.rb +53 -0
  323. data/fixtures/tickets/features/279/py_string_indent.feature +25 -0
  324. data/fixtures/tickets/features/279/py_string_indent.steps.rb +12 -0
  325. data/fixtures/tickets/features/279/wrong.feature_ +11 -0
  326. data/fixtures/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  327. data/fixtures/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  328. data/fixtures/tickets/features/306/only_background.feature +4 -0
  329. data/fixtures/tickets/features/around_timeout.feature +6 -0
  330. data/fixtures/tickets/features/gherkin_67.feature +12 -0
  331. data/fixtures/tickets/features/gherkin_68.feature +4 -0
  332. data/fixtures/tickets/features/half_manual.feature +11 -0
  333. data/fixtures/tickets/features/lib/eatting_machine.rb +18 -0
  334. data/fixtures/tickets/features/lib/pantry.rb +20 -0
  335. data/fixtures/tickets/features/scenario_outline.feature +95 -0
  336. data/fixtures/tickets/features/step_definitons/246_steps.rb +3 -0
  337. data/fixtures/tickets/features/step_definitons/248_steps.rb +15 -0
  338. data/fixtures/tickets/features/step_definitons/around_timeout_steps.rb +9 -0
  339. data/fixtures/tickets/features/step_definitons/half_manual_steps.rb +11 -0
  340. data/fixtures/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  341. data/fixtures/tickets/features/step_definitons/tickets_steps.rb +88 -0
  342. data/fixtures/tickets/features/table_diffing.feature +13 -0
  343. data/fixtures/tickets/features/tickets.feature +28 -0
  344. data/gem_tasks/contributors.rake +15 -0
  345. data/gem_tasks/cucumber.rake +21 -0
  346. data/gem_tasks/downloads.rb +7 -0
  347. data/gem_tasks/environment.rake +7 -0
  348. data/gem_tasks/examples.rake +11 -0
  349. data/gem_tasks/fix_cr_lf.rake +10 -0
  350. data/gem_tasks/flog.rake +4 -0
  351. data/gem_tasks/rspec.rake +8 -0
  352. data/gem_tasks/sass.rake +4 -0
  353. data/gem_tasks/stats +14 -0
  354. data/gem_tasks/versions.txt +74 -0
  355. data/gem_tasks/yard.rake +0 -0
  356. data/gem_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
  357. data/gem_tasks/yard/default/layout/html/footer.erb +5 -0
  358. data/gem_tasks/yard/default/layout/html/index.erb +1 -0
  359. data/gem_tasks/yard/default/layout/html/layout.erb +25 -0
  360. data/gem_tasks/yard/default/layout/html/logo.erb +1 -0
  361. data/gem_tasks/yard/default/layout/html/setup.rb +4 -0
  362. data/legacy_features/announce.feature +152 -0
  363. data/legacy_features/api/list_step_defs_as_json.feature +50 -0
  364. data/legacy_features/api/run_cli_main_with_existing_runtime.feature +34 -0
  365. data/legacy_features/around_hooks.feature +232 -0
  366. data/legacy_features/bug_371.feature +32 -0
  367. data/legacy_features/bug_464.feature +16 -0
  368. data/legacy_features/bug_475.feature +42 -0
  369. data/legacy_features/bug_585_tab_indentation.feature +22 -0
  370. data/legacy_features/bug_600.feature +73 -0
  371. data/legacy_features/call_steps_from_stepdefs.feature +154 -0
  372. data/legacy_features/cucumber_cli.feature +591 -0
  373. data/legacy_features/cucumber_cli_outlines.feature +117 -0
  374. data/legacy_features/default_snippets.feature +42 -0
  375. data/legacy_features/diffing.feature +25 -0
  376. data/legacy_features/drb_server_integration.feature +174 -0
  377. data/legacy_features/exception_in_after_block.feature +127 -0
  378. data/legacy_features/exception_in_after_step_block.feature +104 -0
  379. data/legacy_features/exception_in_before_block.feature +98 -0
  380. data/legacy_features/exclude_files.feature +20 -0
  381. data/legacy_features/expand.feature +60 -0
  382. data/legacy_features/html_formatter.feature +8 -0
  383. data/legacy_features/html_formatter/a.html +561 -0
  384. data/legacy_features/junit_formatter.feature +164 -0
  385. data/legacy_features/language_from_header.feature +30 -0
  386. data/legacy_features/language_help.feature +77 -0
  387. data/legacy_features/listener_debugger_formatter.feature +42 -0
  388. data/legacy_features/multiline_names.feature +44 -0
  389. data/legacy_features/post_configuration_hook.feature +50 -0
  390. data/legacy_features/profiles.feature +126 -0
  391. data/legacy_features/rake_task.feature +152 -0
  392. data/legacy_features/report_called_undefined_steps.feature +34 -0
  393. data/legacy_features/rerun_formatter.feature +52 -0
  394. data/legacy_features/simplest.feature +11 -0
  395. data/legacy_features/snippet.feature +23 -0
  396. data/legacy_features/snippets_when_using_star_keyword.feature +36 -0
  397. data/legacy_features/step_definitions/cucumber_steps.rb +172 -0
  398. data/legacy_features/step_definitions/extra_steps.rb +2 -0
  399. data/legacy_features/step_definitions/simplest_steps.rb +3 -0
  400. data/legacy_features/step_definitions/wire_steps.rb +34 -0
  401. data/legacy_features/support/env.rb +157 -0
  402. data/legacy_features/support/env.rb.simplest +7 -0
  403. data/legacy_features/support/fake_wire_server.rb +77 -0
  404. data/legacy_features/table_diffing.feature +45 -0
  405. data/legacy_features/table_mapping.feature +34 -0
  406. data/legacy_features/transform.feature +245 -0
  407. data/legacy_features/unicode_table.feature +35 -0
  408. data/legacy_features/wire_protocol.feature +332 -0
  409. data/legacy_features/wire_protocol_erb.feature +57 -0
  410. data/legacy_features/wire_protocol_table_diffing.feature +119 -0
  411. data/legacy_features/wire_protocol_tags.feature +87 -0
  412. data/legacy_features/wire_protocol_timeouts.feature +63 -0
  413. data/legacy_features/work_in_progress.feature +156 -0
  414. data/lib/README.rdoc +12 -0
  415. data/lib/autotest/cucumber.rb +6 -0
  416. data/lib/autotest/cucumber_mixin.rb +135 -0
  417. data/lib/autotest/cucumber_rails.rb +6 -0
  418. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  419. data/lib/autotest/cucumber_rails_rspec2.rb +6 -0
  420. data/lib/autotest/cucumber_rspec.rb +6 -0
  421. data/lib/autotest/cucumber_rspec2.rb +6 -0
  422. data/lib/autotest/discover.rb +9 -0
  423. data/lib/cucumber.rb +27 -0
  424. data/lib/cucumber/ast.rb +30 -0
  425. data/lib/cucumber/ast/background.rb +101 -0
  426. data/lib/cucumber/ast/comment.rb +31 -0
  427. data/lib/cucumber/ast/doc_string.rb +80 -0
  428. data/lib/cucumber/ast/examples.rb +46 -0
  429. data/lib/cucumber/ast/feature.rb +106 -0
  430. data/lib/cucumber/ast/feature_element.rb +78 -0
  431. data/lib/cucumber/ast/features.rb +35 -0
  432. data/lib/cucumber/ast/names.rb +13 -0
  433. data/lib/cucumber/ast/outline_table.rb +187 -0
  434. data/lib/cucumber/ast/scenario.rb +119 -0
  435. data/lib/cucumber/ast/scenario_outline.rb +125 -0
  436. data/lib/cucumber/ast/step.rb +126 -0
  437. data/lib/cucumber/ast/step_collection.rb +76 -0
  438. data/lib/cucumber/ast/step_invocation.rb +206 -0
  439. data/lib/cucumber/ast/table.rb +689 -0
  440. data/lib/cucumber/ast/tags.rb +28 -0
  441. data/lib/cucumber/ast/tree_walker.rb +183 -0
  442. data/lib/cucumber/ast/visitor.rb +11 -0
  443. data/lib/cucumber/broadcaster.rb +13 -0
  444. data/lib/cucumber/cli/configuration.rb +209 -0
  445. data/lib/cucumber/cli/drb_client.rb +43 -0
  446. data/lib/cucumber/cli/main.rb +78 -0
  447. data/lib/cucumber/cli/options.rb +410 -0
  448. data/lib/cucumber/cli/profile_loader.rb +91 -0
  449. data/lib/cucumber/configuration.rb +49 -0
  450. data/lib/cucumber/constantize.rb +34 -0
  451. data/lib/cucumber/core_ext/disable_mini_and_test_unit_autorun.rb +25 -0
  452. data/lib/cucumber/core_ext/instance_exec.rb +98 -0
  453. data/lib/cucumber/core_ext/proc.rb +34 -0
  454. data/lib/cucumber/core_ext/string.rb +9 -0
  455. data/lib/cucumber/errors.rb +40 -0
  456. data/lib/cucumber/feature_file.rb +101 -0
  457. data/lib/cucumber/formatter/ansicolor.rb +160 -0
  458. data/lib/cucumber/formatter/console.rb +187 -0
  459. data/lib/cucumber/formatter/cucumber.css +279 -0
  460. data/lib/cucumber/formatter/cucumber.sass +247 -0
  461. data/lib/cucumber/formatter/debug.rb +33 -0
  462. data/lib/cucumber/formatter/duration.rb +13 -0
  463. data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +83 -0
  464. data/lib/cucumber/formatter/gpretty.rb +24 -0
  465. data/lib/cucumber/formatter/html.rb +649 -0
  466. data/lib/cucumber/formatter/io.rb +31 -0
  467. data/lib/cucumber/formatter/jquery-min.js +154 -0
  468. data/lib/cucumber/formatter/json.rb +31 -0
  469. data/lib/cucumber/formatter/json_pretty.rb +13 -0
  470. data/lib/cucumber/formatter/junit.rb +155 -0
  471. data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
  472. data/lib/cucumber/formatter/pdf.rb +244 -0
  473. data/lib/cucumber/formatter/pretty.rb +237 -0
  474. data/lib/cucumber/formatter/progress.rb +92 -0
  475. data/lib/cucumber/formatter/rerun.rb +68 -0
  476. data/lib/cucumber/formatter/stepdefs.rb +14 -0
  477. data/lib/cucumber/formatter/steps.rb +49 -0
  478. data/lib/cucumber/formatter/summary.rb +35 -0
  479. data/lib/cucumber/formatter/unicode.rb +79 -0
  480. data/lib/cucumber/formatter/usage.rb +127 -0
  481. data/lib/cucumber/js_support/js_dsl.js +57 -0
  482. data/lib/cucumber/js_support/js_language.rb +185 -0
  483. data/lib/cucumber/js_support/js_snippets.rb +27 -0
  484. data/lib/cucumber/language_support.rb +30 -0
  485. data/lib/cucumber/language_support/language_methods.rb +129 -0
  486. data/lib/cucumber/parser.rb +2 -0
  487. data/lib/cucumber/parser/gherkin_builder.rb +129 -0
  488. data/lib/cucumber/platform.rb +29 -0
  489. data/lib/cucumber/py_support/py_dsl.py +10 -0
  490. data/lib/cucumber/py_support/py_language.py +10 -0
  491. data/lib/cucumber/py_support/py_language.rb +84 -0
  492. data/lib/cucumber/rake/task.rb +225 -0
  493. data/lib/cucumber/rb_support/rb_dsl.rb +112 -0
  494. data/lib/cucumber/rb_support/rb_hook.rb +18 -0
  495. data/lib/cucumber/rb_support/rb_language.rb +195 -0
  496. data/lib/cucumber/rb_support/rb_step_definition.rb +82 -0
  497. data/lib/cucumber/rb_support/rb_transform.rb +54 -0
  498. data/lib/cucumber/rb_support/rb_world.rb +103 -0
  499. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
  500. data/lib/cucumber/rspec/disable_option_parser.rb +23 -0
  501. data/lib/cucumber/rspec/doubles.rb +16 -0
  502. data/lib/cucumber/runtime.rb +145 -0
  503. data/lib/cucumber/runtime/features_loader.rb +62 -0
  504. data/lib/cucumber/runtime/for_programming_languages.rb +67 -0
  505. data/lib/cucumber/runtime/results.rb +64 -0
  506. data/lib/cucumber/runtime/support_code.rb +203 -0
  507. data/lib/cucumber/runtime/user_interface.rb +81 -0
  508. data/lib/cucumber/step_argument.rb +9 -0
  509. data/lib/cucumber/step_definition_light.rb +20 -0
  510. data/lib/cucumber/step_definitions.rb +14 -0
  511. data/lib/cucumber/step_match.rb +115 -0
  512. data/lib/cucumber/step_mother.rb +10 -0
  513. data/lib/cucumber/wire_support/configuration.rb +31 -0
  514. data/lib/cucumber/wire_support/connection.rb +55 -0
  515. data/lib/cucumber/wire_support/request_handler.rb +32 -0
  516. data/lib/cucumber/wire_support/wire_exception.rb +32 -0
  517. data/lib/cucumber/wire_support/wire_language.rb +54 -0
  518. data/lib/cucumber/wire_support/wire_packet.rb +32 -0
  519. data/lib/cucumber/wire_support/wire_protocol.rb +44 -0
  520. data/lib/cucumber/wire_support/wire_protocol/requests.rb +123 -0
  521. data/lib/cucumber/wire_support/wire_step_definition.rb +26 -0
  522. data/spec/cucumber/ast/background_spec.rb +115 -0
  523. data/spec/cucumber/ast/doc_string_spec.rb +40 -0
  524. data/spec/cucumber/ast/feature_factory.rb +61 -0
  525. data/spec/cucumber/ast/feature_spec.rb +63 -0
  526. data/spec/cucumber/ast/outline_table_spec.rb +21 -0
  527. data/spec/cucumber/ast/scenario_outline_spec.rb +69 -0
  528. data/spec/cucumber/ast/step_spec.rb +66 -0
  529. data/spec/cucumber/ast/table_spec.rb +484 -0
  530. data/spec/cucumber/ast/tree_walker_spec.rb +11 -0
  531. data/spec/cucumber/broadcaster_spec.rb +15 -0
  532. data/spec/cucumber/cli/configuration_spec.rb +431 -0
  533. data/spec/cucumber/cli/drb_client_spec.rb +76 -0
  534. data/spec/cucumber/cli/main_spec.rb +137 -0
  535. data/spec/cucumber/cli/options_spec.rb +358 -0
  536. data/spec/cucumber/cli/profile_loader_spec.rb +35 -0
  537. data/spec/cucumber/configuration_spec.rb +23 -0
  538. data/spec/cucumber/core_ext/proc_spec.rb +68 -0
  539. data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
  540. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  541. data/spec/cucumber/formatter/html_spec.rb +256 -0
  542. data/spec/cucumber/formatter/junit_spec.rb +125 -0
  543. data/spec/cucumber/formatter/progress_spec.rb +38 -0
  544. data/spec/cucumber/formatter/spec_helper.rb +52 -0
  545. data/spec/cucumber/rake/forked_spec.rb +62 -0
  546. data/spec/cucumber/rake/rcov_spec.rb +71 -0
  547. data/spec/cucumber/rb_support/rb_language_spec.rb +282 -0
  548. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +98 -0
  549. data/spec/cucumber/rb_support/rb_transform_spec.rb +21 -0
  550. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
  551. data/spec/cucumber/runtime/support_code_spec.rb +112 -0
  552. data/spec/cucumber/runtime_spec.rb +41 -0
  553. data/spec/cucumber/sell_cucumbers.feature +19 -0
  554. data/spec/cucumber/step_match_spec.rb +69 -0
  555. data/spec/cucumber/wire_support/configuration_spec.rb +51 -0
  556. data/spec/cucumber/wire_support/connection_spec.rb +46 -0
  557. data/spec/cucumber/wire_support/wire_exception_spec.rb +44 -0
  558. data/spec/cucumber/wire_support/wire_language_spec.rb +47 -0
  559. data/spec/cucumber/wire_support/wire_packet_spec.rb +40 -0
  560. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +20 -0
  561. data/spec/cucumber/world/pending_spec.rb +46 -0
  562. data/spec/spec_helper.rb +22 -0
  563. metadata +1044 -0
@@ -0,0 +1,154 @@
1
+ Feature: http://gist.github.com/221223
2
+ In order to make it easier to extract several steps from
3
+ a feature file to a step definition I want to be able to
4
+ copy and paste.
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/f.feature" with:
9
+ """
10
+ Feature: Test
11
+
12
+ Scenario: Multiline string
13
+ Given a multiline string:
14
+ \"\"\"
15
+ hello
16
+ world
17
+ \"\"\"
18
+
19
+ Scenario: Call a multiline string
20
+ Given I call a multiline string with MAMA
21
+
22
+ Scenario: Call a table
23
+ Given I call a table with MAMA
24
+
25
+ Scenario: Call a multiline string using keyword
26
+ Given I use keyword to call a multiline string with BANG
27
+ """
28
+ And a file named "features/step_definitions/steps.rb" with:
29
+ """
30
+ And /^a multiline string:$/ do |s| x=1
31
+ raise "I got multiline:\n#{s}"
32
+ end
33
+
34
+ Given /^a table:$/ do |t| x=1
35
+ raise "I got table:\n#{t.raw.inspect}"
36
+ end
37
+
38
+ Given /^I call a multiline string with (.*)$/ do |s| x=1
39
+ steps %Q{
40
+ And a multiline string:
41
+ \"\"\"
42
+ hello
43
+ #{s}
44
+ \"\"\"
45
+ }
46
+ end
47
+
48
+ Given /^I use keyword to call a multiline string with (.*)$/ do |s| x=1
49
+ Given 'a multiline string:', "Hello\n#{s}"
50
+ end
51
+
52
+ Given /^I call a table with (.*)$/ do |s| x=1
53
+ steps %Q{
54
+ Given a table:
55
+ |a|b|
56
+ |c|#{s}|
57
+ }
58
+ end
59
+ """
60
+
61
+ Scenario: Multiline string
62
+ When I run cucumber features/f.feature:3
63
+ Then STDERR should be empty
64
+ And it should fail with
65
+ """
66
+ Feature: Test
67
+
68
+ Scenario: Multiline string # features/f.feature:3
69
+ Given a multiline string: # features/step_definitions/steps.rb:1
70
+ \"\"\"
71
+ hello
72
+ world
73
+ \"\"\"
74
+ I got multiline:
75
+ hello
76
+ world (RuntimeError)
77
+ ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
78
+ features/f.feature:4:in `Given a multiline string:'
79
+
80
+ Failing Scenarios:
81
+ cucumber features/f.feature:3 # Scenario: Multiline string
82
+
83
+ 1 scenario (1 failed)
84
+ 1 step (1 failed)
85
+
86
+ """
87
+
88
+ Scenario: Call multiline string
89
+ When I run cucumber features/f.feature:10
90
+ Then STDERR should be empty
91
+ And it should fail with
92
+ """
93
+ Feature: Test
94
+
95
+ Scenario: Call a multiline string # features/f.feature:10
96
+ Given I call a multiline string with MAMA # features/step_definitions/steps.rb:9
97
+ I got multiline:
98
+ hello
99
+ MAMA (RuntimeError)
100
+ ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
101
+ features/f.feature:11:in `Given I call a multiline string with MAMA'
102
+
103
+ Failing Scenarios:
104
+ cucumber features/f.feature:10 # Scenario: Call a multiline string
105
+
106
+ 1 scenario (1 failed)
107
+ 1 step (1 failed)
108
+
109
+ """
110
+
111
+ Scenario: Call table
112
+ When I run cucumber features/f.feature:13
113
+ Then STDERR should be empty
114
+ And it should fail with
115
+ """
116
+ Feature: Test
117
+
118
+ Scenario: Call a table # features/f.feature:13
119
+ Given I call a table with MAMA # features/step_definitions/steps.rb:23
120
+ I got table:
121
+ [["a", "b"], ["c", "MAMA"]] (RuntimeError)
122
+ ./features/step_definitions/steps.rb:6:in `/^a table:$/'
123
+ features/f.feature:14:in `Given I call a table with MAMA'
124
+
125
+ Failing Scenarios:
126
+ cucumber features/f.feature:13 # Scenario: Call a table
127
+
128
+ 1 scenario (1 failed)
129
+ 1 step (1 failed)
130
+
131
+ """
132
+
133
+ Scenario: Call multiline string with keyword
134
+ When I run cucumber features/f.feature:16
135
+ Then STDERR should be empty
136
+ And it should fail with
137
+ """
138
+ Feature: Test
139
+
140
+ Scenario: Call a multiline string using keyword # features/f.feature:16
141
+ Given I use keyword to call a multiline string with BANG # features/step_definitions/steps.rb:19
142
+ I got multiline:
143
+ Hello
144
+ BANG (RuntimeError)
145
+ ./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
146
+ features/f.feature:17:in `Given I use keyword to call a multiline string with BANG'
147
+
148
+ Failing Scenarios:
149
+ cucumber features/f.feature:16 # Scenario: Call a multiline string using keyword
150
+
151
+ 1 scenario (1 failed)
152
+ 1 step (1 failed)
153
+
154
+ """
@@ -0,0 +1,591 @@
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
+ Scenario: Specify 2 line numbers where one is a tag
62
+ When I run cucumber -q features/sample.feature:5:16
63
+ Then it should fail with
64
+ """
65
+ # Feature comment
66
+ @one
67
+ Feature: Sample
68
+
69
+ @two @three
70
+ Scenario: Missing
71
+ Given missing
72
+
73
+ @four
74
+ Scenario: Failing
75
+ Given failing
76
+ \"\"\"
77
+ hello
78
+ \"\"\"
79
+ FAIL (RuntimeError)
80
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
81
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
82
+ features/sample.feature:18:in `Given failing'
83
+
84
+ Failing Scenarios:
85
+ cucumber features/sample.feature:17
86
+
87
+ 2 scenarios (1 failed, 1 undefined)
88
+ 2 steps (1 failed, 1 undefined)
89
+
90
+ """
91
+
92
+ Scenario: Require missing step definition from elsewhere
93
+ When I run cucumber -q -r ../../legacy_features/step_definitions/extra_steps.rb features/sample.feature:5
94
+ Then it should pass with
95
+ """
96
+ # Feature comment
97
+ @one
98
+ Feature: Sample
99
+
100
+ @two @three
101
+ Scenario: Missing
102
+ Given missing
103
+
104
+ 1 scenario (1 passed)
105
+ 1 step (1 passed)
106
+
107
+ """
108
+
109
+ Scenario: Specify the line number of a row
110
+ When I run cucumber -q features/sample.feature:12
111
+ Then it should pass with
112
+ """
113
+ # Feature comment
114
+ @one
115
+ Feature: Sample
116
+
117
+ # Scenario comment
118
+ @three
119
+ Scenario: Passing
120
+ Given passing
121
+ | a | b |
122
+ | c | d |
123
+
124
+ 1 scenario (1 passed)
125
+ 1 step (1 passed)
126
+
127
+ """
128
+
129
+ Scenario: Use @-notation to specify a file containing feature file list
130
+ When I run cucumber -q @list-of-features.txt
131
+ Then it should pass with
132
+ """
133
+ # Feature comment
134
+ @one
135
+ Feature: Sample
136
+
137
+ # Scenario comment
138
+ @three
139
+ Scenario: Passing
140
+ Given passing
141
+ | a | b |
142
+ | c | d |
143
+
144
+ 1 scenario (1 passed)
145
+ 1 step (1 passed)
146
+
147
+ """
148
+
149
+ Scenario: Run all with progress formatter
150
+ When I run cucumber -q --format progress features/sample.feature
151
+ Then it should fail with
152
+ """
153
+ U.F
154
+
155
+ (::) failed steps (::)
156
+
157
+ FAIL (RuntimeError)
158
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
159
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
160
+ features/sample.feature:18:in `Given failing'
161
+
162
+ Failing Scenarios:
163
+ cucumber features/sample.feature:17
164
+
165
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
166
+ 3 steps (1 failed, 1 undefined, 1 passed)
167
+
168
+ """
169
+
170
+ Scenario: --dry-run
171
+ When I run cucumber --dry-run --no-source features/*.feature --tags ~@lots
172
+ Then it should pass with
173
+ """
174
+ Feature: Calling undefined step
175
+
176
+ Scenario: Call directly
177
+ Given a step definition that calls an undefined step
178
+
179
+ Scenario: Call via another
180
+ Given call step "a step definition that calls an undefined step"
181
+
182
+ Feature: Failing expectation
183
+
184
+ Scenario: Failing expectation
185
+ Given failing expectation
186
+
187
+ Feature: Lots of undefined
188
+
189
+ Scenario: Implement me
190
+ Given it snows in Sahara
191
+ Given it's 40 degrees in Norway
192
+ And it's 40 degrees in Norway
193
+ When I stop procrastinating
194
+ And there is world peace
195
+
196
+ Feature: multiline
197
+
198
+ Background: I'm a multiline name
199
+ which goes on and on and on for three lines
200
+ yawn
201
+ Given passing without a table
202
+
203
+ Scenario: I'm a multiline name
204
+ which goes on and on and on for three lines
205
+ yawn
206
+ Given passing without a table
207
+
208
+ Scenario Outline: I'm a multiline name
209
+ which goes on and on and on for three lines
210
+ yawn
211
+ Given <state> without a table
212
+
213
+ Examples:
214
+ | state |
215
+ | passing |
216
+
217
+ Scenario Outline: name
218
+ Given <state> without a table
219
+
220
+ Examples: I'm a multiline name
221
+ which goes on and on and on for three lines
222
+ yawn
223
+ | state |
224
+ | passing |
225
+
226
+ Feature: Outline Sample
227
+
228
+ Scenario: I have no steps
229
+
230
+ Scenario Outline: Test state
231
+ Given <state> without a table
232
+ Given <other_state> without a table
233
+
234
+ Examples: Rainbow colours
235
+ | state | other_state |
236
+ | missing | passing |
237
+ | passing | passing |
238
+ | failing | passing |
239
+
240
+ Examples: Only passing
241
+ | state | other_state |
242
+ | passing | passing |
243
+
244
+ # Feature comment
245
+ @one
246
+ Feature: Sample
247
+
248
+ @two @three
249
+ Scenario: Missing
250
+ Given missing
251
+
252
+ # Scenario comment
253
+ @three
254
+ Scenario: Passing
255
+ Given passing
256
+ | a | b |
257
+ | c | d |
258
+
259
+ @four
260
+ Scenario: Failing
261
+ Given failing
262
+ \"\"\"
263
+ hello
264
+ \"\"\"
265
+
266
+ Feature: search examples
267
+
268
+ Background: Hantu Pisang background match
269
+ Given passing without a table
270
+
271
+ Scenario: should match Hantu Pisang
272
+ Given passing without a table
273
+
274
+ Scenario: Ignore me
275
+ Given failing without a table
276
+
277
+ Scenario Outline: Ignore me
278
+ Given <state> without a table
279
+
280
+ Examples:
281
+ | state |
282
+ | failing |
283
+
284
+ Scenario Outline: Hantu Pisang match
285
+ Given <state> without a table
286
+
287
+ Examples:
288
+ | state |
289
+ | passing |
290
+
291
+ Scenario Outline: no match in name but in examples
292
+ Given <state> without a table
293
+
294
+ Examples: Hantu Pisang
295
+ | state |
296
+ | passing |
297
+
298
+ Examples: Ignore me
299
+ | state |
300
+ | failing |
301
+
302
+ @sample_one
303
+ Feature: Tag samples
304
+
305
+ @sample_two @sample_four
306
+ Scenario: Passing
307
+ Given missing
308
+
309
+ @sample_three
310
+ Scenario Outline:
311
+ Given <state>
312
+
313
+ Examples:
314
+ | state |
315
+ | missing |
316
+
317
+ @sample_three @sample_four
318
+ Scenario: Skipped
319
+ Given missing
320
+
321
+ Feature: undefined multiline args
322
+
323
+ Scenario: pystring
324
+ Given a pystring
325
+ \"\"\"
326
+ example with <html> entities
327
+ \"\"\"
328
+
329
+ Scenario: table
330
+ Given a table
331
+ | table |
332
+ | example |
333
+
334
+ 26 scenarios (17 skipped, 8 undefined, 1 passed)
335
+ 42 steps (30 skipped, 12 undefined)
336
+
337
+ """
338
+
339
+ Scenario: Multiple formatters and outputs
340
+ When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --no-source --dry-run --no-snippets features/lots_of_undefined.feature
341
+ Then STDERR should be empty
342
+ Then "fixtures/self_test/tmp/progress.txt" should contain
343
+ """
344
+ UUUUU
345
+
346
+ 1 scenario (1 undefined)
347
+ 5 steps (5 undefined)
348
+
349
+ """
350
+ And "fixtures/self_test/tmp/pretty.txt" should contain
351
+ """
352
+ Feature: Lots of undefined
353
+
354
+ Scenario: Implement me
355
+ Given it snows in Sahara
356
+ Given it's 40 degrees in Norway
357
+ And it's 40 degrees in Norway
358
+ When I stop procrastinating
359
+ And there is world peace
360
+
361
+ 1 scenario (1 undefined)
362
+ 5 steps (5 undefined)
363
+
364
+ """
365
+
366
+ Scenario: Run feature elements which matches a name using --name
367
+ When I run cucumber --name Pisang -q features/
368
+ Then it should pass with
369
+ """
370
+ Feature: search examples
371
+
372
+ Background: Hantu Pisang background match
373
+ Given passing without a table
374
+
375
+ Scenario: should match Hantu Pisang
376
+ Given passing without a table
377
+
378
+ Scenario Outline: Hantu Pisang match
379
+ Given <state> without a table
380
+
381
+ Examples:
382
+ | state |
383
+ | passing |
384
+
385
+ Scenario Outline: no match in name but in examples
386
+ Given <state> without a table
387
+
388
+ Examples: Hantu Pisang
389
+ | state |
390
+ | passing |
391
+
392
+ 3 scenarios (3 passed)
393
+ 6 steps (6 passed)
394
+
395
+ """
396
+
397
+ Scenario: Run a single background which matches a name using --name (Useful if there is an error in it)
398
+ When I run cucumber --name 'Hantu Pisang background' -q features/
399
+ Then it should pass with
400
+ """
401
+ Feature: search examples
402
+
403
+ Background: Hantu Pisang background match
404
+ Given passing without a table
405
+
406
+ 0 scenarios
407
+ 1 step (1 passed)
408
+
409
+ """
410
+
411
+
412
+ Scenario: Run with a tag that exists on 2 scenarios
413
+ When I run cucumber -q features --tags @three
414
+ Then it should pass with
415
+ """
416
+ # Feature comment
417
+ @one
418
+ Feature: Sample
419
+
420
+ @two @three
421
+ Scenario: Missing
422
+ Given missing
423
+
424
+ # Scenario comment
425
+ @three
426
+ Scenario: Passing
427
+ Given passing
428
+ | a | b |
429
+ | c | d |
430
+
431
+ 2 scenarios (1 undefined, 1 passed)
432
+ 2 steps (1 undefined, 1 passed)
433
+
434
+ """
435
+
436
+ Scenario: Run with a tag that exists on 1 feature
437
+ When I run cucumber -q features --tags @one
438
+ Then it should fail with
439
+ """
440
+ # Feature comment
441
+ @one
442
+ Feature: Sample
443
+
444
+ @two @three
445
+ Scenario: Missing
446
+ Given missing
447
+
448
+ # Scenario comment
449
+ @three
450
+ Scenario: Passing
451
+ Given passing
452
+ | a | b |
453
+ | c | d |
454
+
455
+ @four
456
+ Scenario: Failing
457
+ Given failing
458
+ \"\"\"
459
+ hello
460
+ \"\"\"
461
+ FAIL (RuntimeError)
462
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
463
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
464
+ features/sample.feature:18:in `Given failing'
465
+
466
+ Failing Scenarios:
467
+ cucumber features/sample.feature:17
468
+
469
+ 3 scenarios (1 failed, 1 undefined, 1 passed)
470
+ 3 steps (1 failed, 1 undefined, 1 passed)
471
+
472
+ """
473
+
474
+ Scenario: Run with a negative tag
475
+ When I run cucumber -q features/sample.feature --no-source --dry-run --tags ~@four
476
+ Then it should pass with
477
+ """
478
+ # Feature comment
479
+ @one
480
+ Feature: Sample
481
+
482
+ @two @three
483
+ Scenario: Missing
484
+ Given missing
485
+
486
+ # Scenario comment
487
+ @three
488
+ Scenario: Passing
489
+ Given passing
490
+ | a | b |
491
+ | c | d |
492
+
493
+ 2 scenarios (1 skipped, 1 undefined)
494
+ 2 steps (1 skipped, 1 undefined)
495
+
496
+ """
497
+
498
+ Scenario: Run with limited tag count, blowing it on scenario
499
+ When I run cucumber -q features/tags_sample.feature --no-source --dry-run --tags @sample_three:1
500
+ Then it should fail with
501
+ """
502
+ @sample_three occurred 2 times, but the limit was set to 1
503
+ features/tags_sample.feature:11
504
+ features/tags_sample.feature:16
505
+ """
506
+
507
+ Scenario: Run with limited tag count, blowing it via feature inheritance
508
+ When I run cucumber -q features/tags_sample.feature --no-source --dry-run --tags @sample_one:1
509
+ Then it should fail with
510
+ """
511
+ @sample_one occurred 3 times, but the limit was set to 1
512
+ features/tags_sample.feature:5
513
+ features/tags_sample.feature:11
514
+ features/tags_sample.feature:16
515
+ """
516
+
517
+ Scenario: Run with limited tag count using negative tag, blowing it via a tag that is not run
518
+ When I run cucumber -q features/tags_sample.feature --no-source --dry-run --tags ~@sample_one:1
519
+ Then it should fail with
520
+ """
521
+ @sample_one occurred 3 times, but the limit was set to 1
522
+ """
523
+
524
+ Scenario: Reformat files with --autoformat
525
+ When I run cucumber --autoformat tmp/formatted features
526
+ Then STDERR should be empty
527
+ Then "fixtures/self_test/tmp/formatted/features/sample.feature" should contain
528
+ """
529
+ # Feature comment
530
+ @one
531
+ Feature: Sample
532
+
533
+ @two @three
534
+ Scenario: Missing
535
+ Given missing
536
+
537
+ # Scenario comment
538
+ @three
539
+ Scenario: Passing
540
+ Given passing
541
+ | a | b |
542
+ | c | d |
543
+
544
+ @four
545
+ Scenario: Failing
546
+ Given failing
547
+ \"\"\"
548
+ hello
549
+ \"\"\"
550
+
551
+
552
+ """
553
+
554
+ # Fails on 1.9 because of encoding issues.
555
+ @fails_on_1_9
556
+ Scenario: Generate PDF with pdf formatter
557
+ When I run cucumber --format pdf --out tmp/sample.pdf --dry-run features/sample.feature
558
+ Then STDERR should be empty
559
+ Then "fixtures/self_test/tmp/sample.pdf" should match "Pages 2"
560
+
561
+ Scenario: Run feature elements which match a name using -n
562
+ When I run cucumber -n Pisang -q features/
563
+ Then STDERR should be empty
564
+ Then it should pass with
565
+ """
566
+ Feature: search examples
567
+
568
+ Background: Hantu Pisang background match
569
+ Given passing without a table
570
+
571
+ Scenario: should match Hantu Pisang
572
+ Given passing without a table
573
+
574
+ Scenario Outline: Hantu Pisang match
575
+ Given <state> without a table
576
+
577
+ Examples:
578
+ | state |
579
+ | passing |
580
+
581
+ Scenario Outline: no match in name but in examples
582
+ Given <state> without a table
583
+
584
+ Examples: Hantu Pisang
585
+ | state |
586
+ | passing |
587
+
588
+ 3 scenarios (3 passed)
589
+ 6 steps (6 passed)
590
+
591
+ """