cavalle-cucumber 0.2.3.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (343) hide show
  1. data/History.txt +556 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +345 -0
  4. data/README.txt +4 -0
  5. data/Rakefile +8 -0
  6. data/bin/cucumber +6 -0
  7. data/config/hoe.rb +76 -0
  8. data/config/requirements.rb +15 -0
  9. data/cucumber.yml +1 -0
  10. data/examples/cs/README.textile +1 -0
  11. data/examples/cs/Rakefile +12 -0
  12. data/examples/cs/compile.bat +1 -0
  13. data/examples/cs/features/addition.feature +16 -0
  14. data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
  15. data/examples/cs/src/demo/Calculator.cs +20 -0
  16. data/examples/dos_line_endings/Rakefile +6 -0
  17. data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
  18. data/examples/i18n/README.textile +18 -0
  19. data/examples/i18n/Rakefile +30 -0
  20. data/examples/i18n/ar/Rakefile +6 -0
  21. data/examples/i18n/ar/features/addition.feature +16 -0
  22. data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
  23. data/examples/i18n/ar/lib/calculator.rb +11 -0
  24. data/examples/i18n/bg/Rakefile +6 -0
  25. data/examples/i18n/bg/features/addition.feature +11 -0
  26. data/examples/i18n/bg/features/consecutive_calculations.feature +18 -0
  27. data/examples/i18n/bg/features/division.feature +16 -0
  28. data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
  29. data/examples/i18n/bg/features/support/env.rb +6 -0
  30. data/examples/i18n/bg/features/support/world.rb +8 -0
  31. data/examples/i18n/bg/lib/calculator.rb +24 -0
  32. data/examples/i18n/da/Rakefile +6 -0
  33. data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +24 -0
  34. data/examples/i18n/da/features/summering.feature +17 -0
  35. data/examples/i18n/da/lib/kalkulator.rb +11 -0
  36. data/examples/i18n/de/Rakefile +6 -0
  37. data/examples/i18n/de/features/addition.feature +16 -0
  38. data/examples/i18n/de/features/division.feature +9 -0
  39. data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
  40. data/examples/i18n/de/lib/calculator.rb +14 -0
  41. data/examples/i18n/en/Rakefile +6 -0
  42. data/examples/i18n/en/features/addition.feature +16 -0
  43. data/examples/i18n/en/features/division.feature +9 -0
  44. data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
  45. data/examples/i18n/en/lib/calculator.rb +14 -0
  46. data/examples/i18n/en-lol/Rakefile +6 -0
  47. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
  48. data/examples/i18n/en-lol/features/stuffing.feature +8 -0
  49. data/examples/i18n/en-lol/features/support/env.rb +8 -0
  50. data/examples/i18n/en-lol/lib/basket.rb +12 -0
  51. data/examples/i18n/en-lol/lib/belly.rb +11 -0
  52. data/examples/i18n/es/Rakefile +6 -0
  53. data/examples/i18n/es/features/adicion.feature +16 -0
  54. data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
  55. data/examples/i18n/es/lib/calculador.rb +14 -0
  56. data/examples/i18n/et/Rakefile +6 -0
  57. data/examples/i18n/et/features/jagamine.feature +9 -0
  58. data/examples/i18n/et/features/liitmine.feature +16 -0
  59. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
  60. data/examples/i18n/et/lib/kalkulaator.rb +14 -0
  61. data/examples/i18n/fi/Rakefile +6 -0
  62. data/examples/i18n/fi/features/jakolasku.feature +9 -0
  63. data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
  64. data/examples/i18n/fi/features/yhteenlasku.feature +16 -0
  65. data/examples/i18n/fi/lib/laskin.rb +14 -0
  66. data/examples/i18n/fr/Rakefile +6 -0
  67. data/examples/i18n/fr/features/addition.feature +17 -0
  68. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +25 -0
  69. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  70. data/examples/i18n/id/Rakefile +6 -0
  71. data/examples/i18n/id/features/addition.feature +16 -0
  72. data/examples/i18n/id/features/division.feature +9 -0
  73. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  74. data/examples/i18n/id/lib/calculator.rb +14 -0
  75. data/examples/i18n/it/Rakefile +6 -0
  76. data/examples/i18n/it/features/somma.feature +10 -0
  77. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  78. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  79. data/examples/i18n/ja/Rakefile +6 -0
  80. data/examples/i18n/ja/features/addition.feature +16 -0
  81. data/examples/i18n/ja/features/division.feature +9 -0
  82. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
  83. data/examples/i18n/ja/lib/calculator.rb +14 -0
  84. data/examples/i18n/ko/Rakefile +6 -0
  85. data/examples/i18n/ko/features/addition.feature +16 -0
  86. data/examples/i18n/ko/features/division.feature +10 -0
  87. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  88. data/examples/i18n/ko/lib/calculator.rb +14 -0
  89. data/examples/i18n/lt/Rakefile +6 -0
  90. data/examples/i18n/lt/features/addition.feature +17 -0
  91. data/examples/i18n/lt/features/division.feature +9 -0
  92. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  93. data/examples/i18n/lt/lib/calculator.rb +14 -0
  94. data/examples/i18n/no/Rakefile +6 -0
  95. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  96. data/examples/i18n/no/features/summering.feature +18 -0
  97. data/examples/i18n/no/features/support/env.rb +6 -0
  98. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  99. data/examples/i18n/pt/Rakefile +6 -0
  100. data/examples/i18n/pt/features/adicao.feature +10 -0
  101. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +24 -0
  102. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  103. data/examples/i18n/ro/Rakefile +6 -0
  104. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
  105. data/examples/i18n/ro/features/suma.feature +10 -0
  106. data/examples/i18n/ro/lib/calculator.rb +11 -0
  107. data/examples/i18n/ru/Rakefile +6 -0
  108. data/examples/i18n/ru/features/addition.feature +10 -0
  109. data/examples/i18n/ru/features/consecutive_calculations.feature +16 -0
  110. data/examples/i18n/ru/features/division.feature +15 -0
  111. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  112. data/examples/i18n/ru/features/support/env.rb +6 -0
  113. data/examples/i18n/ru/features/support/world.rb +8 -0
  114. data/examples/i18n/ru/lib/calculator.rb +24 -0
  115. data/examples/i18n/se/Rakefile +6 -0
  116. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
  117. data/examples/i18n/se/features/summering.feature +17 -0
  118. data/examples/i18n/se/lib/kalkulator.rb +11 -0
  119. data/examples/i18n/sk/Rakefile +6 -0
  120. data/examples/i18n/sk/features/addition.feature +16 -0
  121. data/examples/i18n/sk/features/division.feature +9 -0
  122. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  123. data/examples/i18n/sk/lib/calculator.rb +14 -0
  124. data/examples/i18n/zh-CN/Rakefile +6 -0
  125. data/examples/i18n/zh-CN/features/addition.feature +17 -0
  126. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  127. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  128. data/examples/i18n/zh-TW/Rakefile +6 -0
  129. data/examples/i18n/zh-TW/features/addition.feature +16 -0
  130. data/examples/i18n/zh-TW/features/division.feature +10 -0
  131. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  132. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  133. data/examples/java/README.textile +22 -0
  134. data/examples/java/Rakefile +12 -0
  135. data/examples/java/features/hello.feature +11 -0
  136. data/examples/java/features/step_definitons/hello_steps.rb +25 -0
  137. data/examples/java/features/step_definitons/tree_steps.rb +14 -0
  138. data/examples/java/features/tree.feature +9 -0
  139. data/examples/java/src/cucumber/demo/Hello.java +16 -0
  140. data/examples/pure_java/README.textile +5 -0
  141. data/examples/selenium/Rakefile +6 -0
  142. data/examples/selenium/features/search.feature +9 -0
  143. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  144. data/examples/selenium/features/support/env.rb +19 -0
  145. data/examples/selenium_webrat/Rakefile +6 -0
  146. data/examples/selenium_webrat/features/search.feature +9 -0
  147. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  148. data/examples/selenium_webrat/features/support/env.rb +41 -0
  149. data/examples/self_test/README.textile +6 -0
  150. data/examples/self_test/Rakefile +6 -0
  151. data/examples/self_test/features/background/background_with_name.feature +7 -0
  152. data/examples/self_test/features/background/failing_background.feature +11 -0
  153. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  154. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  155. data/examples/self_test/features/background/passing_background.feature +10 -0
  156. data/examples/self_test/features/background/pending_background.feature +10 -0
  157. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  158. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  159. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  160. data/examples/self_test/features/failing_expectation.feature +4 -0
  161. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  162. data/examples/self_test/features/outline_sample.feature +15 -0
  163. data/examples/self_test/features/sample.feature +19 -0
  164. data/examples/self_test/features/step_definitions/sample_steps.rb +70 -0
  165. data/examples/self_test/features/support/env.rb +1 -0
  166. data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
  167. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  168. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  169. data/examples/sinatra/Rakefile +6 -0
  170. data/examples/sinatra/app.rb +14 -0
  171. data/examples/sinatra/features/add.feature +11 -0
  172. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  173. data/examples/sinatra/features/support/env.rb +20 -0
  174. data/examples/sinatra/views/add.erb +5 -0
  175. data/examples/sinatra/views/layout.erb +8 -0
  176. data/examples/test_unit/Rakefile +6 -0
  177. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  178. data/examples/test_unit/features/test_unit.feature +9 -0
  179. data/examples/tickets/Rakefile +16 -0
  180. data/examples/tickets/features/172.feature +28 -0
  181. data/examples/tickets/features/177/1.feature +29 -0
  182. data/examples/tickets/features/177/2.feature +21 -0
  183. data/examples/tickets/features/177/3.feature +18 -0
  184. data/examples/tickets/features/180.feature +7 -0
  185. data/examples/tickets/features/236.feature +13 -0
  186. data/examples/tickets/features/241.feature +13 -0
  187. data/examples/tickets/features/246.feature +4 -0
  188. data/examples/tickets/features/248.feature +11 -0
  189. data/examples/tickets/features/270/back.feature +14 -0
  190. data/examples/tickets/features/270/back.steps.rb +14 -0
  191. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  192. data/examples/tickets/features/lib/pantry.rb +20 -0
  193. data/examples/tickets/features/scenario_outline.feature +95 -0
  194. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  195. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  196. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  197. data/examples/tickets/features/step_definitons/tickets_steps.rb +73 -0
  198. data/examples/tickets/features/tickets.feature +28 -0
  199. data/examples/watir/README.textile +16 -0
  200. data/examples/watir/Rakefile +6 -0
  201. data/examples/watir/features/search.feature +9 -0
  202. data/examples/watir/features/step_definitons/search_steps.rb +24 -0
  203. data/examples/watir/features/support/env.rb +32 -0
  204. data/features/background.feature +238 -0
  205. data/features/cucumber_cli.feature +402 -0
  206. data/features/cucumber_cli_diff_disabled.feature +45 -0
  207. data/features/cucumber_cli_outlines.feature +84 -0
  208. data/features/custom_formatter.feature +11 -0
  209. data/features/report_called_undefined_steps.feature +34 -0
  210. data/features/snippet.feature +23 -0
  211. data/features/step_definitions/cucumber_steps.rb +34 -0
  212. data/features/step_definitions/extra_steps.rb +2 -0
  213. data/features/support/env.rb +8 -0
  214. data/features/usage.feature +113 -0
  215. data/gem_tasks/deployment.rake +11 -0
  216. data/gem_tasks/environment.rake +7 -0
  217. data/gem_tasks/features.rake +6 -0
  218. data/gem_tasks/fix_cr_lf.rake +10 -0
  219. data/gem_tasks/flog.rake +4 -0
  220. data/gem_tasks/gemspec.rake +10 -0
  221. data/gem_tasks/rspec.rake +38 -0
  222. data/gem_tasks/yard.rake +8 -0
  223. data/lib/autotest/cucumber.rb +6 -0
  224. data/lib/autotest/cucumber_mixin.rb +125 -0
  225. data/lib/autotest/cucumber_rails.rb +6 -0
  226. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  227. data/lib/autotest/cucumber_rspec.rb +6 -0
  228. data/lib/autotest/discover.rb +9 -0
  229. data/lib/cucumber/ast/background.rb +50 -0
  230. data/lib/cucumber/ast/comment.rb +26 -0
  231. data/lib/cucumber/ast/examples.rb +26 -0
  232. data/lib/cucumber/ast/feature.rb +52 -0
  233. data/lib/cucumber/ast/feature_element.rb +38 -0
  234. data/lib/cucumber/ast/features.rb +26 -0
  235. data/lib/cucumber/ast/outline_table.rb +73 -0
  236. data/lib/cucumber/ast/py_string.rb +53 -0
  237. data/lib/cucumber/ast/scenario.rb +57 -0
  238. data/lib/cucumber/ast/scenario_outline.rb +80 -0
  239. data/lib/cucumber/ast/step.rb +105 -0
  240. data/lib/cucumber/ast/step_collection.rb +62 -0
  241. data/lib/cucumber/ast/step_invocation.rb +117 -0
  242. data/lib/cucumber/ast/table.rb +326 -0
  243. data/lib/cucumber/ast/tags.rb +25 -0
  244. data/lib/cucumber/ast/visitor.rb +112 -0
  245. data/lib/cucumber/ast.rb +29 -0
  246. data/lib/cucumber/broadcaster.rb +13 -0
  247. data/lib/cucumber/cli/configuration.rb +361 -0
  248. data/lib/cucumber/cli/language_help_formatter.rb +59 -0
  249. data/lib/cucumber/cli/main.rb +105 -0
  250. data/lib/cucumber/core_ext/exception.rb +53 -0
  251. data/lib/cucumber/core_ext/instance_exec.rb +67 -0
  252. data/lib/cucumber/core_ext/proc.rb +33 -0
  253. data/lib/cucumber/core_ext/string.rb +48 -0
  254. data/lib/cucumber/formatter/ansicolor.rb +110 -0
  255. data/lib/cucumber/formatter/color_io.rb +23 -0
  256. data/lib/cucumber/formatter/console.rb +110 -0
  257. data/lib/cucumber/formatter/cucumber.css +55 -0
  258. data/lib/cucumber/formatter/cucumber.sass +49 -0
  259. data/lib/cucumber/formatter/html.rb +186 -0
  260. data/lib/cucumber/formatter/pretty.rb +185 -0
  261. data/lib/cucumber/formatter/profile.rb +77 -0
  262. data/lib/cucumber/formatter/progress.rb +60 -0
  263. data/lib/cucumber/formatter/rerun.rb +43 -0
  264. data/lib/cucumber/formatter/unicode.rb +35 -0
  265. data/lib/cucumber/formatter/usage.rb +85 -0
  266. data/lib/cucumber/formatter.rb +1 -0
  267. data/lib/cucumber/formatters/unicode.rb +2 -0
  268. data/lib/cucumber/languages.yml +455 -0
  269. data/lib/cucumber/parser/feature.rb +1590 -0
  270. data/lib/cucumber/parser/feature.tt +288 -0
  271. data/lib/cucumber/parser/i18n.tt +35 -0
  272. data/lib/cucumber/parser/table.rb +414 -0
  273. data/lib/cucumber/parser/table.tt +71 -0
  274. data/lib/cucumber/parser/treetop_ext.rb +114 -0
  275. data/lib/cucumber/parser.rb +38 -0
  276. data/lib/cucumber/platform.rb +17 -0
  277. data/lib/cucumber/rails/rspec.rb +8 -0
  278. data/lib/cucumber/rails/world.rb +74 -0
  279. data/lib/cucumber/rake/task.rb +138 -0
  280. data/lib/cucumber/step_definition.rb +113 -0
  281. data/lib/cucumber/step_match.rb +57 -0
  282. data/lib/cucumber/step_mother.rb +290 -0
  283. data/lib/cucumber/version.rb +10 -0
  284. data/lib/cucumber/world.rb +53 -0
  285. data/lib/cucumber.rb +63 -0
  286. data/rails_generators/cucumber/USAGE +11 -0
  287. data/rails_generators/cucumber/cucumber_generator.rb +50 -0
  288. data/rails_generators/cucumber/templates/cucumber +8 -0
  289. data/rails_generators/cucumber/templates/cucumber.rake +15 -0
  290. data/rails_generators/cucumber/templates/env.rb +19 -0
  291. data/rails_generators/cucumber/templates/paths.rb +29 -0
  292. data/rails_generators/cucumber/templates/webrat_steps.rb +123 -0
  293. data/rails_generators/feature/USAGE +12 -0
  294. data/rails_generators/feature/feature_generator.rb +40 -0
  295. data/rails_generators/feature/templates/feature.erb +31 -0
  296. data/rails_generators/feature/templates/steps.erb +20 -0
  297. data/spec/cucumber/ast/background_spec.rb +50 -0
  298. data/spec/cucumber/ast/feature_factory.rb +63 -0
  299. data/spec/cucumber/ast/feature_spec.rb +38 -0
  300. data/spec/cucumber/ast/py_string_spec.rb +47 -0
  301. data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
  302. data/spec/cucumber/ast/scenario_spec.rb +38 -0
  303. data/spec/cucumber/ast/step_collection_spec.rb +16 -0
  304. data/spec/cucumber/ast/step_spec.rb +66 -0
  305. data/spec/cucumber/ast/table_spec.rb +170 -0
  306. data/spec/cucumber/broadcaster_spec.rb +15 -0
  307. data/spec/cucumber/cli/configuration_spec.rb +287 -0
  308. data/spec/cucumber/cli/main_spec.rb +191 -0
  309. data/spec/cucumber/core_ext/proc_spec.rb +54 -0
  310. data/spec/cucumber/core_ext/string_spec.rb +42 -0
  311. data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
  312. data/spec/cucumber/formatter/color_io_spec.rb +26 -0
  313. data/spec/cucumber/formatter/html/cucumber.css +37 -0
  314. data/spec/cucumber/formatter/html/cucumber.js +13 -0
  315. data/spec/cucumber/formatter/html/index.html +45 -0
  316. data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
  317. data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
  318. data/spec/cucumber/formatters/profile_formatter_spec.rb +198 -0
  319. data/spec/cucumber/parser/feature_parser_spec.rb +284 -0
  320. data/spec/cucumber/parser/table_parser_spec.rb +48 -0
  321. data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
  322. data/spec/cucumber/rails/stubs/test_help.rb +1 -0
  323. data/spec/cucumber/rails/world_spec.rb +11 -0
  324. data/spec/cucumber/sell_cucumbers.feature +19 -0
  325. data/spec/cucumber/step_definition_spec.rb +101 -0
  326. data/spec/cucumber/step_mother_spec.rb +137 -0
  327. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  328. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  329. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  330. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  331. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  332. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  333. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  334. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  335. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  336. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  337. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  338. data/spec/cucumber/treetop_parser/with_comments.feature +10 -0
  339. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  340. data/spec/cucumber/world/pending_spec.rb +47 -0
  341. data/spec/spec.opts +2 -0
  342. data/spec/spec_helper.rb +12 -0
  343. metadata +458 -0
