davidtrogers-cucumber 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (522) hide show
  1. data/.gitattributes +1 -0
  2. data/.gitignore +21 -0
  3. data/Caliper.yml +5 -0
  4. data/History.txt +1380 -0
  5. data/LICENSE +22 -0
  6. data/README.rdoc +26 -0
  7. data/Rakefile +64 -0
  8. data/VERSION.yml +5 -0
  9. data/bin/cucumber +16 -0
  10. data/cucumber.yml +13 -0
  11. data/davidtrogers-cucumber.gemspec +767 -0
  12. data/examples/dos_line_endings/Rakefile +6 -0
  13. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
  14. data/examples/i18n/README.textile +18 -0
  15. data/examples/i18n/Rakefile +32 -0
  16. data/examples/i18n/ar/Rakefile +6 -0
  17. data/examples/i18n/ar/features/addition.feature +17 -0
  18. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
  19. data/examples/i18n/ar/lib/calculator.rb +11 -0
  20. data/examples/i18n/bg/Rakefile +6 -0
  21. data/examples/i18n/bg/features/addition.feature +12 -0
  22. data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
  23. data/examples/i18n/bg/features/division.feature +17 -0
  24. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  25. data/examples/i18n/bg/features/support/env.rb +5 -0
  26. data/examples/i18n/bg/features/support/world.rb +8 -0
  27. data/examples/i18n/bg/lib/calculator.rb +24 -0
  28. data/examples/i18n/cat/Rakefile +6 -0
  29. data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
  30. data/examples/i18n/cat/features/suma.feature +17 -0
  31. data/examples/i18n/cat/lib/calculadora.rb +16 -0
  32. data/examples/i18n/da/Rakefile +6 -0
  33. data/examples/i18n/da/features/sammenlaegning.feature +18 -0
  34. data/examples/i18n/da/features/step_definitons/lommeregner_steps.rb +24 -0
  35. data/examples/i18n/da/lib/lommeregner.rb +11 -0
  36. data/examples/i18n/de/.gitignore +1 -0
  37. data/examples/i18n/de/Rakefile +6 -0
  38. data/examples/i18n/de/features/addition.feature +17 -0
  39. data/examples/i18n/de/features/division.feature +10 -0
  40. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
  41. data/examples/i18n/de/lib/calculator.rb +14 -0
  42. data/examples/i18n/en-lol/Rakefile +4 -0
  43. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  44. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  45. data/examples/i18n/en-lol/features/support/env.rb +7 -0
  46. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  47. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  48. data/examples/i18n/en/.gitignore +1 -0
  49. data/examples/i18n/en/Rakefile +6 -0
  50. data/examples/i18n/en/features/addition.feature +17 -0
  51. data/examples/i18n/en/features/division.feature +10 -0
  52. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
  53. data/examples/i18n/en/lib/calculator.rb +14 -0
  54. data/examples/i18n/es/Rakefile +6 -0
  55. data/examples/i18n/es/features/adicion.feature +17 -0
  56. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
  57. data/examples/i18n/es/lib/calculador.rb +14 -0
  58. data/examples/i18n/et/Rakefile +6 -0
  59. data/examples/i18n/et/features/jagamine.feature +10 -0
  60. data/examples/i18n/et/features/liitmine.feature +17 -0
  61. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  62. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  63. data/examples/i18n/fi/.gitignore +1 -0
  64. data/examples/i18n/fi/Rakefile +6 -0
  65. data/examples/i18n/fi/features/jakolasku.feature +10 -0
  66. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  67. data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
  68. data/examples/i18n/fi/lib/laskin.rb +14 -0
  69. data/examples/i18n/fr/Rakefile +6 -0
  70. data/examples/i18n/fr/features/addition.feature +18 -0
  71. data/examples/i18n/fr/features/addition2.feature +17 -0
  72. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +32 -0
  73. data/examples/i18n/fr/features/support/env.rb +5 -0
  74. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  75. data/examples/i18n/he/Rakefile +6 -0
  76. data/examples/i18n/he/features/addition.feature +17 -0
  77. data/examples/i18n/he/features/division.feature +10 -0
  78. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  79. data/examples/i18n/he/lib/calculator.rb +15 -0
  80. data/examples/i18n/hu/.gitignore +1 -0
  81. data/examples/i18n/hu/Rakefile +6 -0
  82. data/examples/i18n/hu/features/addition.feature +17 -0
  83. data/examples/i18n/hu/features/division.feature +10 -0
  84. data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
  85. data/examples/i18n/hu/lib/calculator.rb +14 -0
  86. data/examples/i18n/id/.gitignore +1 -0
  87. data/examples/i18n/id/Rakefile +6 -0
  88. data/examples/i18n/id/features/addition.feature +17 -0
  89. data/examples/i18n/id/features/division.feature +10 -0
  90. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  91. data/examples/i18n/id/lib/calculator.rb +14 -0
  92. data/examples/i18n/it/Rakefile +6 -0
  93. data/examples/i18n/it/features/somma.feature +11 -0
  94. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  95. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  96. data/examples/i18n/ja/.gitignore +1 -0
  97. data/examples/i18n/ja/Rakefile +6 -0
  98. data/examples/i18n/ja/features/addition.feature +17 -0
  99. data/examples/i18n/ja/features/division.feature +10 -0
  100. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +19 -0
  101. data/examples/i18n/ja/features/support/env.rb +5 -0
  102. data/examples/i18n/ja/lib/calculator.rb +14 -0
  103. data/examples/i18n/ko/.gitignore +1 -0
  104. data/examples/i18n/ko/Rakefile +6 -0
  105. data/examples/i18n/ko/features/addition.feature +17 -0
  106. data/examples/i18n/ko/features/division.feature +11 -0
  107. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  108. data/examples/i18n/ko/lib/calculator.rb +14 -0
  109. data/examples/i18n/lt/.gitignore +1 -0
  110. data/examples/i18n/lt/Rakefile +6 -0
  111. data/examples/i18n/lt/features/addition.feature +17 -0
  112. data/examples/i18n/lt/features/division.feature +10 -0
  113. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  114. data/examples/i18n/lt/lib/calculator.rb +14 -0
  115. data/examples/i18n/lv/Rakefile +6 -0
  116. data/examples/i18n/lv/features/addition.feature +17 -0
  117. data/examples/i18n/lv/features/division.feature +10 -0
  118. data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
  119. data/examples/i18n/lv/lib/calculator.rb +14 -0
  120. data/examples/i18n/no/Rakefile +6 -0
  121. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  122. data/examples/i18n/no/features/summering.feature +19 -0
  123. data/examples/i18n/no/features/support/env.rb +6 -0
  124. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  125. data/examples/i18n/pl/.gitignore +1 -0
  126. data/examples/i18n/pl/Rakefile +6 -0
  127. data/examples/i18n/pl/features/addition.feature +17 -0
  128. data/examples/i18n/pl/features/division.feature +10 -0
  129. data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
  130. data/examples/i18n/pl/features/support/env.rb +5 -0
  131. data/examples/i18n/pl/lib/calculator.rb +14 -0
  132. data/examples/i18n/pt/Rakefile +6 -0
  133. data/examples/i18n/pt/features/adicao.feature +11 -0
  134. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  135. data/examples/i18n/pt/features/support/env.rb +5 -0
  136. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  137. data/examples/i18n/ro/Rakefile +6 -0
  138. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
  139. data/examples/i18n/ro/features/suma.feature +11 -0
  140. data/examples/i18n/ro/lib/calculator.rb +11 -0
  141. data/examples/i18n/ru/Rakefile +6 -0
  142. data/examples/i18n/ru/features/addition.feature +11 -0
  143. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  144. data/examples/i18n/ru/features/division.feature +16 -0
  145. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  146. data/examples/i18n/ru/features/support/env.rb +5 -0
  147. data/examples/i18n/ru/features/support/world.rb +8 -0
  148. data/examples/i18n/ru/lib/calculator.rb +24 -0
  149. data/examples/i18n/se/Rakefile +6 -0
  150. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
  151. data/examples/i18n/se/features/summering.feature +18 -0
  152. data/examples/i18n/se/lib/kalkulator.rb +11 -0
  153. data/examples/i18n/sk/.gitignore +1 -0
  154. data/examples/i18n/sk/Rakefile +6 -0
  155. data/examples/i18n/sk/features/addition.feature +17 -0
  156. data/examples/i18n/sk/features/division.feature +10 -0
  157. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  158. data/examples/i18n/sk/lib/calculator.rb +14 -0
  159. data/examples/i18n/sr-latn/Rakefile +6 -0
  160. data/examples/i18n/sr-latn/features/sabiranje.feature +18 -0
  161. data/examples/i18n/sr-latn/features/step_definitons/calculator_steps.rb +24 -0
  162. data/examples/i18n/sr-latn/lib/calculator.rb +12 -0
  163. data/examples/i18n/sr/Rakefile +6 -0
  164. data/examples/i18n/sr/features/sabiranje.feature +18 -0
  165. data/examples/i18n/sr/features/step_definitons/calculator_steps.rb +20 -0
  166. data/examples/i18n/sr/features/support/env.rb +5 -0
  167. data/examples/i18n/sr/lib/calculator.rb +12 -0
  168. data/examples/i18n/tr/.gitignore +1 -0
  169. data/examples/i18n/tr/Rakefile +6 -0
  170. data/examples/i18n/tr/features/bolme.feature +10 -0
  171. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +24 -0
  172. data/examples/i18n/tr/features/toplama.feature +18 -0
  173. data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
  174. data/examples/i18n/uz/Rakefile +6 -0
  175. data/examples/i18n/uz/features/addition.feature +10 -0
  176. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  177. data/examples/i18n/uz/features/division.feature +17 -0
  178. data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
  179. data/examples/i18n/uz/features/support/env.rb +5 -0
  180. data/examples/i18n/uz/features/support/world.rb +8 -0
  181. data/examples/i18n/uz/lib/calculator.rb +24 -0
  182. data/examples/i18n/zh-CN/Rakefile +4 -0
  183. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  184. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  185. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  186. data/examples/i18n/zh-TW/.gitignore +1 -0
  187. data/examples/i18n/zh-TW/Rakefile +4 -0
  188. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  189. data/examples/i18n/zh-TW/features/division.feature +11 -0
  190. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  191. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  192. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  193. data/examples/junit/features/pending.feature +5 -0
  194. data/examples/junit/features/step_definitions/steps.rb +11 -0
  195. data/examples/python/features/fibonacci.feature +19 -0
  196. data/examples/python/features/step_definitions/fib_steps.py +11 -0
  197. data/examples/python/lib/.gitignore +1 -0
  198. data/examples/python/lib/fib.py +7 -0
  199. data/examples/ramaze/README.textile +7 -0
  200. data/examples/ramaze/Rakefile +6 -0
  201. data/examples/ramaze/app.rb +21 -0
  202. data/examples/ramaze/features/add.feature +11 -0
  203. data/examples/ramaze/features/step_definitions/add_steps.rb +15 -0
  204. data/examples/ramaze/features/support/env.rb +32 -0
  205. data/examples/ramaze/layout/default.html.erb +8 -0
  206. data/examples/ramaze/view/index.html.erb +5 -0
  207. data/examples/ruby2python/features/fibonacci.feature +19 -0
  208. data/examples/ruby2python/features/step_definitions/fib_steps.rb +7 -0
  209. data/examples/ruby2python/features/support/env.rb +21 -0
  210. data/examples/ruby2python/lib/.gitignore +1 -0
  211. data/examples/ruby2python/lib/fib.py +7 -0
  212. data/examples/selenium/Rakefile +6 -0
  213. data/examples/selenium/features/search.feature +9 -0
  214. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  215. data/examples/selenium/features/support/env.rb +19 -0
  216. data/examples/selenium_webrat/Rakefile +6 -0
  217. data/examples/selenium_webrat/config.ru +0 -0
  218. data/examples/selenium_webrat/features/search.feature +9 -0
  219. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  220. data/examples/selenium_webrat/features/support/env.rb +45 -0
  221. data/examples/self_test/.gitignore +1 -0
  222. data/examples/self_test/README.textile +6 -0
  223. data/examples/self_test/Rakefile +6 -0
  224. data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  225. data/examples/self_test/features/background/background_with_name.feature +7 -0
  226. data/examples/self_test/features/background/failing_background.feature +12 -0
  227. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  228. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  229. data/examples/self_test/features/background/passing_background.feature +10 -0
  230. data/examples/self_test/features/background/pending_background.feature +10 -0
  231. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  232. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  233. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  234. data/examples/self_test/features/failing_expectation.feature +4 -0
  235. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  236. data/examples/self_test/features/multiline_name.feature +27 -0
  237. data/examples/self_test/features/outline_sample.feature +15 -0
  238. data/examples/self_test/features/sample.feature +21 -0
  239. data/examples/self_test/features/search_sample.feature +32 -0
  240. data/examples/self_test/features/step_definitions/sample_steps.rb +83 -0
  241. data/examples/self_test/features/support/env.rb +18 -0
  242. data/examples/self_test/features/tags_sample.feature +17 -0
  243. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  244. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  245. data/examples/self_test/list-of-features.txt +1 -0
  246. data/examples/sinatra/README.textile +13 -0
  247. data/examples/sinatra/Rakefile +6 -0
  248. data/examples/sinatra/app.rb +14 -0
  249. data/examples/sinatra/features/add.feature +11 -0
  250. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  251. data/examples/sinatra/features/support/env.rb +30 -0
  252. data/examples/sinatra/views/add.erb +5 -0
  253. data/examples/sinatra/views/layout.erb +8 -0
  254. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  255. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  256. data/examples/tcl/README.textile +11 -0
  257. data/examples/tcl/Rakefile +6 -0
  258. data/examples/tcl/features/fibonnacci.feature +17 -0
  259. data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
  260. data/examples/tcl/features/support/env.rb +6 -0
  261. data/examples/tcl/src/fib.tcl +3 -0
  262. data/examples/test_unit/Rakefile +6 -0
  263. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  264. data/examples/test_unit/features/test_unit.feature +9 -0
  265. data/examples/tickets/Rakefile +20 -0
  266. data/examples/tickets/features.html +138 -0
  267. data/examples/tickets/features/172.feature +28 -0
  268. data/examples/tickets/features/177/1.feature +28 -0
  269. data/examples/tickets/features/177/2.feature +20 -0
  270. data/examples/tickets/features/177/3.feature +18 -0
  271. data/examples/tickets/features/180.feature +7 -0
  272. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  273. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  274. data/examples/tickets/features/236.feature +13 -0
  275. data/examples/tickets/features/241.feature +12 -0
  276. data/examples/tickets/features/246.feature +4 -0
  277. data/examples/tickets/features/248.feature +11 -0
  278. data/examples/tickets/features/270/back.feature +14 -0
  279. data/examples/tickets/features/270/back.steps.rb +14 -0
  280. data/examples/tickets/features/272/hooks.feature +26 -0
  281. data/examples/tickets/features/272/hooks_steps.rb +53 -0
  282. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  283. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  284. data/examples/tickets/features/279/wrong.feature_ +11 -0
  285. data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  286. data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  287. data/examples/tickets/features/306/only_background.feature +4 -0
  288. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  289. data/examples/tickets/features/lib/pantry.rb +20 -0
  290. data/examples/tickets/features/scenario_outline.feature +95 -0
  291. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  292. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  293. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  294. data/examples/tickets/features/step_definitons/tickets_steps.rb +81 -0
  295. data/examples/tickets/features/table_diffing.feature +13 -0
  296. data/examples/tickets/features/tickets.feature +28 -0
  297. data/examples/watir/README.textile +16 -0
  298. data/examples/watir/Rakefile +12 -0
  299. data/examples/watir/cucumber.yml +1 -0
  300. data/examples/watir/features/search.feature +12 -0
  301. data/examples/watir/features/step_definitions/search_steps.rb +26 -0
  302. data/examples/watir/features/support/env.rb +32 -0
  303. data/examples/watir/features/support/screenshots.rb +47 -0
  304. data/examples/webrat/features/search.feature +12 -0
  305. data/examples/webrat/features/step_definitions/kvasir_steps.rb +14 -0
  306. data/examples/webrat/features/support/env.rb +17 -0
  307. data/features/announce.feature +122 -0
  308. data/features/background.feature +308 -0
  309. data/features/bug_371.feature +32 -0
  310. data/features/bug_464.feature +16 -0
  311. data/features/bug_475.feature +43 -0
  312. data/features/call_many_steps.feature +126 -0
  313. data/features/cucumber_cli.feature +657 -0
  314. data/features/cucumber_cli_diff_disabled.feature +52 -0
  315. data/features/cucumber_cli_outlines.feature +105 -0
  316. data/features/custom_formatter.feature +47 -0
  317. data/features/default_snippets.feature +42 -0
  318. data/features/drb_server_integration.feature +174 -0
  319. data/features/exception_in_after_block.feature +100 -0
  320. data/features/exception_in_after_step_block.feature +102 -0
  321. data/features/exception_in_before_block.feature +78 -0
  322. data/features/exclude_files.feature +20 -0
  323. data/features/expand.feature +60 -0
  324. data/features/html_formatter.feature +8 -0
  325. data/features/html_formatter/a.html +400 -0
  326. data/features/junit_formatter.feature +88 -0
  327. data/features/language_from_header.feature +30 -0
  328. data/features/language_help.feature +69 -0
  329. data/features/listener_debugger_formatter.feature +41 -0
  330. data/features/multiline_names.feature +43 -0
  331. data/features/negative_tagged_hooks.feature +61 -0
  332. data/features/post_configuration_hook.feature +37 -0
  333. data/features/profiles.feature +126 -0
  334. data/features/rake_task.feature +152 -0
  335. data/features/report_called_undefined_steps.feature +34 -0
  336. data/features/rerun_formatter.feature +45 -0
  337. data/features/simplest.feature +11 -0
  338. data/features/snippet.feature +22 -0
  339. data/features/step_definitions/cucumber_steps.rb +154 -0
  340. data/features/step_definitions/extra_steps.rb +2 -0
  341. data/features/step_definitions/simplest_steps.rb +3 -0
  342. data/features/step_definitions/wire_steps.rb +32 -0
  343. data/features/support/env.rb +139 -0
  344. data/features/support/env.rb.simplest +7 -0
  345. data/features/support/fake_wire_server.rb +77 -0
  346. data/features/table_diffing.feature +45 -0
  347. data/features/table_mapping.feature +35 -0
  348. data/features/tag_logic.feature +258 -0
  349. data/features/transform.feature +245 -0
  350. data/features/unicode_table.feature +35 -0
  351. data/features/usage_and_stepdefs_formatter.feature +169 -0
  352. data/features/wire_protocol.feature +329 -0
  353. data/features/wire_protocol_table_diffing.feature +117 -0
  354. data/features/wire_protocol_timeouts.feature +62 -0
  355. data/features/work_in_progress.feature +156 -0
  356. data/gem_tasks/contributors.rake +13 -0
  357. data/gem_tasks/environment.rake +7 -0
  358. data/gem_tasks/features.rake +20 -0
  359. data/gem_tasks/fix_cr_lf.rake +10 -0
  360. data/gem_tasks/flog.rake +4 -0
  361. data/gem_tasks/rspec.rake +15 -0
  362. data/gem_tasks/sass.rake +4 -0
  363. data/gem_tasks/sdoc.rake +12 -0
  364. data/lib/README.rdoc +12 -0
  365. data/lib/autotest/cucumber.rb +6 -0
  366. data/lib/autotest/cucumber_mixin.rb +131 -0
  367. data/lib/autotest/cucumber_rails.rb +6 -0
  368. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  369. data/lib/autotest/cucumber_rspec.rb +6 -0
  370. data/lib/autotest/discover.rb +9 -0
  371. data/lib/cucumber.rb +15 -0
  372. data/lib/cucumber/ast.rb +29 -0
  373. data/lib/cucumber/ast/background.rb +75 -0
  374. data/lib/cucumber/ast/comment.rb +31 -0
  375. data/lib/cucumber/ast/examples.rb +36 -0
  376. data/lib/cucumber/ast/feature.rb +82 -0
  377. data/lib/cucumber/ast/feature_element.rb +68 -0
  378. data/lib/cucumber/ast/features.rb +40 -0
  379. data/lib/cucumber/ast/outline_table.rb +166 -0
  380. data/lib/cucumber/ast/py_string.rb +59 -0
  381. data/lib/cucumber/ast/scenario.rb +111 -0
  382. data/lib/cucumber/ast/scenario_outline.rb +100 -0
  383. data/lib/cucumber/ast/step.rb +121 -0
  384. data/lib/cucumber/ast/step_collection.rb +76 -0
  385. data/lib/cucumber/ast/step_invocation.rb +190 -0
  386. data/lib/cucumber/ast/table.rb +651 -0
  387. data/lib/cucumber/ast/tags.rb +26 -0
  388. data/lib/cucumber/ast/tree_walker.rb +201 -0
  389. data/lib/cucumber/ast/visitor.rb +11 -0
  390. data/lib/cucumber/broadcaster.rb +13 -0
  391. data/lib/cucumber/cli/configuration.rb +199 -0
  392. data/lib/cucumber/cli/drb_client.rb +32 -0
  393. data/lib/cucumber/cli/language_help_formatter.rb +72 -0
  394. data/lib/cucumber/cli/main.rb +186 -0
  395. data/lib/cucumber/cli/options.rb +413 -0
  396. data/lib/cucumber/cli/profile_loader.rb +82 -0
  397. data/lib/cucumber/constantize.rb +34 -0
  398. data/lib/cucumber/core_ext/instance_exec.rb +98 -0
  399. data/lib/cucumber/core_ext/proc.rb +30 -0
  400. data/lib/cucumber/core_ext/string.rb +16 -0
  401. data/lib/cucumber/feature_file.rb +54 -0
  402. data/lib/cucumber/filter.rb +43 -0
  403. data/lib/cucumber/formatter/ansicolor.rb +157 -0
  404. data/lib/cucumber/formatter/color_io.rb +23 -0
  405. data/lib/cucumber/formatter/console.rb +185 -0
  406. data/lib/cucumber/formatter/cucumber.css +248 -0
  407. data/lib/cucumber/formatter/cucumber.sass +241 -0
  408. data/lib/cucumber/formatter/debug.rb +33 -0
  409. data/lib/cucumber/formatter/duration.rb +13 -0
  410. data/lib/cucumber/formatter/html.rb +571 -0
  411. data/lib/cucumber/formatter/io.rb +33 -0
  412. data/lib/cucumber/formatter/junit.rb +149 -0
  413. data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
  414. data/lib/cucumber/formatter/pdf.rb +238 -0
  415. data/lib/cucumber/formatter/pretty.rb +236 -0
  416. data/lib/cucumber/formatter/progress.rb +71 -0
  417. data/lib/cucumber/formatter/rerun.rb +55 -0
  418. data/lib/cucumber/formatter/stepdefs.rb +14 -0
  419. data/lib/cucumber/formatter/steps.rb +49 -0
  420. data/lib/cucumber/formatter/summary.rb +35 -0
  421. data/lib/cucumber/formatter/tag_cloud.rb +35 -0
  422. data/lib/cucumber/formatter/unicode.rb +58 -0
  423. data/lib/cucumber/formatter/usage.rb +127 -0
  424. data/lib/cucumber/language_support.rb +30 -0
  425. data/lib/cucumber/language_support/language_methods.rb +113 -0
  426. data/lib/cucumber/languages.yml +535 -0
  427. data/lib/cucumber/parser.rb +8 -0
  428. data/lib/cucumber/parser/common.rb +182 -0
  429. data/lib/cucumber/parser/common.tt +21 -0
  430. data/lib/cucumber/parser/feature.rb +1848 -0
  431. data/lib/cucumber/parser/feature.tt +319 -0
  432. data/lib/cucumber/parser/i18n.tt +34 -0
  433. data/lib/cucumber/parser/natural_language.rb +108 -0
  434. data/lib/cucumber/parser/py_string.rb +285 -0
  435. data/lib/cucumber/parser/py_string.tt +45 -0
  436. data/lib/cucumber/parser/table.rb +314 -0
  437. data/lib/cucumber/parser/table.tt +60 -0
  438. data/lib/cucumber/parser/treetop_ext.rb +53 -0
  439. data/lib/cucumber/platform.rb +31 -0
  440. data/lib/cucumber/py_support/py_dsl.py +10 -0
  441. data/lib/cucumber/py_support/py_language.py +10 -0
  442. data/lib/cucumber/py_support/py_language.rb +81 -0
  443. data/lib/cucumber/rake/task.rb +166 -0
  444. data/lib/cucumber/rb_support/rb_dsl.rb +102 -0
  445. data/lib/cucumber/rb_support/rb_hook.rb +18 -0
  446. data/lib/cucumber/rb_support/rb_language.rb +179 -0
  447. data/lib/cucumber/rb_support/rb_step_definition.rb +75 -0
  448. data/lib/cucumber/rb_support/rb_transform.rb +37 -0
  449. data/lib/cucumber/rb_support/rb_world.rb +81 -0
  450. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
  451. data/lib/cucumber/rspec_neuter.rb +23 -0
  452. data/lib/cucumber/step_argument.rb +9 -0
  453. data/lib/cucumber/step_definition_light.rb +20 -0
  454. data/lib/cucumber/step_match.rb +107 -0
  455. data/lib/cucumber/step_mother.rb +350 -0
  456. data/lib/cucumber/tag_expression.rb +41 -0
  457. data/lib/cucumber/wire_support/configuration.rb +18 -0
  458. data/lib/cucumber/wire_support/connection.rb +55 -0
  459. data/lib/cucumber/wire_support/request_handler.rb +32 -0
  460. data/lib/cucumber/wire_support/wire_exception.rb +32 -0
  461. data/lib/cucumber/wire_support/wire_language.rb +58 -0
  462. data/lib/cucumber/wire_support/wire_packet.rb +32 -0
  463. data/lib/cucumber/wire_support/wire_protocol.rb +44 -0
  464. data/lib/cucumber/wire_support/wire_protocol/requests.rb +105 -0
  465. data/lib/cucumber/wire_support/wire_step_definition.rb +26 -0
  466. data/spec/cucumber/ast/background_spec.rb +54 -0
  467. data/spec/cucumber/ast/feature_element_spec.rb +41 -0
  468. data/spec/cucumber/ast/feature_factory.rb +62 -0
  469. data/spec/cucumber/ast/feature_spec.rb +65 -0
  470. data/spec/cucumber/ast/outline_table_spec.rb +21 -0
  471. data/spec/cucumber/ast/py_string_spec.rb +51 -0
  472. data/spec/cucumber/ast/scenario_outline_spec.rb +66 -0
  473. data/spec/cucumber/ast/scenario_spec.rb +45 -0
  474. data/spec/cucumber/ast/step_collection_spec.rb +17 -0
  475. data/spec/cucumber/ast/step_spec.rb +66 -0
  476. data/spec/cucumber/ast/table_spec.rb +442 -0
  477. data/spec/cucumber/ast/tree_walker_spec.rb +11 -0
  478. data/spec/cucumber/broadcaster_spec.rb +15 -0
  479. data/spec/cucumber/cli/configuration_spec.rb +396 -0
  480. data/spec/cucumber/cli/drb_client_spec.rb +77 -0
  481. data/spec/cucumber/cli/main_spec.rb +172 -0
  482. data/spec/cucumber/cli/options_spec.rb +331 -0
  483. data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
  484. data/spec/cucumber/core_ext/proc_spec.rb +68 -0
  485. data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
  486. data/spec/cucumber/formatter/color_io_spec.rb +29 -0
  487. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  488. data/spec/cucumber/formatter/html_spec.rb +237 -0
  489. data/spec/cucumber/formatter/junit_spec.rb +110 -0
  490. data/spec/cucumber/formatter/progress_spec.rb +38 -0
  491. data/spec/cucumber/formatter/spec_helper.rb +51 -0
  492. data/spec/cucumber/parser/feature_parser_spec.rb +400 -0
  493. data/spec/cucumber/parser/table_parser_spec.rb +52 -0
  494. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +132 -0
  495. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
  496. data/spec/cucumber/sell_cucumbers.feature +19 -0
  497. data/spec/cucumber/step_match_spec.rb +61 -0
  498. data/spec/cucumber/step_mother_spec.rb +270 -0
  499. data/spec/cucumber/tag_expression_spec.rb +127 -0
  500. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  501. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  502. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  503. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  504. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  505. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  506. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  507. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  508. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  509. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  510. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  511. data/spec/cucumber/treetop_parser/with_comments.feature +23 -0
  512. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  513. data/spec/cucumber/wire_support/configuration_spec.rb +34 -0
  514. data/spec/cucumber/wire_support/connection_spec.rb +46 -0
  515. data/spec/cucumber/wire_support/wire_exception_spec.rb +44 -0
  516. data/spec/cucumber/wire_support/wire_language_spec.rb +47 -0
  517. data/spec/cucumber/wire_support/wire_packet_spec.rb +40 -0
  518. data/spec/cucumber/wire_support/wire_step_definition_spec.rb +20 -0
  519. data/spec/cucumber/world/pending_spec.rb +46 -0
  520. data/spec/spec.opts +4 -0
  521. data/spec/spec_helper.rb +18 -0
  522. metadata +861 -0