data/History.txt ADDED
@@ -0,0 +1,556 @@
1
+ == 0.3.0 (In Git)
2
+
3
+ This release has some minor changes to the APIs, but big enough that a new major release is in order.
4
+ The biggest change is the new semantics of the #World method. Previously you would call this method
5
+ several times, passing a Proc and extending the world object of the previous one with a Ruby module.
6
+ The problem was that there was no nice way to ensure the order in which these procs were called, which
7
+ led to some unexpected situations. In this release you can only register a single World proc. If you
8
+ want to extend a world with certain modules, you simply call the #World method with the module(s)
9
+ you wish to extend the World with. The Sinatra example illustrates how to do this. Also check out
10
+ the RDoc for Cucumber::StepMother#World.
11
+
12
+ The Visitor API (which is used for formatters) has also changed slightly. However, we have tried to
13
+ do this in a backwards compatible way, so if you have custom formatters for Cucumber 0.2 they should
14
+ still work.
15
+
16
+ === New features
17
+ * Added translation for Bulgarian (Krasimir Angelov)
18
+ * Updated translation for Polish (#273 Grzegorz Marszałek)
19
+ * Only a single World proc can be registered. World extension now happens by calling #World with ruby modules.
20
+ * Portuguese uses Funcionalidade in stead of Característica and accented words are aliased with unaccented ones (Alexandre da Silva and Felipe Coury).
21
+ * The usage formatter also prints unused step definitions (Aslak Hellesøy)
22
+ * Better exception if a World proc returns nil. (Aslak Hellesøy)
23
+ * Allow Step Definitions to use |*varargs|, but only on Ruby 1.9. (Aslak Hellesøy)
24
+ * Snippets for steps that use Step Tables or PyStrings include block param and object type hint comment (#247 Joseph Wilk)
25
+ * Support description string for Backgrounds (#271 Joseph Wilk)
26
+
27
+ === Bugfixes
28
+ * Fixed --format html leads to an error (#252 Aslak Hellesøy)
29
+ * Fixed Background runs twice (#255 Aslak Hellesøy)
30
+ * Fixed Background Transactions and :xx (#270 Aslak Hellesøy)
31
+ * Fixed Autospec failing with cucumber 0.2 (#254 Aslak Hellesøy)
32
+ * Sibling file detecting not working (#278 Aslak Hellesøy)
33
+
34
+ === Removed/changed features
35
+ * The visitor API has changed slightly:
36
+ ** #visit_step_name, #visit_multiline_arg and #visit_exception are no longer official API methods.
37
+ ** #visit_step_result replaces those 3 methods.
38
+ ** Table and PyString no longer hold status information. Each visitor subclass should store state in @state if needed.
39
+ ** #visit_py_string no longer takes a status argument.
40
+
41
+ == 0.2.3 2009-03-30
42
+
43
+ This release sports 4 updated languages, slightly better help with snippets if you "quote" arguments
44
+ in your steps. Windows/JRuby users can enjoy colours and you get some more sugar with Tables.
45
+
46
+ === New features
47
+ * Added new Then /^I should be on (.+)$/ do |page_name| step (Grant Hollingworth)
48
+ * Use skipped_param color for examples table header (#266 Eugene Naydanov)
49
+ * Added new Cucumber::Ast::Table#rows_hash method (Torbjørn Vatn)
50
+ * Windows/JRuby users can now enjoy colourful output (via http://github.com/aslakhellesoy/ansicolor) (#166 Aslak Hellesøy)
51
+ * Ambiguous step errors hint about --guess (unless --guess already on) (Aslak Hellesøy)
52
+ * Added translation for Slovak (Ahmed Al Hafoudh)
53
+ * Updated translation for Dutch (Bart Zonneveld)
54
+ * Updated translation for Italian (Alessandro Baroni)
55
+ * Updated translation for Japanese (KAKUTANI Shintaro)
56
+
57
+ === Bugfixes
58
+ * Fixed step name after step keyword without space (#265 Aslak Hellesøy)
59
+ * Backtrace is back in HTML reports (Aslak Hellesøy)
60
+
61
+ == 0.2.2 2009-03-25
62
+
63
+ This release includes some minor changes to make Cucumber work with pure Java. Cucumber
64
+ has already worked with Java for a while (using JRuby and step definitions in Ruby),
65
+ but now you can write step definitions in pure Java!
66
+
67
+ Check out the Cucumber Java project for more details:
68
+ http://github.com/aslakhellesoy/cucumber_java/tree/master
69
+
70
+ == 0.2.1 2009-03-25
71
+
72
+ This release fixes a few minor bugs and adds a couple of new features.
73
+
74
+ == Bugfixes
75
+ * Fixed Cucumber, and rails controller error handling (#49 Matt Patterson)
76
+ * HTML Formatter doesn't work correctly with scenario Outlines. (#260 Aslak Hellesøy)
77
+ * After blocks are run in reverse order of registration. (#113 Aslak Hellesøy)
78
+ * Snippets are showing 'Ands' (#249 Aslak Hellesøy)
79
+
80
+ === New features
81
+ * Snippets use a regexp and block arguments if the step name has "quoted" arguments. (Aslak Hellesøy)
82
+ * Cucumber::Ast::Feature#to_sexp includes the file name. (Aslak Hellesøy)
83
+ * support/env.rb is not loaded when --dry-run is specified. This is to increase performance. (Aslak Hellesøy)
84
+ * New usage formatter. This is the foundation for editor autocompletion and navigation between steps and step definitions. (#209 Aslak Hellesøy)
85
+
86
+ === Removed features
87
+ * -S/--step-definitions option introduced in 0.2.0 is removed. Use --format usage [--dry-run] [--no-color].
88
+
89
+ == 0.2.0 2009-03-18
90
+
91
+ This release sports a bunch of new and exciting features, as well a major rewrite of Cucumber's internals.
92
+ The rewrite was done to address technical debt and to have a code base that is easier to evolve and maintain.
93
+
94
+ There are some changes to the Gherkin language that breaks backwards compatible with the 0.1.x series.
95
+ Most importantly, "GivenScenario" and "More Examples" no longer exist. See the "Removed features" section
96
+ below for more details on how to use alternatives.
97
+
98
+ Since the grammar has changed, there are some new keywords. We have to rely on the community
99
+ to provide updated translations. This is much easier than before - just update languages.yml.
100
+ There is no static code generation anymore. To list all languages:
101
+
102
+ cucumber --lang help
103
+
104
+ And to list the keywords for a particular language:
105
+
106
+ cucumber --lang en-lol help
107
+
108
+ There are some really awesome new features in this release: Tagging, Autoformatting, automatic
109
+ aliasing of keywords in all languages, full Ruby 1.9 support and improved output
110
+ for multiline arguments are some of the highlights.
111
+
112
+ == Bugfixes
113
+ * New StepInvocation breaks console formatter for pending steps. (#241 Jacob Radford)
114
+ * Within Scenario Outlines when replacing with a nil in a step name use empty string instead. (#237 Joseph Wilk)
115
+ * Fixed bug with Scenario Outlines incorrectly replacing values in step tables with nil. (#237 Joseph Wilk)
116
+ * Within Scenario Outlines when replacing with a nil in multiline strings use empty string instead. (#238 Joseph Wilk)
117
+ * Re-structure the ast: Feature -> Background -> (Scenario|ScenarioOutline)*. Fixes bug with background being called outside transactions. (#181 Joseph Wilk)
118
+ * --strict always exits with status 1 (#230 Tim Cuthbertson)
119
+ * Fix error with nil values in tables raising an exception (#227 Joseph Wilk)
120
+ * Add support for using << in formatters to ensure the html formatter works (#210 Joseph Wilk)
121
+ * Explicitly require env.rb files first to avoid potential load order problems. (#213, Ben Mabey, Randy Harmon)
122
+ * Depend on polyglot version (0.2.4) to avoid masking require errors. (Aslak Hellesøy).
123
+ * -n option does not suppress the line info for a Scenario Outline (#175 Aslak Hellesøy)
124
+ * Errors with rspec-rails matchers in cucumber 0.1.99 (#173 David Chelimsky)
125
+ * Can't use an empty string as a table value in a scenario outline (#172 Aslak Hellesøy)
126
+ * Really skip skipped steps (#90 Aslak Hellesøy)
127
+ * No output for multi-line strings (#71 Aslak Hellesøy)
128
+ * Fix cucumber/formatter/unicode flaws on Windows (#145 Michael)
129
+ * Autotest-related Bugs: YAML missing (#136 Tobias Pape)
130
+ * Overeager "rescue LoadError" hides lots of errors (#137 Jonathan del Strother)
131
+ * Nested steps don't show mismatch (#116 Aslak Hellesøy)
132
+ * Pending steps in > steps called from steps (#65 Aslak Hellesøy)
133
+
134
+ === New features
135
+ * Australian translation (Josh Graham)
136
+ * Added World#announce(announcment) which lets you output text to the formatted output (#222 Rob Kaufmann)
137
+ * Added Table#transpose to to allow use of vertically aligned table keys (Torbjørn Vatn, Aslak Hellesøy)
138
+ * Added Table#map_headers to to allow use of more readable headers (Rob Holland)
139
+ * New -S/--step-definitions option. Useful (among other things) for tools that implement automcompletion. (#208 Aslak Hellesøy).
140
+ * The cucumber.rake file defines a dummy :features task if Cucumber is not installed (#225 Josh Nichols)
141
+ * Added Table#map_column! to ease casting of cell values into relevant types (#223 Rob Holland)
142
+ * New --no-diff option (#218 Bryan Ash)
143
+ * Rails generators supports testunit and rspec option, defaulting to rspec (#217 Josh Nichols)
144
+ * Sinatra Example (#204 Rob Holland)
145
+ * Keywords can be aliased in languages.yml. See English for an example (examples: Examples|Scenarios)
146
+ * Adding support for Background (#153 Joseph Wilk)
147
+ * Added Česky/Czech (Vojtech Salbaba)
148
+ * New --no-multiline option to reduce noise in output. Useful if lots of features are failing. (Aslak Hellesøy)
149
+ * Added ability to pass URIs to cucumber in addition to files and directories. Useful for troubleshooting! (Aslak Hellesøy)
150
+ * Groups of tabular scenarios (#57 Aslak Hellesøy)
151
+ * Tagging scenarios and features. Pick the ones to run with --tags (#54 Aslak Hellesøy)
152
+ * Make the current scenario available to the steps. (#44 Aslak Hellesøy)
153
+ * Step definition snippets contain a 'pending' call (#84 Aslak Hellesøy)
154
+ * Call multiline steps from other steps (#144 Aslak Hellesøy)
155
+ * Run cucumber with --autoformat DIR to reformat (pretty print) all of your feature files. (Aslak Hellesøy)
156
+ * New --strict option exits with an error code if there are undefined steps. (#52 Aslak Hellesøy)
157
+ * Given, When, Then methods (used in step definitions) are automatically aliased to current language. Use $KCODE='u' in env.rb if needed.
158
+ * Run cucumber --language help to see all supported languages. (Aslak Hellesøy)
159
+ * Run cucumber --language LANG help to see keywords for a given language. (Aslak Hellesøy)
160
+ * Multiline arguments (tables and """ strings) are printed in the output. (Aslak Hellesøy)
161
+ * It's no longer necessary to compile the Treetop grammar when adding a new language. Localised parser is generated at runtime. (Aslak Hellesøy)
162
+ * New --guess option tries to guess the best step definition match instead of raising Cucumber::Multiple. (Jake Howerton)
163
+
164
+ === Removed features
165
+ * "GivenScenario" is gone. Instead you can call Steps from Step Definitions, or use the new Background feature (#153)
166
+ * "More Examples" is gone. "Scenario" + "More Examples" is no longer supported. Use "Scenario Outline" + "Examples" instead.
167
+ * Pure Ruby features are no longer supported.
168
+ * Remove --color option in autotest. Can be added manually in cucumber.yml (#215 Jean-Michel Garnier)
169
+
170
+ == (0.16.4 aslakhellesoy-cucumber gem on GitHub)
171
+
172
+ Bugfix release.
173
+
174
+ IMPORTANT NOTE FOR RAILS USERS.
175
+ The template used to generate your features/support/env.rb has changed. You have to apply a minor change
176
+ manually for existing Rails projects when you upgrade to this version. Change this:
177
+
178
+ require 'webrat/rspec-rails'
179
+
180
+ to this:
181
+
182
+ require 'webrat/core/matchers'
183
+
184
+ === New features
185
+ * Finnish translation (Tero Tilus)
186
+ * Use Webrat's #contain matcher in generated "I should (not) see" step definitions (Bryan Helmkamp)
187
+
188
+ == Bugfixes
189
+ * Escaped quotes - \" - inside multiline strings will be unescaped.
190
+ * Flush output in HTML formatter since JRuby doesnt do it automatically (Diego Carrion)
191
+ * Better handling of ARGV (#169 David Chelimsky, Ben Mabey)
192
+ * Compatibility with ruby-debug (do ARGV.dup in bin/cucumber so it can restart ruby with same args) (Aslak Hellesøy)
193
+
194
+ == 0.1.16 2009-01-19
195
+
196
+ This is a small bugfix release. The most notable improvement is compatibility with Webrat 0.4. Rails/Webrat users should
197
+ upgrade both Cucumber and Webrat gems.
198
+
199
+ === New features
200
+ * Allow argument placeholders in step tables and multiline comments (#121 Joseph Wilk)
201
+ * Scenario Outline can be followed by several named Examples sections (#123 Aslak Hellesøy)
202
+ * 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)
203
+ * Added a /^When I go to (.+)$/ step definition to webrat_steps.rb and a simple page name to path mapping method (Bryan Helmkamp)
204
+
205
+ === Bugfixes
206
+ * 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é)
207
+
208
+ === Removed features
209
+
210
+ == 0.1.15 2009-01-08
211
+
212
+ Bugfix release
213
+
214
+ === New features
215
+ * 한국어! (Korean!) (John Hwang)
216
+
217
+ === Bugfixes
218
+ * --dry-run skips running before/after/steps (#147 Ian Dees)
219
+ * Fix a minor bug in the console formatter's summary (David Chelimsky)
220
+ * Better quoting of Scenario names in Autotest (Peter Jaros)
221
+ * Added some small workarounds for unicode handling on Windows (Aslak Hellesøy)
222
+
223
+ == 0.1.14 2009-01-04
224
+
225
+ This is the first release of Cucumber that runs on Ruby 1.9. There are still some encoding-related issues
226
+ with Arabic (ar), Japanese (ja) and Simplified Chinese (zh-CN). Patches are welcome. Other than that -
227
+ a couple of minor bug fixes and polishing.
228
+
229
+ === New features
230
+ * Pretty formatter shows number of scenarios (#139 Joseph Wilk)
231
+ * Rudimentary support for Ruby 1.9. Now it's ok to file Ruby 1.9-related bugs.
232
+
233
+ === Bugfixes
234
+ * Fixed "No such file or directory -- cucumber (LoadError)" bug with AutoTest (Aslak Hellesøy)
235
+ * Fixed `load_missing_constant': uninitialized constant Dispatcher error with Rails (Aslak Hellesøy)
236
+
237
+ === Removed features
238
+ * The #binary= method is gone from the Rake task. It will always point to the binary in the current gem. (Aslak Hellesøy)
239
+
240
+ == 0.1.13 2008-12-20
241
+
242
+ It's time for some new features again. Output is now much better since you can use diffing, tweak
243
+ the output colours and get the full --backtrace if you want. Managing your support/* files became
244
+ a little easier since they are now always loaded before the step definitions. Life became easier
245
+ for Windows users in Norway (and other countries using unicode in the features). Plus several other
246
+ bug fixes.
247
+
248
+ Enjoy!
249
+
250
+ === New features
251
+ * Console output is no longer bold, but regular. Step arguments are bold instead of blold+underlined. (Aslak Hellesøy)
252
+ * Console output can be configured with CUCUMBER_COLORS in your shell. (Aslak Hellesøy)
253
+ * Added new --backtrace option to show full backtrace (Aslak Hellesøy)
254
+ * Enable RSpec's diffing automatically if RSpec is loaded (Aslak Hellesøy)
255
+ * Files in support directories are loaded before any other file (i.e. step definitions.) (#120, Ben Mabey)
256
+ * The Rails features generator got some love and is now tested: http://github.com/aslakhellesoy/cucumber_rails (Aslak Hellesøy)
257
+ * --language is aliased to -l instead of -a (-l became available when --line was refactored) (Aslak Hellesøy)
258
+ * Scenario Outlines which through placeholders in the steps allow control of how scenario table values are used. (#57 Joseph Wilk)
259
+ * Scenario Outlines are now usable in pure ruby (Joseph Wilk)
260
+ * Add support for calling 'pending' from step definitions. (#112 Joseph Wilk)
261
+
262
+ === Bugfixes
263
+ * Make rails before filters work correctly (#122, #129 Guillermo Álvarez Fernández)
264
+ * Proper Unicode support for Windows command shells: Just require cucumber/formatter/unicode in env.rb (Aslak Hellesøy)
265
+ * Fixed disappearing "a" on Windows (#81 Aslak Hellesøy)
266
+ * Fixed a bug where row step outlines were loosing step tables. (#121 Joseph Wilk, Ben Mabey)
267
+ * The Cucumber Autotest plugin now launches JRuby if autotest is run with JRuby (Aslak Hellesøy)
268
+ * Provide helpful and non-confusing error message when specified profile is blank. (#118, Ben Mabey)
269
+ * Improve handling and error messages for malformed cucumber.yml files. (#117, Ben Mabey)
270
+ * document :x run option in command line help (#114, Aslak Hellesøy)
271
+ * Change 'visits' to 'visit' in features generator to comply with new Webrat API (Darius Roberts)
272
+
273
+ === Removed features
274
+
275
+ == 0.1.12 2008-12-04
276
+
277
+ This is the "getting serious with IronRuby release" - largely based on
278
+ "Patrick Gannon":http://www.patrickgannon.net/archive/2008/10/23/bdd-style-feature-tests-using-ironruby-and-rspeccucumber.aspx's
279
+ blog entry.
280
+
281
+ == New features
282
+ * Cucumber works with IronRuby/.NET - http://github.com/aslakhellesoy/cucumber/wikis/ironruby-and-net (Aslak Hellesøy)
283
+
284
+ == Bugfixes
285
+ * Fixed bug which was preventing coloring under Autotest (#111, Alan Larkin)
286
+
287
+ == Removed features
288
+ None
289
+
290
+ == 0.1.11 2008-12-02
291
+
292
+ Bugfix release with a couple of minor additional features to the command line options.
293
+
294
+ === New features
295
+ * Capture output from cucumber in Autotest (Alan Larkin)
296
+ * Update cucumber generator to work with latest Webrat (Bryan Helkamp)
297
+ * CUCUMBR LIKEZ 2 SPEEK WIF KATS. KTHXBAI (Aimee Daniells)
298
+ * Support for dynamically pluggable formatters (#99 Joseph Wilk)
299
+ * --verbose mode to see ruby files and feature files loaded by Cucumber (#106 Joseph Wilk)
300
+
301
+ === Bugfixes
302
+ * The jcode library is not loaded on JRuby/Rails. Workaround for http://tinyurl.com/55uu3u. (Aslak Hellesøy)
303
+ * Support including modules for class passed to --format (#109 Joseph Wilk)
304
+
305
+ === Removed features
306
+ * The cucumber gem no longer depends on the rspec gem. It must be downloaded manually if RSpec is used. (Jeff Rafter)
307
+
308
+ == 0.1.10 2008-11-25
309
+
310
+ This release mostly has smaller bugfixes. The most significant new feature is how
311
+ line numbers are specified. You can now run multiple features at specific lines numbers like this:
312
+
313
+ cucumber foo.feature:15 bar.feature:6:45:111
314
+
315
+ This will run foo.feature at line 15 and bar.feature at line 6, 45 and 111.
316
+
317
+ === New features
318
+ * Added example showing how to use Cucumber with Test::Unit + Matchy instead of RSpec (Aslak Hellesøy)
319
+ * Yield existing world object to World block (#87 Aslak Hellesøy)
320
+ * AUTOFEATURE=tRue works (case insensitive) (Aslak Hellesøy)
321
+ * Initial support for .NET via IronRuby. (Aslak Hellesøy)
322
+ * Lithuanian translation (sauliusgrigaitis)
323
+ * New webrat step defintions to wrap the new selects_time, selects_date, and selects_datetime methods. (Ben Mabey)
324
+ * Try to load webrat gem if it's not installed as a plugin (Aslak Hellesøy)
325
+ * Support example.feature:20 or example.feature:10:20:30 syntax for running features at specific line number(s). (#88 Joseph Wilk)
326
+
327
+ === Bugfixes
328
+ * Windows - all the 'a' characters in the output have gone on strike (#81 Luis Lavena, Joseph Wilk, Aslak Hellesøy)
329
+ * Raise a nice error when encountering step definition without block (#95 Aslak Hellesøy)
330
+ * Features written using Ruby where breaking due to missing a line number (#91 Joseph Wilk)
331
+ * Directly creating a Table meant the scenario table header was never set which was causing a formatter error (#91 Joseph Wilk)
332
+
333
+ === Removed features
334
+ * $KCODE='u' is no longer done automatically. Developers should do that explicitly when needed in step definitions or env.rb.
335
+ * Step definition without a block being treated as pending (#64 Joseph Wilk)
336
+ * The --line option has been removed. Use the new file.feature:line format instead.
337
+
338
+ == 0.1.9 2008-11-12
339
+
340
+ With this release Cucumber supports 19 (!) natural languages:
341
+
342
+ * Arabic
343
+ * Chinese Simplified
344
+ * Danish
345
+ * Dutch
346
+ * Estonian
347
+ * French
348
+ * German
349
+ * Italian
350
+ * Japanese
351
+ * Malay
352
+ * Norwegian
353
+ * Polish
354
+ * Portuguese
355
+ * Romanian
356
+ * Russian
357
+ * Spanish
358
+ * Swedish
359
+ * Texan
360
+ * Welsh
361
+
362
+ Thanks a lot to everyone who has contributed translations. If you don't see your language here, please
363
+ add it: http://github.com/aslakhellesoy/cucumber/wikis/spoken-languages
364
+
365
+ Main functional changes in this release is "Autotest":http://github.com/aslakhellesoy/cucumber/wikis/autotest-integration
366
+ support and how multiline strings work in feature files:
367
+
368
+ # In your .feature file
369
+ Then I should see
370
+ """
371
+ A string
372
+ that "indents"
373
+ and spans
374
+ several lines
375
+
376
+ """
377
+
378
+ # In your steps.rb file
379
+ Then 'I should see' do |text|
380
+ text.should == "A string\n that \"indents\"\nand spans\nseveral lines\n"
381
+ end
382
+
383
+ The triple quotes are used to define the start and end of a string, and it also defines what gets stripped away
384
+ in the inside string. If the triple quotes are indented 4 spaces, then the text within will have the 4 first
385
+ spaces removed too.
386
+
387
+ === New features
388
+ * Added --[no-]color option to force color on or off (Peter Jaros)
389
+ * Step definition without a block will be treated as pending (#64 Joseph Wilk)
390
+ * Added support for Welsh (improvements welcome) (Joseph Wilk)
391
+ * Added --quiet option to hide all development aid output when using Pretty formatter (#69 Joseph Wilk)
392
+ * Added --no-snippets option to hide snippets for pending steps when using Pretty formatter (#69 Joseph Wilk)
393
+ * Added error messages concerning cucumber.yml. (#70 Ben Mabey)
394
+ * Added Autotest support - work in progress... (Peter Jaros)
395
+ * Added new --exclude option (Bryan Helkamp)
396
+ * Added new --scenario option (Peter Jaros)
397
+ * Renamed common_webrat.rb to webrat_steps.rb (Ben Mabey, Aslak Hellesøy)
398
+ * Added new feature[:feature_path] task (Roman Gonzalez)
399
+ * Added support for Polish (Joseph Wilk)
400
+ * Support specifying multiple formatters and multiple outputs (#47 Joseph Wilk)
401
+ * Added support for Japanese. (Kakutani Shintaro)
402
+ * Added support for Texan (improvements welcome). (Aslak Hellesøy)
403
+
404
+ === Bugfixes
405
+ * Pending step snippets should escape special Regexp characters (#82 Joseph Wilk)
406
+ * Scenario without a body shouldn't show up as complete (#63 Josh Knowles)
407
+ * Fixed bug where utf-8 strings where breaking comment alighments. (#79 Joseph Wilk)
408
+ * Fixed next_column_index not resetting after large tables (#60, Barry Mitchelson)
409
+ * The HTML formatter was rendering everything twice. Cannot invoke visit_feature on formatters in executor (#72 Joseph Wilk)
410
+ * Row Scenarios need to support pending? in order for the Profile formatter to work (Joseph Wilk)
411
+ * Snippets are not shown for steps which already have a step definition (#65 Joseph Wilk)
412
+ * Prevent feature/scenario/pending step comments from containing '//' when running features by specifying a directory with a trailing '/' (Joseph Wilk)
413
+ * Scenario tables need spacing after them (#59 Joseph Wilk)
414
+ * Support running scenario table rows when using --line argument (#55 Joseph Wilk)
415
+ * Don't load cucumber.yml unless it exists (Aslak Hellesøy)
416
+ * 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)
417
+
418
+ === Removed features
419
+
420
+
421
+ == 0.1.8 2008-10-18
422
+
423
+ This release extends the support for tables. PLEASE NOTE THAT TABLES ARE STILL EXPERIMENTAL.
424
+ In previous releases it has been possible to use tables to define "more examples" of a scenario i
425
+ n a FIT-style column fixture kind of way. Now you can also use tables as arguments to steps.
426
+
427
+ Tables used to define more examples after a scenario must now be prefixed. In English it looks like this:
428
+
429
+ Feature: Addition
430
+ In order to avoid silly mistakes
431
+ As a math idiot
432
+ I want to be told the sum of two numbers
433
+
434
+ Scenario: Add two numbers
435
+ Given I have entered 50 into the calculator
436
+ And I have entered 70 into the calculator
437
+ When I press add
438
+ Then the result should be 120 on the screen
439
+
440
+ More Examples:
441
+ | input_1 | input_2 | button | output |
442
+ | 20 | 30 | add | 50 |
443
+ | 2 | 5 | add | 7 |
444
+ | 0 | 40 | add | 40 |
445
+
446
+ Languages that are not updated yet will have to use "More Examples" until we get the translations.
447
+
448
+ Tables can also be used as arguments to individual steps. In fact, steps now support a single argument
449
+ that can span several lines. This can be a table or a string.
450
+
451
+ Example:
452
+
453
+ Given the following people exist:
454
+ | name | email | phone |
455
+ | Aslak | aslak@email.com | 123 |
456
+ | Joe | joe@email.com | 234 |
457
+ | Bryan | bryan@email.org | 456 |
458
+ When I search for email.com
459
+ Then I should see:
460
+ | name | email | phone |
461
+ | Aslak | aslak@email.com | 123 |
462
+ | Joe | joe@email.com | 234 |
463
+ And I should see:
464
+ "Some text
465
+ on several lines"
466
+
467
+ The step definitions for such multiline steps must define an extra block argument for the argument:
468
+
469
+ Given /the following people exist:/ do |people_table|
470
+ # people_table is of type Cucumber::Model::Table
471
+ # See RDoc for more info
472
+ end
473
+
474
+ Then /I should see:/ do |string|
475
+ # string is a plain old ruby String with leading spaces on each line removed
476
+ end
477
+
478
+ === New features
479
+ * Added profile formatter. (#35, Joseph Wilk)
480
+ * Added support for Chinese Simplified. (Liming Lian)
481
+ * Added support for Dutch. (Sjoerd Tieleman)
482
+ * Multiline steps are now supported. (#4, Aslak Hellesøy)
483
+ * Tables used to define more examples for a scenario must be prefixed "More Examples" (see languages.yml for other languages)
484
+ * Show the file and line number for scenarios as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
485
+ * Show the file for the feature as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
486
+ * Show the feature file and line for pending steps as a comment when displaying with the pretty formatter. (#40, Joseph Wilk)
487
+
488
+ === Bugfixes
489
+ * Fixed speling errors in Spanish (Daniel Cadenas)
490
+ * ActionMailer delivery_method should not be set to test (#41, Luke Melia)
491
+ * Reverse incorrectly ordered args in webrat select step (#43, David Chelimsky)
492
+ * Support comments above the first scenario (#31, Aslak Hellesøy)
493
+ * Fixed the HTML Formatter to use actual values for FIT table headers (#30, Joseph Wilk)
494
+
495
+ === Removed features
496
+ * Removed the /^I go to (.*)$/ step from common_webrat.rb - it's not language agnostic and provides little value.
497
+
498
+ === New features
499
+ * Added new --out option to make it easier to specify output from Rake and cucumber.yml
500
+
501
+ == 0.1.7 2008-10-05
502
+
503
+ This release fixes a few bugs and adds some new features. The most notable features are:
504
+
505
+ === Calling steps from steps
506
+
507
+ Step definitions are a little bit closer to having regular method semantics.
508
+ You define them, but now you can also call them from other steps. Here is an
509
+ example:
510
+
511
+ Given /I am logged in as an (.*) named (.*)$/ do |role, name|
512
+ Given "I am registered as #{role}, #{name}, secret"
513
+ When "I log in with #{name}, secret"
514
+ end
515
+
516
+ Given /I am registered as (.*), (.*), (.*)/ do |role, name, password|
517
+ # (Code removed for brevity)
518
+ end
519
+
520
+ When /I log in with (.*), (.*)/ do |name, password|
521
+ # (Code removed for brevity)
522
+ end
523
+
524
+ This means that steps can be reused in other steps. The GivenScenario feature achieves a similar
525
+ effect (on the scenario level), but this feature is something we're not very happy with, mostly
526
+ because it's not parameterisable. Calling steps from steps is.
527
+
528
+ GivenScenario will still be working several releases, but the plan is to remove it completely in
529
+ the 0.3.0 release.
530
+
531
+ === Seeing where a step is defined
532
+
533
+ Prior to this release it could be hard to find out where the ruby step definition matching
534
+ a plain text step is defined. Not anymore! Cucumber will now output this:
535
+
536
+ Scenario: Regular numbers
537
+ Given I have entered 3 into the calculator # features/steps/calculator_steps.rb:12
538
+ And I have entered 2 into the calculator # features/steps/calculator_steps.rb:12
539
+ When I press divide # features/steps/calculator_steps.rb:16
540
+ Then the result should be 1.5 on the screen # features/steps/calculator_steps.rb:20
541
+ And the result class should be Float # features/steps/calculator_steps.rb:24
542
+
543
+ === Bugfixes
544
+ * Fixed a bug in the command line args being lost when using --profile (#27, Joseph Wilk)
545
+ * Fixed a bug in Webrat selects (Tim Glen)
546
+ * Fixed parsing of DOS line endings (#2, #28, Aslak Hellesøy)
547
+
548
+ === New features
549
+ * Steps can be called from other steps (#3, Bryan Helmkamp, Aslak Hellesøy)
550
+ * Added But keyword to all languages (#21, Aslak Hellesøy)
551
+ * Added --no-source option to display step definition location next to step text (#26, Joseph Wilk, Aslak Hellesøy)
552
+ * Added more Webrat steps (#25, Tim Glen)
553
+
554
+ == 0.1.6 2008-10-01
555
+
556
+ First gem release!
data/License.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008,2009 Aslak Hellesøy
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.