@@ -0,0 +1 @@
1
+ spec/cucumber/treetop_parser/test_dos.feature -crlf
@@ -0,0 +1,21 @@
1
+ nbproject
2
+ coverage
3
+ pkg
4
+ doc
5
+ .yardoc
6
+ *.log
7
+ *.pid
8
+ .eprj
9
+ .tmtags
10
+ *~
11
+ .DS_Store
12
+ *.swp
13
+ target
14
+ *.tmproj
15
+ examples/self_test/tmp
16
+ .#*
17
+ .idea
18
+ rerun.txt
19
+ ._*
20
+ cucumber.gemspec
21
+
@@ -0,0 +1,5 @@
1
+ ---
2
+ # Config for https://devver.net/caliper
3
+ file_globs_to_ignore:
4
+ - lib/rubygems/**/*
5
+ - lib/cucumber/parser/{common,feature,py_string,table}.rb
@@ -0,0 +1,1380 @@
1
+ == In Git
2
+
3
+ === Bugfixes
4
+ * The rerun formatter outputs failed, pending and undefined scenarios (before: only failing) (Aslak Hellesøy)
5
+
6
+ === New features
7
+ * Add diff! message to wire protocol to allow for immediate diff response to invokes (Matt Wynne)
8
+
9
+ == 0.6.2 2010-01-18
10
+
11
+ === Bugfixes
12
+ * Update --help for --tags which was out of date. (Aslak Hellesøy)
13
+ * Explicitly use Prawn 0.6.3 for pdf formatter since 0.7.1 is broken (Aslak Hellesøy)
14
+ * PDF formatter renders tables incorrectly (#553 Andy Waite)
15
+ * Better colouring in HTML report (Rob Aldred)
16
+ * Detect output encoding properly on JRuby+Windows (Aslak Hellesøy)
17
+ * Added option to override output encoding on Windows with an CUCUMBER_OUTPUT_ENCODING env var (Aslak Hellesøy)
18
+ * PDF generation requires 'prawn-format' (#558 Aslak Hellesøy)
19
+
20
+ === New features
21
+ * Show profiles in error scenario summary. (#550 Joseph Wilk)
22
+
23
+ === Removed features
24
+ * element_at and table_at have been removed. Use tableish in cucumber-rails instead. (Aslak Hellesœy)
25
+
26
+ == 0.6.1 2010-01-03
27
+
28
+ === Bugfixes
29
+ * Fixed broken console handling on Windows/JRuby that was introduced in 0.6.0. (Aslak Hellesøy)
30
+
31
+ == 0.6.0 2010-01-03
32
+
33
+ Bumping to 0.6.0 for this release since we're breaking backwards compatibility with tags.
34
+
35
+ === Changed Features
36
+ * Tag boolean logic is inverted. What was ORed before is now ANDed and vice versa. (#504 Aslak Hellesøy)
37
+ This makes it more practical in most cases to mix tags from profiles and the command line
38
+
39
+ In previous versions the following command line:
40
+
41
+ --tags @foo,~@bar --tags @zap (on the command line)
42
+
43
+ or the following Hook:
44
+
45
+ Before("@foo,~@bar", "@zap") (for Hooks)
46
+
47
+ would be equivalent to the boolean expression: (@foo && !@bar) || @zap
48
+ Starting with this release it will be equivalent to: (@foo || !@bar) && @zap
49
+
50
+ === Bugfixes
51
+ * Cucumber not loading the correct settings using autospec (#496, #523 Aslak Hellesøy, Andrzej Śliwa)
52
+ * Ruby 1.9.2 fails to load features/support/env.rb (#549 Aslak Hellesøy)
53
+ * All features (except 4) pass on 1.9.2 (but not on 1.9.1) (Aslak Hellesøy)
54
+ * Add missing require statement in rerun formatter which broke RubyMine (Noah Sussman)
55
+
56
+ == 0.5.3 2009-12-22
57
+
58
+ Another small release today to please a sister project. This time Cuke4Nuke.
59
+
60
+ === New Features
61
+ * Simplified wire protocol to mostly use success / fail responses (Matt Wynne)
62
+
63
+ == 0.5.2 2009-12-22
64
+
65
+ === New Features
66
+ * On JRuby/Cuke4Duke, --require DIR will put DIR on the $CLASSPATH, making it easier to load step def classes (Aslak Hellesøy)
67
+ * New --jars option that will load jar files. Only available on JRuby. Practical for Cuke4Duke. (Aslak Hellesøy)
68
+
69
+ === Bugfixes
70
+ * Add #embed back to html formatter (#547 Brandon Faloona)
71
+ * Refactored wire protocol code and added configurable timeout to allow for long running step definitions. (#546 Matt Wynne)
72
+
73
+ == 0.5.1 2009-12-16
74
+
75
+ Small bugfix release.
76
+
77
+ === Bugfixes
78
+ * Replaced dependency on json gem with an error message, so that the cucumber gem installs on JRuby. (Aslak Hellesøy)
79
+
80
+ == 0.5.0 2009-12-15
81
+
82
+ We're bumping to 0.5.0 for this release since all of the Rails code has now moved to a new gem - cucumber-rails.
83
+ Please see History.txt in cucumber-rails for details about what's new on the Rails side.
84
+
85
+ === New features
86
+ * "Given" in Dutch is now aliased to "Gegeven" or "Stel". (Iain Hecker)
87
+ * New --i18n option to list keywords in various languages. (Aslak Hellesøy)
88
+ * Added a Tcl example using Sam Stephenson's ruby-tcl (Aslak Hellesøy)
89
+ * Added * as a synonym for Given/When/Then/And/But (for all i18n languages). (#462 Aslak Hellesøy)
90
+ * The HTML formatter produces a much nicer report, with TextMate link integration. (Rob Aldred)
91
+ * Wire protocol now supports table arguments, step definition source & regexp, snippets, pending, table diffing (Matt Wynne)
92
+
93
+ === Changed Features
94
+ * Per-word trailing-space setting for step keywords using '<'. See 'fr' in languages.yml for example. (#525 Gregory Hnatiuk)
95
+ * Formatters will no longer be passed File objects. They must use ensure_io, ensure_file or ensure_dir. (Aslak Hellesøy)
96
+
97
+ === Bugfixes
98
+ * Exception messages are properly escaped in the HTML report. (Aslak Hellesøy)
99
+ * Improved UTF-8 support for Windows. (Aslak Hellesøy)
100
+ * Make #element_at / #table_at work on Webrat 0.6.0. This is now deprecated it in favour of #tableish from the cucumber-rails gem. (Aslak Hellesøy)
101
+ * JUnit formatter not handling multiline table steps inside Scenario Outlines (#538 Matt Wynne)
102
+ * Pending in scenario outline is red (#399 Matt Wynne)
103
+ * Allow optional step arguments to play happily with step transforms (Rob Holland)
104
+ * Regex escape the path when filtering the backtrace (Corey Donohoe & Simon Rozet)
105
+ * Add gem dependency on JSON gem, required by wire protocol (#533 Matt Wynne)
106
+
107
+ === Removed Features
108
+ * All Rails-related code is in a separate gem: cucumber-rails. Install that if you're working with Rails. (#483 Aslak Hellesøy)
109
+ * --language is removed: http://wiki.github.com/aslakhellesoy/cucumber/spoken-languages (Aslak Hellesøy)
110
+
111
+ == 0.4.4 2009-11-13
112
+
113
+ What a bad day to make a release, but here goes.
114
+
115
+ === New features
116
+ * Cucumber should use ActiveSupport::Callbacks for fixtures (#516 Adam Salter)
117
+ * Make 'I' optional in all webrat steps. (Gavin Hughes)
118
+ * Make generated cucumber.rake work with a vendored gem (Alex Rothenberg)
119
+ * Native support for ANSIColor on IronRuby via the iron-term-ansicolor gem (Will Green)
120
+ * Call a bunch of steps from step definitions - also with tables or pystrings. Copy-paste friendly (Bodaniel Jeanes, Jack Chen, Aslak Hellesøy)
121
+
122
+ === Bugfixes
123
+ * Pretty printer fails when expanding scenario outlines with -x when the background includes a table (#515 Mike Sassak)
124
+ * Ensure tags used with Before/After hooks always get parsed (#520 Joseph Wilk)
125
+ * Define IRONRUBY correctly on Ruby 1.9 (Joe Van Dyk)
126
+ * RbStepDefinition#invoke calls #backtrace_line on self rather than @proc (#503 Mike Sassak)
127
+ * Avoid duplicate cucumber entries in database.yml (Daniel Hofstetter)
128
+ * Added respond_to? when checking config.cache_classes for older Rails versions (Jeremy Durham)
129
+
130
+ === Changed Features
131
+ * Rails support has been moved to the cucumber-rails gem (Dennis Blöte, Aslak Hellesøy) TODO - WIKI DOCUMENTATION BEFORE RELEASE
132
+ * The code for Czech has changed from cz to cs. (deepj)
133
+ * $cucumber_interrupted is now Cucumber.wants_to_quit - avoid global variable, which gives warnings. (Aslak Hellesøy)
134
+ * Examples keyword without a colon is deprecated loudly. Gherkin will not recognize it at all. (Gherkin #30 Mike Sassak)
135
+
136
+ == 0.4.3 2009-10-28
137
+
138
+ The exciting thing about this release is that the wire protocol is starting to take shape. This means you can
139
+ now use Cucumber with .NET - writing step definitions in C#. And this is without having to use IronRuby at all!
140
+ See Cuke4Nuke (http://wiki.github.com/richardlawrence/Cuke4Nuke) for more information.
141
+
142
+ As usual there are several small features and bug fixes.
143
+
144
+ === New Features
145
+ * Add support for ORing tags which are passed in with seperate --tag arguments. Make comma seperated tags use AND (#368 Joseph Wilk)
146
+ * New Wire Protocol - allowing out of process execution of Cucumber scenarios. (#428 Matt Wynne)
147
+ * Added an example illustrating how to get screenshots in HTML reports (examples/watir) (Aslak Hellesøy)
148
+ * Added new #embed(file, mime_type) method to visitors and Ruby Worlds to make it easier to embed screenshots (Aslak Hellesøy)
149
+ * The #announce method available from Ruby Step Definitions will print *after* the step is executed. (#487 Zoltan Penzeli)
150
+ * Add support for rolling back transaction for all open database connections. (John Ferlito)
151
+ * Show scenario and step summary in HTML formatter (#285 Joseph Wilk)
152
+ * Ast::Table can now be constructed with an Array of Hash. (Aslak Hellesøy)
153
+
154
+ === Changed features
155
+ * The #announce method will no longer escape HTML if the html formatter is used. Escaping must be done manually. (Aslak Hellesøy)
156
+
157
+ === Bugfixes
158
+ * Fixed incorrect rendering of step arguments with UTF8 characters (Aslak Hellesøy)
159
+ * "--format rerun", with a Scenario Outline, kills cucumber (#492 Aslak Hellesøy)
160
+ * Usage formatter is not reporting time correctly. (Elliot Crosby-McCullough)
161
+ * JUnit formatter raises a more helpful error when run on a feature with no name. (#493 Matt Wynne)
162
+ * Better Danish translation (Thorbjørn Ravn Andersen)
163
+
164
+
165
+ == 0.4.2 2009-10-14
166
+
167
+ Bugfix release. The 0.4.1 release was hosed when switching from Hoe to Jeweler.
168
+
169
+ == 0.4.1 2009-10-14
170
+
171
+ This is mostly a bugfix release. Some of Cucumber's own features have been fixed so they pass on more platforms,
172
+ making it easier for people to contribute. The README.txt also describes how to get up and running with the
173
+ development environment.
174
+
175
+ === Bugfixes
176
+ * Cucumber's features verified passing on MRI 1.8.6 (OSX), 1.8.7 (OSX), 1.9.1 (OSX/Win) and JRuby 1.4.0RC1 (OSX). (Aslak Hellesøy)
177
+ * Ensure no errors are raised when limiting with tags which are not in the feature set (#464 Joseph Wilk)
178
+ * Missing Romanian keywords added for Examples, Scenario Outline and Background (to my best google translate knowledge) (Aslak Hellesøy)
179
+ * Make rerun and --drb work together again after formatter API changes (#485 Erik Hansson, John Ferlito)
180
+
181
+ === New Features
182
+ * The Rails cucumber generator will only default to RSpec if installed. And print better help. (Aslak Hellesøy)
183
+ * Added 'but' variants to Japanese. (Kakutani Shintaro)
184
+ * README.txt explains people how to run all tests. Install gems with geminstaller. (Aslak Hellesøy)
185
+ * Added support for Serbian language, both Cyrillic and Latin with usage examples. (Dejan Dimic)
186
+ * Add new 'debug' formatter for debugging and visualising the calls to listeners. (Matt Wynne)
187
+
188
+ === Changed features
189
+ * Use http://github.com/aslakhellesoy/wac instead of http://github.com/aslakhellesoy/ansicolor on Windows/JRuby (#456 Aslak Hellesøy)
190
+
191
+ === Internal changes
192
+ * Ditched Hoe for Jeweler (Aslak Hellesøy)
193
+ * Added StepMother#invoke(step_name, multiline_argument=nil) - needed by cuke4duke ticket #26 (Aslak Hellesøy)
194
+ * StepDefinitionMethods is gone.
195
+
196
+ == 0.4.0 2009-10-09
197
+
198
+ The back to stable release. When we went from 0.3.11 to 0.3.90 we thought we were close to a 0.4.0 release. Then the community
199
+ went nuts and a lot of great contributions came in. Some of those broke backwards compatibility, and we decided it would be
200
+ better to do this while still on 0.3.x.
201
+
202
+ Rails users: you *must* run script/generate cucumber after installing this version.
203
+
204
+ If something breaks for you, please please please read this file carefully. It's most likely something referenced here, and
205
+ that will give you more information so you can solve any problems. If not, just get in touch on IRC or the Google Group.
206
+
207
+ === New Features
208
+ * Total feature parsing time is shown when run with --verbose. Useful for benchmarking with future Ragel parser (Aslak Hellesøy)
209
+ * Tables yielded to step definitions are no longer frozen, so you can edit their data without #dup'ing (Aslak Hellesøy)
210
+ * Transform can now transform tables, using /table:col1,col2,col3/ (#478 Corey Haines)
211
+ * cucumber.yml can also end in .yaml and be located in .config/ or config/ dirs (#447 trans)
212
+ * Turkish support. (Hakan Şenol Ensari)
213
+ * Upgrade Rails generator to set a dependency to Spork 0.7.3. (Aslak Hellesøy)
214
+ * Installation via rubygems will print a message telling people to read this file. (Aslak Hellesøy)
215
+ * Files generated by the Rails cucumber generator have information about the risks of editing. (Aslak Hellesøy)
216
+ * Rotten Cucumber alert on Rails if you upgrade your gem without regenerating with script/generate cucumber. (Aslak Hellesøy)
217
+ * Stop the confusion between "homepage" and "home page" by allowing both (Ryan Bigg & Bodaniel Jeanes)
218
+ * Make script/cucumber file generated by the Rails cucumber generator look for cucumber in vendored gems as well. (Tom ten Thij)
219
+
220
+ === Changed Features
221
+ * Step tables now default empty table cells to empty strings and not nil (#470 Joseph Wilk)
222
+
223
+ === Removed Features
224
+ * The feature_list, feature_pattern, step_list and step_pattern properties are removed from the Rake task. Use profiles instead. (Aslak Hellesøy)
225
+ * The FeatureTask is removed. Use profiles instead.
226
+
227
+ === Bugfixes
228
+ * instance_exec get declared private (#477 Tim Galeckas)
229
+ * Transforms can return nil. (Thomas Marek)
230
+ * Generated rails rake tasks doesn't use the vendored version cucumber binary (#468 Josh Nichols)
231
+ * Incorrect diagnostics in case when Before raises in presence of Background (#465 Fedor Kocherga)
232
+ * Error on pystring in scenario outline with pretty formatter (#475 Aslak Hellesøy)
233
+ * Adding After('@allow-rescue') to set allow_rescue back to its former value. (Alf Mikula)
234
+ * Feature files are now sorted before they are executed, because different operating systems may list files differently. (Aslak Hellesøy)
235
+ * Fixed image loading for Windows in PDF formatter. Allow use of both png and jpg. (#461 Declan Whelan)
236
+ * Before('~@no-txn') is run on all scenarios without @no-txn causing Cucumber::Rails::World.use_transactional_fixtures to always be true. (#457 Aslak Hellesøy)
237
+ * JUnit formatter not handling scenario outline tables (#472 Matt Wynne)
238
+ * Language help broken (#467 Matt Wynne)
239
+ * Language help formatter aligns output better on Ruby 1.8.6 (Aslak Hellesøy)
240
+ * Better backtraces for Ruby 1.8.7. (Jakob Skov-Pedersen)
241
+ * String step definitions ( Given 'I have $number cucumbers' ) are escaped before being turned into regular expressions. (David Waite)
242
+
243
+ == 0.3.104 2009-09-27
244
+
245
+ This release has some minor changes to the command line and formatters. The biggest change is internally, paving
246
+ the way for more programming language support in Cuke4Duke, which now supports step definitions written in Java, Scala,
247
+ Groovy, Clojure and Javascript!
248
+
249
+ === New Features
250
+ * "usage" formatter should display progress (#437 Aslak Hellesøy)
251
+ * Added example for Ramaze. (Yutaka HARA)
252
+
253
+ === Bugfixes
254
+ * Fixed regression in profile formatter from 0.3.102. (Aslak Hellesøy)
255
+ * Raise a proper error message if someone forgets @ for tags, example: --tags ~foo or --tags bar. (Aslak Hellesøy)
256
+ * lib/cucumber/formatter/html.rb requires xml (#458 Brent Snook)
257
+ * lib/cucumber/formatter/html.rb requires ruby-debug (#455 Assaf Arkin)
258
+ * Allow for STDOUT formatters to be defined in profiles. Addresses an Autotest plugin issue. (#375 Gabriel Medina)
259
+
260
+ === Removed features
261
+ * The --dry-run option no longer implies --no-source and --no-snippets. It only implies --no-snippets. (Aslak Hellesøy)
262
+
263
+ === Changed features
264
+ * The profile and usage formatters have been combined to the usage formatter. Use it eith or without --dry-run. See --help for more. (Aslak Hellesøy)
265
+ * The steps formatter has been renamed to stepdefs formatter. (Aslak Hellesøy)
266
+ * The internal programming language API has changed, giving more power to the implementation. See #428. (Aslak Hellesøy)
267
+
268
+ == 0.3.103 2009-09-24
269
+
270
+ This release gives you back some of the control over the Rails environment that was accidentally taken away from you in the
271
+ previous release.
272
+
273
+ Using this release on a Rails project requires a rerun of script/generate cucumber.
274
+
275
+ === New Features
276
+ * Added a new @no-txn tag to selectively turn off transactions for a particlular scenario.
277
+ * Added back a way to globally turn off transactions.
278
+ * Renamed @allow_rescue tag to @allow-rescue.
279
+
280
+ === Bugfixes
281
+ * Gracefully handle cases when optional regexp groups are not matched. Ex: /should( not)? be flashed '([^']*?)'$/ (Aslak Hellesøy)
282
+
283
+ === Changed Features
284
+ * The Formatter API has completely changed. Formatters are no longer a double-dispacth visitor - just a single-dispatch listener (#438 Matt Wynne)
285
+
286
+ == 0.3.102 2009-09-22
287
+
288
+ This release has some changes in the Rails support, so make sure you run "script/generate cucumber" after you upgrade.
289
+ Other noteworthy new features are improved Hook, tags and Transform support, and as always - several smaller bug fixes.
290
+
291
+ === New Features
292
+ * Added new internal API for Regexp and groups, allowing other programming languages to leverage native regexps. (Aslak Hellesøy)
293
+ * New @allow_rescue tag for Rails scenarios. Causes exceptions raised in actions to be caught by rails and not bubble up to Cucumber (Aslak Hellesøy)
294
+ * Negative tags can now be used in hooks, just like the command line's --tags option: Before('~@yarr') - will run for all scenarios that *don't* have the @yarr tag. (Aslak Hellesøy)
295
+ * Transform has current "World" scope (Larry Diehl)
296
+ * Other Transforms can be reused by calling Transform with a string inside of another Transform definition (Larry Diehl)
297
+ * Execute "After" hooks in reverse order of declaration for better behavior with dependent blocks and to mimic the behavior of at_exit (David Waite)
298
+
299
+ === Bugfixes
300
+ * features/support/env.rb runs commands twice (bugfix cuts total time by almost 50% w00t) (#452 Jim Meyer)
301
+ * Problems adding custom formatters to features/support. (features/support is added to $LOAD_PATH) (#449 Aslak Hellesøy)
302
+ * Some options set in cucumber.yml profiles are ignored (#446 Leonard CHIN)
303
+ * Missing step_definition snippets not properly displayed (#433 Aslak Hellesøy)
304
+ * rspec-rails, :lib => false (#447 David Chelimsky)
305
+ * Cucumber with Spork breaks on OS X Snow Leopard (#431 David Chelimsky)
306
+
307
+ === Changed Features
308
+ * Tag names passed on the command line *always* have to use the @ sign. --tags foo or --tags ~bar won't work. Use --tags @foo or --tags ~@bar (Aslak Hellesøy)
309
+
310
+ === Removed features
311
+ * The Cucumber::Rails.bypass_rescue no longer exists. Errors will always bubble up, unless you use the new @allow_rescue tag. (Aslak Hellesøy)
312
+ * The Cucumber::Rails.use_transactional_fixtures no longer exists. Transactional fixtures are always enabled for the cucumber environment. (Aslak Hellesøy)
313
+
314
+ == 0.3.101 2009-09-15
315
+
316
+ Two exciting things in this release. Step Argument Transforms and a PDF formatter you can use to send
317
+ your features to your customer for review!
318
+
319
+ === New Features
320
+ * New pdf formatter (#425 Mads Buus)
321
+ * Step Argument Transforms: These let you use the Transform method to register regular expressions
322
+ to catch and transform/coerce arguments before they are yielded to step definitions:
323
+ http://wiki.github.com/aslakhellesoy/cucumber/step-argument-transforms (Larry Diehl & Dave Astels)
324
+ * Adding webrat steps for asserting content does or does not exist within a particular element
325
+ (using webrat's within method) (Kieran Pilkington)
326
+
327
+ == 0.3.100 2009-09-09
328
+
329
+ The JavaZone release!
330
+
331
+ === New Features
332
+ * Added support for Uzbek (msarvar)
333
+ * The file argument on the cucumber command line will replace contents of file on cli if file is prefixed with @ (Tero Tilus)
334
+
335
+ === Bugfixes
336
+ * Backtraces on JRuby are handled in a cleaner way when the exception comes from Java (NativeException). (Aslak Hellesøy)
337
+ * When exceptions occur in a Before block the rest of the scenario is now skipped (#331 Matt Wynne)
338
+
339
+ == 0.3.99 2009-09-03
340
+
341
+ === New Features
342
+ * Support for Croatian (Bkrsta)
343
+ * Make #feature available from scenario so you can do: Before{|scenario| scenario.feature}. (Aslak Hellesøy)
344
+ * cucumber.yml parsing supports ERB syntax (#427 Gregory Hnatiuk)
345
+ * New AfterConfiguration hook added; a block can be specified that takes Cucumber::Cli::Configuration (#423 Brent Snook)
346
+ * Cucumber::Cli::Configuration#feature_dirs and #out_stream exposed as public attributes so that they may be used in AfterConfiguration hook (#423 Brent Snook)
347
+
348
+ == 0.3.98 2009-08-25
349
+
350
+ Just a small release to help Cuke4Duke, which will be presented at Agile2009
351
+ in 2 days.
352
+
353
+ === New Features
354
+ * Backtrace filtering now happens in StepInvocation class, meaning other languages (Cuke4Duke) can get backtraces stripped. (Aslak Hellesøy)
355
+ * Cucumber::Ast::Table#map_headers now allows for a block that will convert all the headers. See docs for details. (Ben Mabey)
356
+
357
+ == 0.3.97 2009-08-23
358
+
359
+ The AA-FTT release. Creating a release for the AA-FTT meeting in Chicago so that we can play
360
+ with the new language API and maybe knock out some better .NET support.
361
+
362
+ === Bugfixes
363
+ * Allow comments on examples sections underneath scenario outlines (#420 Mike Sassak)
364
+ * Table.map_headers! will fail with a decent error message when 0 or 2+ headers are matched. (Aslak Hellesøy)
365
+ * Fixed an issue with comments with preceding spaces after a background causing a parse error (#401 Joseph Wilk)
366
+
367
+ === New Features
368
+ * The public API is documented and there is a new :sdoc task to generate nice searchable API docs.
369
+ * Add :default => :cucumber when setting up Rake tasks for Cucumber in Rails (Aslak Hellesøy)
370
+ * New When /^I fill in "([^\"]*)" for "([^\"]*)"$/ Webrat step for Rails (Aslak Hellesøy)
371
+
372
+ === Changed Features
373
+ * Changed the Programming Language API to support languages without "bleed through" (e.g. rubypython can't invoke ruby objs) (Aslak Hellesøy)
374
+ * The Programming Language API manages hooks on the language level instead of on the step mother level (Aslak Hellesøy)
375
+
376
+ == 0.3.96 2009-08-15
377
+
378
+ This release doesn't have any significant new features or bug fixes, but there are big
379
+ internal changes. This release has a new API for plugging in other programming languages.
380
+ You can read more about that here: http://groups.google.com/group/cukes/browse_thread/thread/b9db8bf1f3ec9708
381
+
382
+ This might break other tools that are using Cucumber's internal APIs. For example Spork broke and had to
383
+ be patched. Please upgrade to Spork 0.5.9 if you are using Spork.
384
+
385
+ === New Features
386
+ * Ability to preload natural language in Spork's prefork. Rerun script/generate cucumber --spork to see how. (Aslak Hellesøy)
387
+ * Ability to control which DRb port is used via the --port flag or by setting CUCUMBER_DRB environment variable. (Chris Flipse)
388
+ * Upgrade Rails generator to use webrat 0.5.0. (Aslak Hellesøy)
389
+ * Upgrade Sinatra example to work with rack-test 0.4.1 and webrat 0.5.0. (Aslak Hellesøy)
390
+
391
+ === Changed Features
392
+ * --strict will cause an exit code 1 for missing and pending (used to be for missing only). (Mads Buus)
393
+ * junit formatter doesn't report pending steps unless --strict is used. (Mads Buus)
394
+
395
+ == 0.3.95 2009-08-13
396
+
397
+ This release improves Webrat support for table-like HTML markup. Now you can easily turn the HTML
398
+ elements table, dl, ol and ul elements into a 2D array. This is particularly useful for comparing
399
+ data in your HTML with a Cucumber table using Cucumber::Ast::Table#diff!
400
+
401
+ This release also fixes several bugs related to --drb (Spork) and profiles (cucumber.yml)
402
+
403
+ === Bug Fixes
404
+ * --guess will always prefer the longest regexp with no groups if they exist.
405
+ * Prevent delays if a NoMethodError is raise in a step definition. Define a light #inspect in World. (#374 Aslak Hellesøy)
406
+ * Restore 'features' as the default feature running path. (#412 Ben Mabey)
407
+ * --drb degrades gracefully when no drb server is running and no formatter is provided. (#410 Ben Mabey)
408
+ * --language picked up from profiles again. (#409 Ben Mabey)
409
+ * Resolved infinite loop problem when --drb was defined in a profile. (#408 Ben Mabey)
410
+
411
+ === New Features
412
+ * Cucumber::World#table has been overloaded to work with 2D Array in addition to a table String to be parsed.
413
+ * New When /^I fill in the following:$/ step definition for Webrat. Useful for filling out a form with a Table. (Aslak Hellesøy)
414
+ * The object returned by element_at (Webrat::Element) has a #to_table that works for table, dl, ol and ul. (Aslak Hellesøy)
415
+ * An explanation of why failures are ok is printed when --wip is used. (Aslak Hellesøy)
416
+ * Added cucumber alias for cucumber:ok in Rails Rake tasks. (Aslak Hellesøy)
417
+
418
+ === Changed features
419
+ * element_at('table').to_table should be used instead of table_at('table').to_a. The old way is deprecated but still works. (Aslak Hellesøy)
420
+ * element_at (and the depracated table_at) no longer takes a DOM id, only CSS selectors. Change "my_id" to "#my_id". (Aslak Hellesøy)
421
+
422
+ == 0.3.94 2009-08-06
423
+
424
+ Kanban take II.
425
+
426
+ Release 0.3.6 introduced a new --wip switch that can be used to limit work in progress
427
+ (WIP). Limiting WIP is central for Kanban Software Development (http://www.infoq.com/articles/hiranabe-lean-agile-kanban).
428
+
429
+ However, this feature went mostly unnoticed, and because we think it's so great we have decided
430
+ to make it the default for Rails projects. When you bootstrap your Rails project for Cucumber
431
+ you will now get 2 Cucumber Rake tasks for Kanban development:
432
+
433
+ cucumber:ok : Run features that should pass. This runs your "good,old" features
434
+ cucumber:wip : Run the features you're working on that don't pass yet. Tag them with @wip. Max 2!
435
+
436
+ So upgrade today and get into the habit of tagging new features with @wip (or invent your own tags).
437
+ You'll achieve better flow this way.
438
+
439
+ === New features
440
+ * Support limiting the number of feature elements with certain tags (#353 Joseph Wilk)
441
+ * script/generate cucumber sets up 'cucumber:ok' and 'cucumber:wip' tasks and deprecates 'features'. More Kanban love. (#344 Aslak Hellesøy)
442
+ * Better JUnit formatter: feature->testsuite, scenario->testcase. Better timing and support for background and scenario outline. (Mads Buus Westmark)
443
+ * Added examples/python that uses rubypython. (Aslak Hellesøy)
444
+ * Checks the number of available colors on the terminal with ruby-terminfo if ruby-terminfo is installed.
445
+ This prevents Apple's Terminal.app from stalling (Yugui - Yuki Sonoda).
446
+ * Set 'xterm-256color' to TERM if your terminal supports grey.
447
+ * ruby-terminfo is available as genki-ruby-terminfo gem from github.
448
+ * Document builtin formatters with --help. (#406 Aslak Hellesøy)
449
+ * Added support for using regular expressions when mapping table headers. (Peter Williams)
450
+
451
+ == 0.3.93 2009-08-03
452
+
453
+ Highlights in this release: Improved profile handling (cucumber.yml) and a fix for cucumber hanging.
454
+
455
+ === New features
456
+ * script/generate cucumber --spork now sets up a spork gem dependency in the cucumber.rb environment. (Aslak Hellesøy)
457
+ * Feature files defined on the command line override any that are present in profiles. (#344 Ben Mabey)
458
+ * Default (STDOUT) formatter defined in profile can be overridden from the command line. (#344 Ben Mabey)
459
+ * Displays which profile, if any, is being used. (Ben Mabey)
460
+ * click_link_within(parent, link) webrat step (Joakim Kolsjö)
461
+
462
+ === Bugfixes
463
+ * script/cucumber correctly loads the gem's binary if the plugin isn't installed.
464
+ * Cucumber hangs waiting for Ctrl+C if an Error is raised. (#374 Aslak Hellesøy)
465
+
466
+ == 0.3.92 2009-07-29
467
+
468
+ This release has some minor improvements to the new Table.diff! functionality. For example,
469
+ if you're using Webrat and you want to compare a feature table with a HTML table containing
470
+ links in one of the columns, you can do:
471
+
472
+ actual = Cucumber::Ast::Table.new(table_at('table').to_a)
473
+ actual.map_column!('Name') { |text| text.strip.match(/>(.*)</)[1] }
474
+ table.diff!(actual)
475
+
476
+ === New features
477
+ * Allow Step Definitions to accept mix of required & optional args (Niels Ganser)
478
+ * table_a.diff!(table_b) now uses column conversions from both tables (Table#map_column!) (Aslak Hellesøy)
479
+
480
+ === Bugfixes
481
+ * Upgrade Sinatra example to work with rack-test 0.3.0 and aslakhellesoy-webrat 0.4.4.1 (Aslak Hellesøy)
482
+ * require 'cucumber/webrat/table_locator' added to Spork environment for Rails (Anders Furseth)
483
+
484
+ === Changed Features
485
+ * The 'default' profile is now ALWAYS used unless you specify another profile or use the -P or --no-profile flag. (#344 Ben Mabey)
486
+
487
+ == 0.3.91 2009-07-27
488
+
489
+ === New Features
490
+ * CTRL-C will exit immediately instead of carrying on until all features are run. (Aslak Hellesøy)
491
+ * Run can be stopped programmatically by setting $cucumber_interrupted = true, for example in an After block. (Aslak Hellesøy)
492
+ * Support limiting the number of feature elements with certain tags (#353 Joseph Wilk)
493
+ * Table support for cuke4duke
494
+
495
+ == 0.3.90 2009-07-22
496
+
497
+ The Hot summer release
498
+
499
+ This is a hot summer in Norway, and Cucumbers are growing in abundance. To celebrate this we give you
500
+ a new release with lots of new features and bugfixes. This is also one of the last releases in the 0.3 series
501
+ (hence the 0.3.90 number), so 0.4 (or maybe 1.0!) will be coming up soon. The highlights of this release are:
502
+
503
+ === Egality
504
+
505
+ English is not the world's most spoken language, so why should Cucumber force non-English speakers to use the
506
+ --language flag? As of this release you're no longer forced to do that. Instead, you can add a comment header
507
+ to your .feature files:
508
+
509
+ # language: fr
510
+ # Cucumber understands that this is French
511
+ Fonctionnalité: Trou de boulette
512
+
513
+ If you don't have that header, Cucumber will work as before - using whatever you specified with --language,
514
+ or default to English if no --language option was specified. A nice side effect of this is that you can now
515
+ have features in several languages side by side and run them in the same cucumber. (Not recommended unless
516
+ you want to take polyglot programming to an extreme level).
517
+
518
+ === Table diffing (experimental)
519
+
520
+ When you pass a table as an argument to your Then steps you often want to compare that table
521
+ to some actual values. In previous releases you had to iterate over the table's values and manually
522
+ compare each row using cell.should equal('foo') or assert_equal('foo', cell). If a discrepancy was found
523
+ you'd get an error, but it was hard to see how the entire expected data set was different from the actual one.
524
+
525
+ With this release you have a much more powerful way to compare expected tables with actual data. An
526
+ Ast::Table object now has a new #diff!(table) method that you can invoke in your step definitions
527
+ that take table arguments. If the table you pass in is different from the expected table (from your
528
+ plain text step), Cucumber will print the difference for each of the row or column and fail your step.
529
+
530
+ The Table#diff! method expects an Array of Array, Array of Hash (similar to what you'd get from table#hashes)
531
+ or simply another Ast::Table object. Here is a simple example:
532
+
533
+ Then /^I should see the following cukes:$/ do |expected_cukes_table|
534
+ actual_table = ... # For example [['Latin', 'English'], ['Cucumis sativus', 'Cucumber'], ['Cucumis anguria', 'Burr Gherkin']]
535
+ expected_cukes_table.diff!(actual_table)
536
+ end
537
+
538
+ As an extra bonus we provide Webrat users with a new #table_at(selector) method that you can use to transform
539
+ an HTML table into an Array of Array, so that you can easily compare the contents of your HTML table to
540
+ expected data passed to a step. Here is an example:
541
+
542
+ Then /^I should see the following cukes:$/ do |expected_cukes_table|
543
+ expected_cukes_table.diff!(table_at('#cuke_table').to_a)
544
+ end
545
+
546
+ You can do the same trick to compare data from a Rails ActiveRecord table (although this is not a
547
+ recommended practice - your Then steps should compare against what users *see*, not what's in the
548
+ database):
549
+
550
+ # This requires that you use the column names in the header of the plain text expected table
551
+ Then /^I should have the following cukes in the database:$/ do |expected_cukes_table|
552
+ expected_cukes_table.diff!(Cuke.find(:all).map(&attributes))
553
+ end
554
+
555
+ === Environment variables
556
+
557
+ Another useful new feature is the ability to define environment variables on Cucumber's command line (just
558
+ like you can with Rake). Example:
559
+
560
+ cucumber FOO=BAR --format progress features
561
+
562
+ You can now pick up ENV['FOO'] in ruby (for example in env.rb) and take actions according to the value,
563
+ for example enabling your super hack that validates all HTTP responses for XHTML validity.
564
+
565
+ This release also has several bugfixes related to --format and Before/After hooks.
566
+
567
+ === Bugfixes
568
+ * Fix some misspellings which affect test fail for Korean example (#373 Dongju Kim)
569
+ * Make it possible to write non-localized step definitions (#377 Aslak Hellesøy)
570
+ * Table cells containing unicode are rendered incorrectly (#386 Stefan Kanev)
571
+ * Before and After hooks run after everything is finished when there are 2+ --format options (#371 Aslak Hellesøy)
572
+ * When using --out and two --format the first is not delivered inline with execution of features (#361 Aslak Hellesøy)
573
+ * Profile Formatter broken (#370 Aslak Hellesøy)
574
+ * Default profile usage with --drb flag degrades gracefully with no server. (#367 Ben Mabey)
575
+ * JUnit formatter uses original file name instead of narrative to avoid accidental duplicate XML files (Aslak Hellesøy)
576
+ * rake gems no longer lists cucumber as a [F]ramework gem (David Chelimsky)
577
+ * CLI issues correct exit code when using --drb. Requires Spork version >= 0.5.1. (#355 Ben Mabey)
578
+ * Make sure script/generate cucumber --spork uses the cucumber Rails environment (Philippe Lafoucrière)
579
+ * Fixed bug with rake task raising errors with feature files with spaces (#380 Joseph Wilk)
580
+
581
+ === New Features
582
+ * I should see should support regexes (#382 John Ferlito)
583
+ * Access to scenario outline name from After hook scenario parameter (#342 Aslak Hellesøy)
584
+ * Allow multiple --tags switches to be passed
585
+ * Load step definitions from vendored gems and plugins (#388 Mike Burns)
586
+ * New --format steps formatter. Variant of the usage formatter that lists available step definitions (Demetrius Nunes)
587
+ * Possibility to specify scenario language as part of the .feature file (#345 Aslak Hellesøy)
588
+ * Support specifying environment variables using foo=bar syntax on command line or in profiles (#362 Bryan Helmkamp)
589
+ * Display failing scenarios at the end of pretty format to make it easier for people to play them back (#360 Ryan Bigg)
590
+
591
+ === Changed Features
592
+ * When using --tags, positive tags are &&'ed while negative tags are ||'ed (John Wilger)
593
+ * The data returned from Table#hashes and similar methods are frozen. Dup if you need to modify. (Aslak Hellesøy)
594
+ * Visitor.visit_table_cell_value(value, col_width, status) is now visitor.visit_table_cell_value(value, status)
595
+
596
+ == 0.3.11 2009-06-05
597
+
598
+ This release just fixes a tiny bug in the formatter to fix an incompatibility
599
+ with the latest RedMine release. It should have been included in 0.3.10, but
600
+ was forgotten.
601
+
602
+ === Bugfixes
603
+ * Formatter API was broken in 0.3.9 (Roman Chernyatchik)
604
+
605
+ == 0.3.10 2009-06-05
606
+
607
+ The Spork Release!
608
+
609
+ This release has an exciting new feature - a new --drb switch! This magic switch lets you run your
610
+ features much faster than before, because you can eliminate the startup time for your code. This is
611
+ thanks to a brand new gem called Spork by Tim Harper and Ben Mabey. (You can find out more about Spork
612
+ here: http://github.com/timcharper/spork/tree/master). You can start Spork and have it preload your
613
+ application in a separate process. Spork listens for DRb connections, and when you run cucumber with
614
+ --drb the features will run inside the Spork server instead. Spork provides two simple hooks for preloading
615
+ your application - one for framework/stable code (Spork.prefork) and one for the code that *you* write and
616
+ change often (Spork.each_run). Keep in mind that all World, Before, and other Cucumber hooks need to be
617
+ in the Spork.each_run block. Using Spork works great for Ruby on Rails, which can take a while to load,
618
+ but --drb and Spork aren't tied to Rails at all. The new --drb switch also works great alongside autotest
619
+ (just add --drb to your autotest profile in cucumber.yml), so now you can get even faster feedback.
620
+
621
+ Cucumber's built-in cucumber generator now has a new --spork switch, so when you bootstrap your Rails
622
+ application for cucumber, you can have spork configuration set up out of the box. (It's just a
623
+ slightly different env.rb.)
624
+
625
+ Although Spork was in mind when the --drb switch was added it is important to realize that all that was added
626
+ to Cucumber was a DRb client. Any DRb server that adheres to this protocol can be used with Cucumber's --drb
627
+ switch. While Spork is geared towards removing the load time to give you a faster feedback loop you could
628
+ just as easily use this client with a server that distributes your features to run in parallel. Someone just
629
+ needs to write such a server. ;)
630
+
631
+ This release also has some minor bugfixes related to RSpec and Rails interop.
632
+
633
+ === Bugfixes
634
+ * RSpec's be_* matchers did not work in 0.3.9 and probably earlier versions. Now they do. (Aslak Hellesøy)
635
+ * The Rails cucumber environment won't declare gem dependencies if the plugin exists. (Aslak Hellesøy)
636
+ * The Rails cucumber generator will no longer declare gem dependencies on rspec if you use --testunit. (Aslak Hellesøy)
637
+
638
+ === New features
639
+ * Spork support via --drb. (Ben Mabey)
640
+ * Added a Ast::Feature#name method for convenience. (Aslak Hellesøy)
641
+
642
+ === Changed features
643
+ * The HTML formatter wraps examples in a div, and distinguishes between Scenario and Scenario Outline. (Aslak Hellesøy)
644
+
645
+ == 0.3.9 2009-05-27
646
+
647
+ Bugfix release for 0.3.8 released earlier today. 0.3.8 had a bug in the Rails cucumber
648
+ generator which is fixed in 0.3.9.
649
+
650
+ === Bugfixes
651
+ * Fix broken Rails cucumber generator (Tim Glen)
652
+ * The Cucumber Rake task in non-fork mode will properly cause Rake to exit with 1 when Cucumber fails. (Aslak Hellesøy)
653
+
654
+ == 0.3.8 2009-05-27
655
+
656
+ This Cucumber version fixes several bugs related to Ruby on Rails and RSpec. If you
657
+ use Cucumber with a Rails app we *strongly* recommend you bootstrap Cucumber again:
658
+
659
+ ruby script/generate cucumber
660
+
661
+ === New Features
662
+ * Rails cucumber generator sets up default gem dependencies in cucumber environment.
663
+ * The duration of a run is reported by formatters - same format as the Linux time command (#228 Aslak Hellesøy)
664
+ * Scenario and ExampleRow objects (passed to Before and After hooks) have #name and #line methods (#316 Aslak Hellesøy)
665
+ * Rails generator creates a cucumber environment file to avoid potential cache_classes conflicts in test.rb (#165, Ben Mabey)
666
+ * HTML formatter renders @tags (but the CSS is still ugly)
667
+
668
+ === Removed/changed features
669
+ * The Cucumber Rake task will again fork by default (as 0.3.3 and earlier). Forking must be turned off explicitly. (Aslak Hellesøy)
670
+
671
+ === Bugfixes
672
+ * Better coexistence with RSpec - Cucumber now *neuters* the part of RSpec that tries to parse ARGV.
673
+ * The differ= exception is gone (#325, #340 Aslak Hellesøy)
674
+
675
+ == 0.3.7 2009-05-22
676
+
677
+ This is the "Help JetBrains RubyMine" release!
678
+
679
+ === New Features
680
+ * Added new Given alias for Catalan: Donat|Donada (Lleïr Borràs Metje)
681
+ * New --expand option. This will print Scenario Outlines once for each Example row - with values expanded. (#327 Aslak Hellesøy)
682
+ * You can override the formatter in Rails-generated rake tasks with the CUCUMBER_FORMAT environment variable (#335 Aslak Hellesøy)
683
+
684
+ === Bugfixes
685
+ * 'specs' folder needs to be renamed back to 'spec' (#339 Aslak Hellesøy)
686
+ * CUCUMBER_OPTS doesn't work for cucumber rake tasks (#336 Aslak Hellesøy)
687
+
688
+ == 0.3.6 2009-05-20
689
+
690
+ Kanban! With this release you can tag features or scenarios that are work in progress
691
+ with a tag and use the new --wip switch.
692
+
693
+ Another handy feature in this release is that you can package your own formatters in RubyGems.
694
+
695
+ === New features
696
+ * New --wip switch. See http://www.jroller.com/perryn/entry/bdd_on_a_multi_disciplined (Perryn Fowler)
697
+ * Added a AfterStep hook (Luke Melia)
698
+ * New aliases for Vietnamese (Ngoc Dao)
699
+ * Automatic require of custom formatters. --require is no longer needed to load them, and they can be in Ruby gems. (Aslak Hellesøy)
700
+ * Lazy loading of built-in formatters. Should improve startup time a little bit.
701
+
702
+ === Bugfixes
703
+ * Gracefully handle exceptions in After block (#330 Matt Wynne)
704
+ * Feature with only Background doesn't run hooks (#314, #329 Aslak Hellesøy)
705
+
706
+ == 0.3.5 2009-05-14
707
+
708
+ Let's make a new release today because two annoying bugs are fixed.
709
+
710
+ === Bugfixes
711
+ * Allow feature element names to contain Gherkin keywords as long as they are not the first word on a newline (#319, #307 Joseph Wilk)
712
+
713
+ == 0.3.4 2009-05-14
714
+
715
+ A couple of great new features in this release. Running with Rake is faster than before,
716
+ and there is a brand new JUnit formatter - great for Continuous Integration reports!
717
+
718
+ This release was made especially for the Oslo XP Meetup today.
719
+
720
+ ** IMPORTANT UPGRADE NOTES FOR RAILS USERS **
721
+
722
+ Running Cucumber features in the same Ruby interpreter as Rake doesn't seem to work,
723
+ so you have to explicitly tell the task to fork (like it was doing by default in prior
724
+ versions). In lib/tasks/cucumber.rake:
725
+
726
+ Cucumber::Rake::Task.new(:features) do |t|
727
+ t.fork = true # Explicitly fork
728
+ t.cucumber_opts = %w{--format pretty}
729
+ end
730
+
731
+ (If you run script/generate cucumber this will be done for you).
732
+ Alternatively you can omit forking and run features like this:
733
+
734
+ RAILS_ENV=test rake cucumber
735
+
736
+ However, setting the RAILS_ENV is easy to forget, so I don't recommend relying on this.
737
+
738
+ === Bugfixes
739
+ * Hooks (World, Before, After) are no longer executed when --dry-run (Aslak Hellesøy)
740
+ * Proper UTF8 use in HTML formatter (Herminio Torres)
741
+ * Problem with multiple terms in languages.yml (#321 Aslak Hellesøy)
742
+
743
+ === New features
744
+ * New JUnit formatter (Gareth Jones)
745
+ * Support for Vietnamese (Ngoc Dao)
746
+ * Added aliases for Feature and But in Japanese (Leonard Chin)
747
+ * Support for Catalan (Francesc Esplugas)
748
+
749
+ === Changed features
750
+ * --exclude flag now works on ruby files in addition to feature files (#312 Ben Mabey)
751
+ * The Java example under examples/java uses Ant instead of Rake - and the new JUnit formatter.
752
+ * Rake task should not shell out (#297 Aslak Hellesøy)
753
+ The Cucumber Rake task will run Cucumber in the same Ruby interpreter as Rake itself
754
+ unless explicitly told to fork a new interpreter. This is to increase speed. You can
755
+ force a new interpreter by setting fork=true or rcov=true in the task.
756
+
757
+ == 0.3.3 2009-05-10
758
+
759
+ Minor bugfix release, made specially for EuRuKo!
760
+
761
+ === Bugfixes
762
+ * Summaries are no longer printed in an empty () if there are no scenarios/steps (Aslak Hellesøy)
763
+ * Background, Scenario Outline, Before Hook interaction (#309 Aslak Hellesøy)
764
+ * Multiline String snippets no longer give misleading info. It's a String, not a PyString that's sent to step def.
765
+
766
+ === Removed/changed features
767
+ * New aliases: --no-source/-s, --name/-n (#317 Lonnon Foster)
768
+
769
+ == 0.3.2 2009-05-05
770
+
771
+ This release has some minor bug fixes and new features.
772
+ Nothing major, but we need a release for RailsConf'09 in Las Vegas!
773
+
774
+ === Bugfixes
775
+ * rake tasks with profiles not respecting --require flags (#311 Ben Mabey)
776
+ * Step table with blank cell fails (#308 JohnnyT)
777
+ * Fixed error where unused table cells in Examples where raising exceptions due to having no status (#302 Joseph Wilk)
778
+
779
+ === New features
780
+ * Support for Hebrew (Ido Kanner)
781
+ * Summary should report scenarios (#32 Aslak Hellesøy)
782
+ * Examples and the associated tables are indented one level deeper than Scenario Outline. (Aslak Hellesøy)
783
+ * Added support for Examples selection when using --name. (#295 Joseph Wilk)
784
+
785
+ == 0.3.1 2009-04-26
786
+
787
+ This release has several minor bug fixes and new features. With the addition of Latvian and Hungarian Cucumber
788
+ now supports 32(!!) languages.
789
+
790
+ === New features
791
+ * Support multiline names for Scenarios, Scenario Outlines, Backgrounds, Examples (#231 Joseph Wilk)
792
+ * Added #headers to Cucumber::Ast::Table (Ben Mabey)
793
+ * New translation for Latvian (Vitauts Stočka)
794
+ * New translation for Hungarian (#287 Bence Golda)
795
+ * Pick up failure on after hook (#272 Aslak Hellesøy)
796
+
797
+ === Bugfixes
798
+ * Pretty formatter not colouring Examples tables correctly (#304 Aslak Hellesøy)
799
+ * Problem using --scenario and Scenario Outline (#298 Aslak Hellesøy)
800
+ * Tag Hook gets executed always there is a background (#301 Aslak Hellesøy)
801
+ * Feature which only has a Background with steps causes an exception (#306 Aslak Hellesøy)
802
+ * Gem no longer depends on Hoe (Aslak Hellesøy)
803
+ * Span html tags appear on HTML results with 0.3.0 (#299 Aslak Hellesøy)
804
+ * Fixed incorrect colours in pretty formatter's table headers for outline tables (Aslak Hellesøy)
805
+ * Exceptions from steps called within hooks are now reraised. (#294 Ben Mabey)
806
+
807
+ === Removed/changed features
808
+ * --scenario handle has been removed and replaced with --name which supports partial matches, regexp special characters, running named backgrounds (#295 Joseph Wilk)
809
+
810
+ == 0.3.0 2009-04-14
811
+
812
+ This release has some minor changes to the APIs, but big enough that a new major release is in order.
813
+ The biggest change is the new semantics of the #World method. Previously you would call this method
814
+ several times, passing a Proc and extending the world object of the previous one with a Ruby module.
815
+ The problem was that there was no nice way to ensure the order in which these procs were called, which
816
+ led to some unexpected situations. In this release you can only register a single World proc. If you
817
+ want to extend a world with certain modules, you simply call the #World method with the module(s)
818
+ you wish to extend the World with. The Sinatra example illustrates how to do this. Also check out
819
+ the RDoc for Cucumber::StepMother#World.
820
+
821
+ The Visitor API (which is used for formatters) has also changed slightly. However, we have tried to
822
+ do this in a backwards compatible way, so if you have custom formatters for Cucumber 0.2 they should
823
+ still work.
824
+
825
+ One of the most significant new features is Tagged Hooks: http://wiki.github.com/aslakhellesoy/cucumber/hooks
826
+ This lets you associate Before and After blocks with specific scenarios.
827
+
828
+ We are also deprecating the step_list, step_pattern, feature_list, and feature_pattern accessors on
829
+ Cucumber::Rake::Task. These accessors will be completely removed in version 0.4. For complex settings
830
+ please rely on cucumber profiles in your rake tasks:
831
+ http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
832
+
833
+ === New features
834
+ * Use Hooks with @tags (#229 Aslak Hellesøy)
835
+ * Rake task supports cucumber.yml profiles (#187 Ben Mabey)
836
+ * Field value steps for Webrat (Jack Chen)
837
+ * Added translation for Bulgarian (Krasimir Angelov)
838
+ * Updated translation for Polish (#273 Grzegorz Marszałek)
839
+ * Only a single World proc can be registered. World extension now happens by calling #World with ruby modules.
840
+ * Portuguese uses Funcionalidade in stead of Característica and accented words are aliased with unaccented ones (Alexandre da Silva and Felipe Coury).
841
+ * The usage formatter also prints unused step definitions (Aslak Hellesøy)
842
+ * Better exception if a World proc returns nil. (Aslak Hellesøy)
843
+ * Allow Step Definitions to use |*varargs|, but only on Ruby 1.9. (Aslak Hellesøy)
844
+ * Snippets for steps that use Step Tables or PyStrings include block param and object type hint comment (#247 Joseph Wilk)
845
+ * Support description string for Backgrounds (#271 Joseph Wilk)
846
+
847
+ === Bugfixes
848
+ * After methods not being executed when Background fails (#288 Luismi Cavallé)
849
+ * Fixed dependency on internal files in rspec breaks cucumber w/ rspec-1.2.4 (#291 Aslak Hellesøy)
850
+ * Fix color use when using autotest on Linux. (Hans de Graaff)
851
+ * Fixed incorrect calculation of pystring indentation (#279 Eugene Naydanov)
852
+ * Fixed --format html leads to an error (#252 Aslak Hellesøy)
853
+ * Fixed Background runs twice (#255 Aslak Hellesøy)
854
+ * Fixed Background Transactions and :xx (#270 Aslak Hellesøy)
855
+ * Fixed Autospec failing with cucumber 0.2 (#254 Aslak Hellesøy)
856
+ * Sibling file detecting not working (#278 Aslak Hellesøy)
857
+
858
+ === Removed/changed features
859
+ * The visitor API has changed slightly:
860
+ ** #visit_step_name, #visit_multiline_arg and #visit_exception are no longer official API methods.
861
+ ** #visit_step_result replaces those 3 methods.
862
+ ** Table and PyString no longer hold status information. Each visitor subclass should store state in @state if needed.
863
+ ** #visit_py_string no longer takes a status argument.
864
+
865
+ == 0.2.3 2009-03-30
866
+
867
+ This release sports 4 updated languages, slightly better help with snippets if you "quote" arguments
868
+ in your steps. Windows/JRuby users can enjoy colours and you get some more sugar with Tables.
869
+
870
+ === New features
871
+ * Added new Then /^I should be on (.+)$/ do |page_name| step (Grant Hollingworth)
872
+ * Use skipped_param color for examples table header (#266 Eugene Naydanov)
873
+ * Added new Cucumber::Ast::Table#rows_hash method (Torbjørn Vatn)
874
+ * Windows/JRuby users can now enjoy colourful output (via http://github.com/aslakhellesoy/ansicolor) (#166 Aslak Hellesøy)
875
+ * Ambiguous step errors hint about --guess (unless --guess already on) (Aslak Hellesøy)
876
+ * Added translation for Slovak (Ahmed Al Hafoudh)
877
+ * Updated translation for Dutch (Bart Zonneveld)
878
+ * Updated translation for Italian (Alessandro Baroni)
879
+ * Updated translation for Japanese (KAKUTANI Shintaro)
880
+
881
+ === Bugfixes
882
+ * Fixed step name after step keyword without space (#265 Aslak Hellesøy)
883
+ * Backtrace is back in HTML reports (Aslak Hellesøy)
884
+
885
+ == 0.2.2 2009-03-25
886
+
887
+ This release includes some minor changes to make Cucumber work with pure Java. Cucumber
888
+ has already worked with Java for a while (using JRuby and step definitions in Ruby),
889
+ but now you can write step definitions in pure Java!
890
+
891
+ Check out the Cucumber Java project for more details:
892
+ http://github.com/aslakhellesoy/cucumber_java/tree/master
893
+
894
+ == 0.2.1 2009-03-25
895
+
896
+ This release fixes a few minor bugs and adds a couple of new features.
897
+
898
+ == Bugfixes
899
+ * Fixed Cucumber, and rails controller error handling (#49 Matt Patterson)
900
+ * HTML Formatter doesn't work correctly with scenario Outlines. (#260 Aslak Hellesøy)
901
+ * After blocks are run in reverse order of registration. (#113 Aslak Hellesøy)
902
+ * Snippets are showing 'Ands' (#249 Aslak Hellesøy)
903
+
904
+ === New features
905
+ * Snippets use a regexp and block arguments if the step name has "quoted" arguments. (Aslak Hellesøy)
906
+ * Cucumber::Ast::Feature#to_sexp includes the file name. (Aslak Hellesøy)
907
+ * support/env.rb is not loaded when --dry-run is specified. This is to increase performance. (Aslak Hellesøy)
908
+ * New usage formatter. This is the foundation for editor autocompletion and navigation between steps and step definitions. (#209 Aslak Hellesøy)
909
+
910
+ === Removed features
911
+ * -S/--step-definitions option introduced in 0.2.0 is removed. Use --format usage [--dry-run] [--no-color].
912
+
913
+ == 0.2.0 2009-03-18
914
+
915
+ This release sports a bunch of new and exciting features, as well a major rewrite of Cucumber's internals.
916
+ The rewrite was done to address technical debt and to have a code base that is easier to evolve and maintain.
917
+
918
+ There are some changes to the Gherkin language that breaks backwards compatible with the 0.1.x series.
919
+ Most importantly, "GivenScenario" and "More Examples" no longer exist. See the "Removed features" section
920
+ below for more details on how to use alternatives.
921
+
922
+ Since the grammar has changed, there are some new keywords. We have to rely on the community
923
+ to provide updated translations. This is much easier than before - just update languages.yml.
924
+ There is no static code generation anymore. To list all languages:
925
+
926
+ cucumber --lang help
927
+
928
+ And to list the keywords for a particular language:
929
+
930
+ cucumber --lang en-lol help
931
+
932
+ There are some really awesome new features in this release: Tagging, Autoformatting, automatic
933
+ aliasing of keywords in all languages, full Ruby 1.9 support and improved output
934
+ for multiline arguments are some of the highlights.
935
+
936
+ == Bugfixes
937
+ * New StepInvocation breaks console formatter for pending steps. (#241 Jacob Radford)
938
+ * Within Scenario Outlines when replacing with a nil in a step name use empty string instead. (#237 Joseph Wilk)
939
+ * Fixed bug with Scenario Outlines incorrectly replacing values in step tables with nil. (#237 Joseph Wilk)
940
+ * Within Scenario Outlines when replacing with a nil in multiline strings use empty string instead. (#238 Joseph Wilk)
941
+ * Re-structure the ast: Feature -> Background -> (Scenario|ScenarioOutline)*. Fixes bug with background being called outside transactions. (#181 Joseph Wilk)
942
+ * --strict always exits with status 1 (#230 Tim Cuthbertson)
943
+ * Fix error with nil values in tables raising an exception (#227 Joseph Wilk)
944
+ * Add support for using << in formatters to ensure the html formatter works (#210 Joseph Wilk)
945
+ * Explicitly require env.rb files first to avoid potential load order problems. (#213, Ben Mabey, Randy Harmon)
946
+ * Depend on polyglot version (0.2.4) to avoid masking require errors. (Aslak Hellesøy).
947
+ * -n option does not suppress the line info for a Scenario Outline (#175 Aslak Hellesøy)
948
+ * Errors with rspec-rails matchers in cucumber 0.1.99 (#173 David Chelimsky)
949
+ * Can't use an empty string as a table value in a scenario outline (#172 Aslak Hellesøy)
950
+ * Really skip skipped steps (#90 Aslak Hellesøy)
951
+ * No output for multi-line strings (#71 Aslak Hellesøy)
952
+ * Fix cucumber/formatter/unicode flaws on Windows (#145 Michael)
953
+ * Autotest-related Bugs: YAML missing (#136 Tobias Pape)
954
+ * Overeager "rescue LoadError" hides lots of errors (#137 Jonathan del Strother)
955
+ * Nested steps don't show mismatch (#116 Aslak Hellesøy)
956
+ * Pending steps in > steps called from steps (#65 Aslak Hellesøy)
957
+
958
+ === New features
959
+ * Australian translation (Josh Graham)
960
+ * Added World#announce(announcment) which lets you output text to the formatted output (#222 Rob Kaufmann)
961
+ * Added Table#transpose to to allow use of vertically aligned table keys (Torbjørn Vatn, Aslak Hellesøy)
962
+ * Added Table#map_headers to to allow use of more readable headers (Rob Holland)
963
+ * New -S/--step-definitions option. Useful (among other things) for tools that implement automcompletion. (#208 Aslak Hellesøy).
964
+ * The cucumber.rake file defines a dummy :features task if Cucumber is not installed (#225 Josh Nichols)
965
+ * Added Table#map_column! to ease casting of cell values into relevant types (#223 Rob Holland)
966
+ * New --no-diff option (#218 Bryan Ash)
967
+ * Rails generators supports testunit and rspec option, defaulting to rspec (#217 Josh Nichols)
968
+ * Sinatra Example (#204 Rob Holland)
969
+ * Keywords can be aliased in languages.yml. See English for an example (examples: Examples|Scenarios)
970
+ * Adding support for Background (#153 Joseph Wilk)
971
+ * Added Česky/Czech (Vojtech Salbaba)
972
+ * New --no-multiline option to reduce noise in output. Useful if lots of features are failing. (Aslak Hellesøy)
973
+ * Added ability to pass URIs to cucumber in addition to files and directories. Useful for troubleshooting! (Aslak Hellesøy)
974
+ * Groups of tabular scenarios (#57 Aslak Hellesøy)
975
+ * Tagging scenarios and features. Pick the ones to run with --tags (#54 Aslak Hellesøy)
976
+ * Make the current scenario available to the steps. (#44 Aslak Hellesøy)
977
+ * Step definition snippets contain a 'pending' call (#84 Aslak Hellesøy)
978
+ * Call multiline steps from other steps (#144 Aslak Hellesøy)
979
+ * Run cucumber with --autoformat DIR to reformat (pretty print) all of your feature files. (Aslak Hellesøy)
980
+ * New --strict option exits with an error code if there are undefined steps. (#52 Aslak Hellesøy)
981
+ * Given, When, Then methods (used in step definitions) are automatically aliased to current language. Use $KCODE='u' in env.rb if needed.
982
+ * Run cucumber --language help to see all supported languages. (Aslak Hellesøy)
983
+ * Run cucumber --language LANG help to see keywords for a given language. (Aslak Hellesøy)
984
+ * Multiline arguments (tables and """ strings) are printed in the output. (Aslak Hellesøy)
985
+ * It's no longer necessary to compile the Treetop grammar when adding a new language. Localised parser is generated at runtime. (Aslak Hellesøy)
986
+ * New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple. (Jake Howerton)
987
+
988
+ === Removed features
989
+ * "GivenScenario" is gone. Instead you can call Steps from Step Definitions, or use the new Background feature (#153)
990
+ * "More Examples" is gone. "Scenario" + "More Examples" is no longer supported. Use "Scenario Outline" + "Examples" instead.
991
+ * Pure Ruby features are no longer supported.
992
+ * Remove --color option in autotest. Can be added manually in cucumber.yml (#215 Jean-Michel Garnier)
993
+
994
+ == (0.1.16.4 aslakhellesoy-cucumber gem on GitHub)
995
+
996
+ Bugfix release.
997
+
998
+ IMPORTANT NOTE FOR RAILS USERS.
999
+ The template used to generate your features/support/env.rb has changed. You have to apply a minor change
1000
+ manually for existing Rails projects when you upgrade to this version. Change this:
1001
+
1002
+ require 'webrat/rspec-rails'
1003
+
1004
+ to this:
1005
+
1006
+ require 'webrat/core/matchers'
1007
+
1008
+ === New features
1009
+ * Finnish translation (Tero Tilus)
1010
+ * Use Webrat's #contain matcher in generated "I should (not) see" step definitions (Bryan Helmkamp)
1011
+
1012
+ == Bugfixes
1013
+ * Escaped quotes - \" - inside multiline strings will be unescaped.
1014
+ * Flush output in HTML formatter since JRuby doesnt do it automatically (Diego Carrion)
1015
+ * Better handling of ARGV (#169 David Chelimsky, Ben Mabey)
1016
+ * Compatibility with ruby-debug (do ARGV.dup in bin/cucumber so it can restart ruby with same args) (Aslak Hellesøy)
1017
+
1018
+ == 0.1.16 2009-01-19
1019
+
1020
+ This is a small bugfix release. The most notable improvement is compatibility with Webrat 0.4. Rails/Webrat users should
1021
+ upgrade both Cucumber and Webrat gems.
1022
+
1023
+ === New features
1024
+ * Allow argument placeholders in step tables and multiline comments (#121 Joseph Wilk)
1025
+ * Scenario Outline can be followed by several named Examples sections (#123 Aslak Hellesøy)
1026
+ * Add the #binary= method back to the Rake task. It is needed by merb_cucumber for running the features of a merb app with it's bundled gems. (Thomas Marek)
1027
+ * Added a /^When I go to (.+)$/ step definition to webrat_steps.rb and a simple page name to path mapping method (Bryan Helmkamp)
1028
+
1029
+ === Bugfixes
1030
+ * Fix to run single scenarios when the line number specified doesn't correspond to a step (i.e. blank lines or rows) (#160 Luismi Cavallé)
1031
+
1032
+ === Removed features
1033
+
1034
+ == 0.1.15 2009-01-08
1035
+
1036
+ Bugfix release
1037
+
1038
+ === New features
1039
+ * 한국어! (Korean!) (John Hwang)
1040
+
1041
+ === Bugfixes
1042
+ * --dry-run skips running before/after/steps (#147 Ian Dees)
1043
+ * Fix a minor bug in the console formatter's summary (David Chelimsky)
1044
+ * Better quoting of Scenario names in Autotest (Peter Jaros)
1045
+ * Added some small workarounds for unicode handling on Windows (Aslak Hellesøy)
1046
+
1047
+ == 0.1.14 2009-01-04
1048
+
1049
+ This is the first release of Cucumber that runs on Ruby 1.9. There are still some encoding-related issues
1050
+ with Arabic (ar), Japanese (ja) and Simplified Chinese (zh-CN). Patches are welcome. Other than that -
1051
+ a couple of minor bug fixes and polishing.
1052
+
1053
+ === New features
1054
+ * Pretty formatter shows number of scenarios (#139 Joseph Wilk)
1055
+ * Rudimentary support for Ruby 1.9. Now it's ok to file Ruby 1.9-related bugs.
1056
+
1057
+ === Bugfixes
1058
+ * Fixed "No such file or directory -- cucumber (LoadError)" bug with AutoTest (Aslak Hellesøy)
1059
+ * Fixed `load_missing_constant': uninitialized constant Dispatcher error with Rails (Aslak Hellesøy)
1060
+
1061
+ === Removed features
1062
+ * The #binary= method is gone from the Rake task. It will always point to the binary in the current gem. (Aslak Hellesøy)
1063
+
1064
+ == 0.1.13 2008-12-20
1065
+
1066
+ It's time for some new features again. Output is now much better since you can use diffing, tweak
1067
+ the output colours and get the full --backtrace if you want. Managing your support/* files became
1068
+ a little easier since they are now always loaded before the step definitions. Life became easier
1069
+ for Windows users in Norway (and other countries using unicode in the features). Plus several other
1070
+ bug fixes.
1071
+
1072
+ Enjoy!
1073
+
1074
+ === New features
1075
+ * Console output is no longer bold, but regular. Step arguments are bold instead of blold+underlined. (Aslak Hellesøy)
1076
+ * Console output can be configured with CUCUMBER_COLORS in your shell. (Aslak Hellesøy)
1077
+ * Added new --backtrace option to show full backtrace (Aslak Hellesøy)
1078
+ * Enable RSpec's diffing automatically if RSpec is loaded (Aslak Hellesøy)
1079
+ * Files in support directories are loaded before any other file (i.e. step definitions.) (#120, Ben Mabey)
1080
+ * The Rails features generator got some love and is now tested: http://github.com/aslakhellesoy/cucumber_rails (Aslak Hellesøy)
1081
+ * --language is aliased to -l instead of -a (-l became available when --line was refactored) (Aslak Hellesøy)
1082
+ * Scenario Outlines which through placeholders in the steps allow control of how scenario table values are used. (#57 Joseph Wilk)
1083
+ * Scenario Outlines are now usable in pure ruby (Joseph Wilk)
1084
+ * Add support for calling 'pending' from step definitions. (#112 Joseph Wilk)
1085
+
1086
+ === Bugfixes
1087
+ * Make rails before filters work correctly (#122, #129 Guillermo Álvarez Fernández)
1088
+ * Proper Unicode support for Windows command shells: Just require cucumber/formatter/unicode in env.rb (Aslak Hellesøy)
1089
+ * Fixed disappearing "a" on Windows (#81 Aslak Hellesøy)
1090
+ * Fixed a bug where row step outlines were loosing step tables. (#121 Joseph Wilk, Ben Mabey)
1091
+ * The Cucumber Autotest plugin now launches JRuby if autotest is run with JRuby (Aslak Hellesøy)
1092
+ * Provide helpful and non-confusing error message when specified profile is blank. (#118, Ben Mabey)
1093
+ * Improve handling and error messages for malformed cucumber.yml files. (#117, Ben Mabey)
1094
+ * document :x run option in command line help (#114, Aslak Hellesøy)
1095
+ * Change 'visits' to 'visit' in features generator to comply with new Webrat API (Darius Roberts)
1096
+
1097
+ === Removed features
1098
+
1099
+ == 0.1.12 2008-12-04
1100
+
1101
+ This is the "getting serious with IronRuby release" - largely based on
1102
+ "Patrick Gannon":http://www.patrickgannon.net/archive/2008/10/23/bdd-style-feature-tests-using-ironruby-and-rspeccucumber.aspx's
1103
+ blog entry.
1104
+
1105
+ == New features
1106
+ * Cucumber works with IronRuby/.NET - http://github.com/aslakhellesoy/cucumber/wikis/ironruby-and-net (Aslak Hellesøy)
1107
+
1108
+ == Bugfixes
1109
+ * Fixed bug which was preventing coloring under Autotest (#111, Alan Larkin)
1110
+
1111
+ == Removed features
1112
+ None
1113
+
1114
+ == 0.1.11 2008-12-02
1115
+
1116
+ Bugfix release with a couple of minor additional features to the command line options.
1117
+
1118
+ === New features
1119
+ * Capture output from cucumber in Autotest (Alan Larkin)
1120
+ * Update cucumber generator to work with latest Webrat (Bryan Helkamp)
1121
+ * CUCUMBR LIKEZ 2 SPEEK WIF KATS. KTHXBAI (Aimee Daniells)
1122
+ * Support for dynamically pluggable formatters (#99 Joseph Wilk)
1123
+ * --verbose mode to see ruby files and feature files loaded by Cucumber (#106 Joseph Wilk)
1124
+
1125
+ === Bugfixes
1126
+ * The jcode library is not loaded on JRuby/Rails. Workaround for http://tinyurl.com/55uu3u. (Aslak Hellesøy)
1127
+ * Support including modules for class passed to --format (#109 Joseph Wilk)
1128
+
1129
+ === Removed features
1130
+ * The cucumber gem no longer depends on the rspec gem. It must be downloaded manually if RSpec is used. (Jeff Rafter)
1131
+
1132
+ == 0.1.10 2008-11-25
1133
+
1134
+ This release mostly has smaller bugfixes. The most significant new feature is how
1135
+ line numbers are specified. You can now run multiple features at specific lines numbers like this:
1136
+
1137
+ cucumber foo.feature:15 bar.feature:6:45:111
1138
+
1139
+ This will run foo.feature at line 15 and bar.feature at line 6, 45 and 111.
1140
+
1141
+ === New features
1142
+ * Added example showing how to use Cucumber with Test::Unit + Matchy instead of RSpec (Aslak Hellesøy)
1143
+ * Yield existing world object to World block (#87 Aslak Hellesøy)
1144
+ * AUTOFEATURE=tRue works (case insensitive) (Aslak Hellesøy)
1145
+ * Initial support for .NET via IronRuby. (Aslak Hellesøy)
1146
+ * Lithuanian translation (sauliusgrigaitis)
1147
+ * New webrat step defintions to wrap the new selects_time, selects_date, and selects_datetime methods. (Ben Mabey)
1148
+ * Try to load webrat gem if it's not installed as a plugin (Aslak Hellesøy)
1149
+ * Support example.feature:20 or example.feature:10:20:30 syntax for running features at specific line number(s). (#88 Joseph Wilk)
1150
+
1151
+ === Bugfixes
1152
+ * Windows - all the 'a' characters in the output have gone on strike (#81 Luis Lavena, Joseph Wilk, Aslak Hellesøy)
1153
+ * Raise a nice error when encountering step definition without block (#95 Aslak Hellesøy)
1154
+ * Features written using Ruby where breaking due to missing a line number (#91 Joseph Wilk)
1155
+ * Directly creating a Table meant the scenario table header was never set which was causing a formatter error (#91 Joseph Wilk)
1156
+
1157
+ === Removed features
1158
+ * $KCODE='u' is no longer done automatically. Developers should do that explicitly when needed in step definitions or env.rb.
1159
+ * Step definition without a block being treated as pending (#64 Joseph Wilk)
1160
+ * The --line option has been removed. Use the new file.feature:line format instead.
1161
+
1162
+ == 0.1.9 2008-11-12
1163
+
1164
+ With this release Cucumber supports 19 (!) natural languages:
1165
+
1166
+ * Arabic
1167
+ * Chinese Simplified
1168
+ * Danish
1169
+ * Dutch
1170
+ * Estonian
1171
+ * French
1172
+ * German
1173
+ * Italian
1174
+ * Japanese
1175
+ * Malay
1176
+ * Norwegian
1177
+ * Polish
1178
+ * Portuguese
1179
+ * Romanian
1180
+ * Russian
1181
+ * Spanish
1182
+ * Swedish
1183
+ * Texan
1184
+ * Welsh
1185
+
1186
+ Thanks a lot to everyone who has contributed translations. If you don't see your language here, please
1187
+ add it: http://github.com/aslakhellesoy/cucumber/wikis/spoken-languages
1188
+
1189
+ Main functional changes in this release is "Autotest":http://github.com/aslakhellesoy/cucumber/wikis/autotest-integration
1190
+ support and how multiline strings work in feature files:
1191
+
1192
+ # In your .feature file
1193
+ Then I should see
1194
+ """
1195
+ A string
1196
+ that "indents"
1197
+ and spans
1198
+ several lines
1199
+
1200
+ """
1201
+
1202
+ # In your steps.rb file
1203
+ Then 'I should see' do |text|
1204
+ text.should == "A string\n that \"indents\"\nand spans\nseveral lines\n"
1205
+ end
1206
+
1207
+ The triple quotes are used to define the start and end of a string, and it also defines what gets stripped away
1208
+ in the inside string. If the triple quotes are indented 4 spaces, then the text within will have the 4 first
1209
+ spaces removed too.
1210
+
1211
+ === New features
1212
+ * Added --[no-]color option to force color on or off (Peter Jaros)
1213
+ * Step definition without a block will be treated as pending (#64 Joseph Wilk)
1214
+ * Added support for Welsh (improvements welcome) (Joseph Wilk)
1215
+ * Added --quiet option to hide all development aid output when using Pretty formatter (#69 Joseph Wilk)
1216
+ * Added --no-snippets option to hide snippets for pending steps when using Pretty formatter (#69 Joseph Wilk)
1217
+ * Added error messages concerning cucumber.yml. (#70 Ben Mabey)
1218
+ * Added Autotest support - work in progress... (Peter Jaros)
1219
+ * Added new --exclude option (Bryan Helkamp)
1220
+ * Added new --scenario option (Peter Jaros)
1221
+ * Renamed common_webrat.rb to webrat_steps.rb (Ben Mabey, Aslak Hellesøy)
1222
+ * Added new feature[:feature_path] task (Roman Gonzalez)
1223
+ * Added support for Polish (Joseph Wilk)
1224
+ * Support specifying multiple formatters and multiple outputs (#47 Joseph Wilk)
1225
+ * Added support for Japanese. (Kakutani Shintaro)
1226
+ * Added support for Texan (improvements welcome). (Aslak Hellesøy)
1227
+
1228
+ === Bugfixes
1229
+ * Pending step snippets should escape special Regexp characters (#82 Joseph Wilk)
1230
+ * Scenario without a body shouldn't show up as complete (#63 Josh Knowles)
1231
+ * Fixed bug where utf-8 strings where breaking comment alighments. (#79 Joseph Wilk)
1232
+ * Fixed next_column_index not resetting after large tables (#60, Barry Mitchelson)
1233
+ * The HTML formatter was rendering everything twice. Cannot invoke visit_feature on formatters in executor (#72 Joseph Wilk)
1234
+ * Row Scenarios need to support pending? in order for the Profile formatter to work (Joseph Wilk)
1235
+ * Snippets are not shown for steps which already have a step definition (#65 Joseph Wilk)
1236
+ * Prevent feature/scenario/pending step comments from containing '//' when running features by specifying a directory with a trailing '/' (Joseph Wilk)
1237
+ * Scenario tables need spacing after them (#59 Joseph Wilk)
1238
+ * Support running scenario table rows when using --line argument (#55 Joseph Wilk)
1239
+ * Don't load cucumber.yml unless it exists (Aslak Hellesøy)
1240
+ * Fixing bug where specifying line number 1 in a feature which starts with a scenario with a scenario table was raising an error (#56 Joseph Wilk)
1241
+
1242
+ === Removed features
1243
+
1244
+
1245
+ == 0.1.8 2008-10-18
1246
+
1247
+ This release extends the support for tables. PLEASE NOTE THAT TABLES ARE STILL EXPERIMENTAL.
1248
+ In previous releases it has been possible to use tables to define "more examples" of a scenario in
1249
+ a FIT-style column fixture kind of way. Now you can also use tables as arguments to steps.
1250
+
1251
+ Tables used to define more examples after a scenario must now be prefixed. In English it looks like this:
1252
+
1253
+ Feature: Addition
1254
+ In order to avoid silly mistakes
1255
+ As a math idiot
1256
+ I want to be told the sum of two numbers
1257
+
1258
+ Scenario: Add two numbers
1259
+ Given I have entered 50 into the calculator
1260
+ And I have entered 70 into the calculator
1261
+ When I press add
1262
+ Then the result should be 120 on the screen
1263
+
1264
+ More Examples:
1265
+ | input_1 | input_2 | button | output |
1266
+ | 20 | 30 | add | 50 |
1267
+ | 2 | 5 | add | 7 |
1268
+ | 0 | 40 | add | 40 |
1269
+
1270
+ Languages that are not updated yet will have to use "More Examples" until we get the translations.
1271
+
1272
+ Tables can also be used as arguments to individual steps. In fact, steps now support a single argument
1273
+ that can span several lines. This can be a table or a string.
1274
+
1275
+ Example:
1276
+
1277
+ Given the following people exist:
1278
+ | name | email | phone |
1279
+ | Aslak | aslak@email.com | 123 |
1280
+ | Joe | joe@email.com | 234 |
1281
+ | Bryan | bryan@email.org | 456 |
1282
+ When I search for email.com
1283
+ Then I should see:
1284
+ | name | email | phone |
1285
+ | Aslak | aslak@email.com | 123 |
1286
+ | Joe | joe@email.com | 234 |
1287
+ And I should see:
1288
+ "Some text
1289
+ on several lines"
1290
+
1291
+ The step definitions for such multiline steps must define an extra block argument for the argument:
1292
+
1293
+ Given /the following people exist:/ do |people_table|
1294
+ # people_table is of type Cucumber::Model::Table
1295
+ # See RDoc for more info
1296
+ end
1297
+
1298
+ Then /I should see:/ do |string|
1299
+ # string is a plain old ruby String with leading spaces on each line removed
1300
+ end
1301
+
1302
+ === New features
1303
+ * Added profile formatter. (#35, Joseph Wilk)
1304
+ * Added support for Chinese Simplified. (Liming Lian)
1305
+ * Added support for Dutch. (Sjoerd Tieleman)
1306
+ * Multiline steps are now supported. (#4, Aslak Hellesøy)
1307
+ * Tables used to define more examples for a scenario must be prefixed "More Examples" (see languages.yml for other languages)
1308
+ * Show the file and line number for scenarios as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
1309
+ * Show the file for the feature as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
1310
+ * Show the feature file and line for pending steps as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
1311
+
1312
+ === Bugfixes
1313
+ * Fixed speling errors in Spanish (Daniel Cadenas)
1314
+ * ActionMailer delivery_method should not be set to test (#41, Luke Melia)
1315
+ * Reverse incorrectly ordered args in webrat select step (#43, David Chelimsky)
1316
+ * Support comments above the first scenario (#31, Aslak Hellesøy)
1317
+ * Fixed the HTML Formatter to use actual values for FIT table headers (#30, Joseph Wilk)
1318
+
1319
+ === Removed features
1320
+ * Removed the /^I go to (.*)$/ step from common_webrat.rb - it's not language agnostic and provides little value.
1321
+
1322
+ === New features
1323
+ * Added new --out option to make it easier to specify output from Rake and cucumber.yml
1324
+
1325
+ == 0.1.7 2008-10-05
1326
+
1327
+ This release fixes a few bugs and adds some new features. The most notable features are:
1328
+
1329
+ === Calling steps from steps
1330
+
1331
+ Step definitions are a little bit closer to having regular method semantics.
1332
+ You define them, but now you can also call them from other steps. Here is an
1333
+ example:
1334
+
1335
+ Given /I am logged in as an (.*) named (.*)$/ do |role, name|
1336
+ Given "I am registered as #{role}, #{name}, secret"
1337
+ When "I log in with #{name}, secret"
1338
+ end
1339
+
1340
+ Given /I am registered as (.*), (.*), (.*)/ do |role, name, password|
1341
+ # (Code removed for brevity)
1342
+ end
1343
+
1344
+ When /I log in with (.*), (.*)/ do |name, password|
1345
+ # (Code removed for brevity)
1346
+ end
1347
+
1348
+ This means that steps can be reused in other steps. The GivenScenario feature achieves a similar
1349
+ effect (on the scenario level), but this feature is something we're not very happy with, mostly
1350
+ because it's not parameterisable. Calling steps from steps is.
1351
+
1352
+ GivenScenario will still be working several releases, but the plan is to remove it completely in
1353
+ the 0.3.0 release.
1354
+
1355
+ === Seeing where a step is defined
1356
+
1357
+ Prior to this release it could be hard to find out where the ruby step definition matching
1358
+ a plain text step is defined. Not anymore! Cucumber will now output this:
1359
+
1360
+ Scenario: Regular numbers
1361
+ Given I have entered 3 into the calculator # features/steps/calculator_steps.rb:12
1362
+ And I have entered 2 into the calculator # features/steps/calculator_steps.rb:12
1363
+ When I press divide # features/steps/calculator_steps.rb:16
1364
+ Then the result should be 1.5 on the screen # features/steps/calculator_steps.rb:20
1365
+ And the result class should be Float # features/steps/calculator_steps.rb:24
1366
+
1367
+ === Bugfixes
1368
+ * Fixed a bug in the command line args being lost when using --profile (#27, Joseph Wilk)
1369
+ * Fixed a bug in Webrat selects (Tim Glen)
1370
+ * Fixed parsing of DOS line endings (#2, #28, Aslak Hellesøy)
1371
+
1372
+ === New features
1373
+ * Steps can be called from other steps (#3, Bryan Helmkamp, Aslak Hellesøy)
1374
+ * Added But keyword to all languages (#21, Aslak Hellesøy)
1375
+ * Added --no-source option to display step definition location next to step text (#26, Joseph Wilk, Aslak Hellesøy)
1376
+ * Added more Webrat steps (#25, Tim Glen)
1377
+
1378
+ == 0.1.6 2008-10-01
1379
+
1380
+ First gem release!