kbaum-cucumber 0.4.5.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (511) hide show
  1. data/.gitattributes +1 -0
  2. data/.gitignore +18 -0
  3. data/Caliper.yml +5 -0
  4. data/History.txt +1292 -0
  5. data/LICENSE +22 -0
  6. data/README.rdoc +26 -0
  7. data/Rakefile +63 -0
  8. data/VERSION.yml +5 -0
  9. data/bin/cucumber +16 -0
  10. data/cucumber.gemspec +741 -0
  11. data/cucumber.yml +10 -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 +6 -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 +8 -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 +38 -0
  73. data/examples/i18n/fr/lib/calculatrice.rb +10 -0
  74. data/examples/i18n/he/Rakefile +6 -0
  75. data/examples/i18n/he/features/addition.feature +17 -0
  76. data/examples/i18n/he/features/division.feature +10 -0
  77. data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
  78. data/examples/i18n/he/lib/calculator.rb +14 -0
  79. data/examples/i18n/hu/.gitignore +1 -0
  80. data/examples/i18n/hu/Rakefile +6 -0
  81. data/examples/i18n/hu/features/addition.feature +17 -0
  82. data/examples/i18n/hu/features/division.feature +10 -0
  83. data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
  84. data/examples/i18n/hu/lib/calculator.rb +14 -0
  85. data/examples/i18n/id/.gitignore +1 -0
  86. data/examples/i18n/id/Rakefile +6 -0
  87. data/examples/i18n/id/features/addition.feature +17 -0
  88. data/examples/i18n/id/features/division.feature +10 -0
  89. data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
  90. data/examples/i18n/id/lib/calculator.rb +14 -0
  91. data/examples/i18n/it/Rakefile +6 -0
  92. data/examples/i18n/it/features/somma.feature +11 -0
  93. data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
  94. data/examples/i18n/it/lib/calcolatrice.rb +11 -0
  95. data/examples/i18n/ja/.gitignore +1 -0
  96. data/examples/i18n/ja/Rakefile +6 -0
  97. data/examples/i18n/ja/features/addition.feature +17 -0
  98. data/examples/i18n/ja/features/division.feature +10 -0
  99. data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
  100. data/examples/i18n/ja/lib/calculator.rb +14 -0
  101. data/examples/i18n/ko/.gitignore +1 -0
  102. data/examples/i18n/ko/Rakefile +6 -0
  103. data/examples/i18n/ko/features/addition.feature +17 -0
  104. data/examples/i18n/ko/features/division.feature +11 -0
  105. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
  106. data/examples/i18n/ko/lib/calculator.rb +14 -0
  107. data/examples/i18n/lt/.gitignore +1 -0
  108. data/examples/i18n/lt/Rakefile +6 -0
  109. data/examples/i18n/lt/features/addition.feature +17 -0
  110. data/examples/i18n/lt/features/division.feature +10 -0
  111. data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
  112. data/examples/i18n/lt/lib/calculator.rb +14 -0
  113. data/examples/i18n/lv/Rakefile +6 -0
  114. data/examples/i18n/lv/features/addition.feature +17 -0
  115. data/examples/i18n/lv/features/division.feature +10 -0
  116. data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
  117. data/examples/i18n/lv/lib/calculator.rb +14 -0
  118. data/examples/i18n/no/Rakefile +6 -0
  119. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
  120. data/examples/i18n/no/features/summering.feature +19 -0
  121. data/examples/i18n/no/features/support/env.rb +6 -0
  122. data/examples/i18n/no/lib/kalkulator.rb +11 -0
  123. data/examples/i18n/pl/.gitignore +1 -0
  124. data/examples/i18n/pl/Rakefile +6 -0
  125. data/examples/i18n/pl/features/addition.feature +17 -0
  126. data/examples/i18n/pl/features/division.feature +10 -0
  127. data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
  128. data/examples/i18n/pl/features/support/env.rb +6 -0
  129. data/examples/i18n/pl/lib/calculator.rb +14 -0
  130. data/examples/i18n/pt/Rakefile +6 -0
  131. data/examples/i18n/pt/features/adicao.feature +11 -0
  132. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
  133. data/examples/i18n/pt/features/support/env.rb +6 -0
  134. data/examples/i18n/pt/lib/calculadora.rb +10 -0
  135. data/examples/i18n/ro/Rakefile +6 -0
  136. data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
  137. data/examples/i18n/ro/features/suma.feature +11 -0
  138. data/examples/i18n/ro/lib/calculator.rb +11 -0
  139. data/examples/i18n/ru/Rakefile +6 -0
  140. data/examples/i18n/ru/features/addition.feature +11 -0
  141. data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
  142. data/examples/i18n/ru/features/division.feature +16 -0
  143. data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
  144. data/examples/i18n/ru/features/support/env.rb +6 -0
  145. data/examples/i18n/ru/features/support/world.rb +8 -0
  146. data/examples/i18n/ru/lib/calculator.rb +24 -0
  147. data/examples/i18n/se/Rakefile +6 -0
  148. data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
  149. data/examples/i18n/se/features/summering.feature +18 -0
  150. data/examples/i18n/se/lib/kalkulator.rb +11 -0
  151. data/examples/i18n/sk/.gitignore +1 -0
  152. data/examples/i18n/sk/Rakefile +6 -0
  153. data/examples/i18n/sk/features/addition.feature +17 -0
  154. data/examples/i18n/sk/features/division.feature +10 -0
  155. data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
  156. data/examples/i18n/sk/lib/calculator.rb +14 -0
  157. data/examples/i18n/sr-latn/Rakefile +6 -0
  158. data/examples/i18n/sr-latn/features/sabiranje.feature +18 -0
  159. data/examples/i18n/sr-latn/features/step_definitons/calculator_steps.rb +24 -0
  160. data/examples/i18n/sr-latn/lib/calculator.rb +12 -0
  161. data/examples/i18n/sr/Rakefile +6 -0
  162. data/examples/i18n/sr/features/sabiranje.feature +18 -0
  163. data/examples/i18n/sr/features/step_definitons/calculator_steps.rb +24 -0
  164. data/examples/i18n/sr/lib/calculator.rb +12 -0
  165. data/examples/i18n/tr/.gitignore +1 -0
  166. data/examples/i18n/tr/Rakefile +6 -0
  167. data/examples/i18n/tr/features/bolme.feature +10 -0
  168. data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +24 -0
  169. data/examples/i18n/tr/features/toplama.feature +18 -0
  170. data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
  171. data/examples/i18n/uz/Rakefile +6 -0
  172. data/examples/i18n/uz/features/addition.feature +10 -0
  173. data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
  174. data/examples/i18n/uz/features/division.feature +17 -0
  175. data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
  176. data/examples/i18n/uz/features/support/env.rb +6 -0
  177. data/examples/i18n/uz/features/support/world.rb +8 -0
  178. data/examples/i18n/uz/lib/calculator.rb +24 -0
  179. data/examples/i18n/zh-CN/Rakefile +4 -0
  180. data/examples/i18n/zh-CN/features/addition.feature +18 -0
  181. data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
  182. data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
  183. data/examples/i18n/zh-TW/.gitignore +1 -0
  184. data/examples/i18n/zh-TW/Rakefile +4 -0
  185. data/examples/i18n/zh-TW/features/addition.feature +17 -0
  186. data/examples/i18n/zh-TW/features/division.feature +11 -0
  187. data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
  188. data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
  189. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  190. data/examples/junit/features/pending.feature +5 -0
  191. data/examples/junit/features/step_definitions/steps.rb +11 -0
  192. data/examples/python/features/fibonacci.feature +19 -0
  193. data/examples/python/features/step_definitions/fib_steps.py +11 -0
  194. data/examples/python/lib/.gitignore +1 -0
  195. data/examples/python/lib/fib.py +7 -0
  196. data/examples/ramaze/README.textile +7 -0
  197. data/examples/ramaze/Rakefile +6 -0
  198. data/examples/ramaze/app.rb +21 -0
  199. data/examples/ramaze/features/add.feature +11 -0
  200. data/examples/ramaze/features/step_definitions/add_steps.rb +15 -0
  201. data/examples/ramaze/features/support/env.rb +32 -0
  202. data/examples/ramaze/layout/default.html.erb +8 -0
  203. data/examples/ramaze/view/index.html.erb +5 -0
  204. data/examples/ruby2python/features/fibonacci.feature +19 -0
  205. data/examples/ruby2python/features/step_definitions/fib_steps.rb +7 -0
  206. data/examples/ruby2python/features/support/env.rb +21 -0
  207. data/examples/ruby2python/lib/.gitignore +1 -0
  208. data/examples/ruby2python/lib/fib.py +7 -0
  209. data/examples/selenium/Rakefile +6 -0
  210. data/examples/selenium/features/search.feature +9 -0
  211. data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
  212. data/examples/selenium/features/support/env.rb +19 -0
  213. data/examples/selenium_webrat/Rakefile +6 -0
  214. data/examples/selenium_webrat/config.ru +0 -0
  215. data/examples/selenium_webrat/features/search.feature +9 -0
  216. data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
  217. data/examples/selenium_webrat/features/support/env.rb +45 -0
  218. data/examples/self_test/.gitignore +1 -0
  219. data/examples/self_test/README.textile +6 -0
  220. data/examples/self_test/Rakefile +6 -0
  221. data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
  222. data/examples/self_test/features/background/background_with_name.feature +7 -0
  223. data/examples/self_test/features/background/failing_background.feature +12 -0
  224. data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
  225. data/examples/self_test/features/background/multiline_args_background.feature +32 -0
  226. data/examples/self_test/features/background/passing_background.feature +10 -0
  227. data/examples/self_test/features/background/pending_background.feature +10 -0
  228. data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
  229. data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
  230. data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
  231. data/examples/self_test/features/failing_expectation.feature +4 -0
  232. data/examples/self_test/features/lots_of_undefined.feature +8 -0
  233. data/examples/self_test/features/multiline_name.feature +27 -0
  234. data/examples/self_test/features/outline_sample.feature +15 -0
  235. data/examples/self_test/features/sample.feature +21 -0
  236. data/examples/self_test/features/search_sample.feature +32 -0
  237. data/examples/self_test/features/step_definitions/sample_steps.rb +81 -0
  238. data/examples/self_test/features/support/env.rb +18 -0
  239. data/examples/self_test/features/tags_sample.feature +17 -0
  240. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  241. data/examples/self_test/features/undefined_multiline_args.feature +12 -0
  242. data/examples/self_test/list-of-features.txt +1 -0
  243. data/examples/sinatra/README.textile +13 -0
  244. data/examples/sinatra/Rakefile +6 -0
  245. data/examples/sinatra/app.rb +14 -0
  246. data/examples/sinatra/features/add.feature +11 -0
  247. data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
  248. data/examples/sinatra/features/support/env.rb +30 -0
  249. data/examples/sinatra/views/add.erb +5 -0
  250. data/examples/sinatra/views/layout.erb +8 -0
  251. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  252. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  253. data/examples/tcl/README.textile +11 -0
  254. data/examples/tcl/Rakefile +6 -0
  255. data/examples/tcl/features/fibonnacci.feature +17 -0
  256. data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
  257. data/examples/tcl/features/support/env.rb +6 -0
  258. data/examples/tcl/src/fib.tcl +3 -0
  259. data/examples/test_unit/Rakefile +6 -0
  260. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
  261. data/examples/test_unit/features/test_unit.feature +9 -0
  262. data/examples/tickets/Rakefile +20 -0
  263. data/examples/tickets/features.html +138 -0
  264. data/examples/tickets/features/172.feature +28 -0
  265. data/examples/tickets/features/177/1.feature +28 -0
  266. data/examples/tickets/features/177/2.feature +20 -0
  267. data/examples/tickets/features/177/3.feature +18 -0
  268. data/examples/tickets/features/180.feature +7 -0
  269. data/examples/tickets/features/229/tagged_hooks.feature +8 -0
  270. data/examples/tickets/features/229/tagged_hooks.rb +14 -0
  271. data/examples/tickets/features/236.feature +13 -0
  272. data/examples/tickets/features/241.feature +12 -0
  273. data/examples/tickets/features/246.feature +4 -0
  274. data/examples/tickets/features/248.feature +11 -0
  275. data/examples/tickets/features/270/back.feature +14 -0
  276. data/examples/tickets/features/270/back.steps.rb +14 -0
  277. data/examples/tickets/features/272/hooks.feature +26 -0
  278. data/examples/tickets/features/272/hooks_steps.rb +53 -0
  279. data/examples/tickets/features/279/py_string_indent.feature +25 -0
  280. data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
  281. data/examples/tickets/features/279/wrong.feature_ +11 -0
  282. data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
  283. data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
  284. data/examples/tickets/features/306/only_background.feature +4 -0
  285. data/examples/tickets/features/lib/eatting_machine.rb +18 -0
  286. data/examples/tickets/features/lib/pantry.rb +20 -0
  287. data/examples/tickets/features/scenario_outline.feature +95 -0
  288. data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
  289. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  290. data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
  291. data/examples/tickets/features/step_definitons/tickets_steps.rb +81 -0
  292. data/examples/tickets/features/table_diffing.feature +13 -0
  293. data/examples/tickets/features/tickets.feature +28 -0
  294. data/examples/watir/README.textile +16 -0
  295. data/examples/watir/Rakefile +10 -0
  296. data/examples/watir/features/search.feature +12 -0
  297. data/examples/watir/features/step_definitions/search_steps.rb +26 -0
  298. data/examples/watir/features/support/env.rb +32 -0
  299. data/examples/watir/features/support/screenshots.rb +44 -0
  300. data/examples/webrat/features/search.feature +12 -0
  301. data/examples/webrat/features/step_definitions/kvasir_steps.rb +14 -0
  302. data/examples/webrat/features/support/env.rb +17 -0
  303. data/features/announce.feature +122 -0
  304. data/features/background.feature +308 -0
  305. data/features/bug_371.feature +32 -0
  306. data/features/bug_464.feature +16 -0
  307. data/features/bug_475.feature +43 -0
  308. data/features/call_many_steps.feature +124 -0
  309. data/features/cucumber_cli.feature +654 -0
  310. data/features/cucumber_cli_diff_disabled.feature +52 -0
  311. data/features/cucumber_cli_outlines.feature +105 -0
  312. data/features/custom_formatter.feature +47 -0
  313. data/features/default_snippets.feature +42 -0
  314. data/features/drb_server_integration.feature +174 -0
  315. data/features/exception_in_after_block.feature +100 -0
  316. data/features/exception_in_after_step_block.feature +102 -0
  317. data/features/exception_in_before_block.feature +78 -0
  318. data/features/exclude_files.feature +20 -0
  319. data/features/expand.feature +60 -0
  320. data/features/html_formatter.feature +7 -0
  321. data/features/html_formatter/a.html +400 -0
  322. data/features/junit_formatter.feature +88 -0
  323. data/features/language_from_header.feature +30 -0
  324. data/features/language_help.feature +68 -0
  325. data/features/listener_debugger_formatter.feature +41 -0
  326. data/features/multiline_names.feature +43 -0
  327. data/features/negative_tagged_hooks.feature +61 -0
  328. data/features/post_configuration_hook.feature +37 -0
  329. data/features/profiles.feature +112 -0
  330. data/features/rake_task.feature +152 -0
  331. data/features/report_called_undefined_steps.feature +34 -0
  332. data/features/simplest.feature +11 -0
  333. data/features/snippet.feature +22 -0
  334. data/features/step_definitions/cucumber_steps.rb +154 -0
  335. data/features/step_definitions/extra_steps.rb +2 -0
  336. data/features/step_definitions/simplest_steps.rb +3 -0
  337. data/features/step_definitions/wire_steps.rb +14 -0
  338. data/features/support/env.rb +141 -0
  339. data/features/support/env.rb.simplest +7 -0
  340. data/features/support/fake_wire_server.rb +63 -0
  341. data/features/table_diffing.feature +45 -0
  342. data/features/table_mapping.feature +35 -0
  343. data/features/tag_logic.feature +258 -0
  344. data/features/transform.feature +245 -0
  345. data/features/unicode_table.feature +35 -0
  346. data/features/usage_and_stepdefs_formatter.feature +169 -0
  347. data/features/wire_protocol.feature +177 -0
  348. data/features/work_in_progress.feature +156 -0
  349. data/gem_tasks/contributors.rake +13 -0
  350. data/gem_tasks/environment.rake +7 -0
  351. data/gem_tasks/features.rake +18 -0
  352. data/gem_tasks/fix_cr_lf.rake +10 -0
  353. data/gem_tasks/flog.rake +4 -0
  354. data/gem_tasks/rspec.rake +15 -0
  355. data/gem_tasks/sass.rake +4 -0
  356. data/gem_tasks/sdoc.rake +12 -0
  357. data/lib/README.rdoc +12 -0
  358. data/lib/autotest/cucumber.rb +6 -0
  359. data/lib/autotest/cucumber_mixin.rb +131 -0
  360. data/lib/autotest/cucumber_rails.rb +6 -0
  361. data/lib/autotest/cucumber_rails_rspec.rb +6 -0
  362. data/lib/autotest/cucumber_rspec.rb +6 -0
  363. data/lib/autotest/discover.rb +9 -0
  364. data/lib/cucumber.rb +15 -0
  365. data/lib/cucumber/ast.rb +30 -0
  366. data/lib/cucumber/ast/background.rb +75 -0
  367. data/lib/cucumber/ast/comment.rb +31 -0
  368. data/lib/cucumber/ast/examples.rb +36 -0
  369. data/lib/cucumber/ast/feature.rb +85 -0
  370. data/lib/cucumber/ast/feature_element.rb +68 -0
  371. data/lib/cucumber/ast/features.rb +40 -0
  372. data/lib/cucumber/ast/outline_table.rb +166 -0
  373. data/lib/cucumber/ast/py_string.rb +59 -0
  374. data/lib/cucumber/ast/scenario.rb +111 -0
  375. data/lib/cucumber/ast/scenario_outline.rb +100 -0
  376. data/lib/cucumber/ast/step.rb +121 -0
  377. data/lib/cucumber/ast/step_collection.rb +76 -0
  378. data/lib/cucumber/ast/step_invocation.rb +190 -0
  379. data/lib/cucumber/ast/table.rb +655 -0
  380. data/lib/cucumber/ast/tags.rb +122 -0
  381. data/lib/cucumber/ast/tree_walker.rb +201 -0
  382. data/lib/cucumber/ast/visitor.rb +11 -0
  383. data/lib/cucumber/broadcaster.rb +13 -0
  384. data/lib/cucumber/cli/configuration.rb +180 -0
  385. data/lib/cucumber/cli/drb_client.rb +32 -0
  386. data/lib/cucumber/cli/language_help_formatter.rb +72 -0
  387. data/lib/cucumber/cli/main.rb +121 -0
  388. data/lib/cucumber/cli/options.rb +404 -0
  389. data/lib/cucumber/cli/profile_loader.rb +82 -0
  390. data/lib/cucumber/constantize.rb +34 -0
  391. data/lib/cucumber/core_ext/instance_exec.rb +98 -0
  392. data/lib/cucumber/core_ext/proc.rb +30 -0
  393. data/lib/cucumber/core_ext/string.rb +16 -0
  394. data/lib/cucumber/feature_file.rb +54 -0
  395. data/lib/cucumber/filter.rb +41 -0
  396. data/lib/cucumber/formatter/ansicolor.rb +157 -0
  397. data/lib/cucumber/formatter/color_io.rb +23 -0
  398. data/lib/cucumber/formatter/console.rb +205 -0
  399. data/lib/cucumber/formatter/cucumber.css +248 -0
  400. data/lib/cucumber/formatter/cucumber.sass +241 -0
  401. data/lib/cucumber/formatter/debug.rb +33 -0
  402. data/lib/cucumber/formatter/duration.rb +13 -0
  403. data/lib/cucumber/formatter/html.rb +545 -0
  404. data/lib/cucumber/formatter/io.rb +33 -0
  405. data/lib/cucumber/formatter/junit.rb +149 -0
  406. data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
  407. data/lib/cucumber/formatter/pdf.rb +234 -0
  408. data/lib/cucumber/formatter/pretty.rb +237 -0
  409. data/lib/cucumber/formatter/progress.rb +75 -0
  410. data/lib/cucumber/formatter/rerun.rb +50 -0
  411. data/lib/cucumber/formatter/stepdefs.rb +14 -0
  412. data/lib/cucumber/formatter/steps.rb +49 -0
  413. data/lib/cucumber/formatter/summary.rb +35 -0
  414. data/lib/cucumber/formatter/tag_cloud.rb +34 -0
  415. data/lib/cucumber/formatter/unicode.rb +35 -0
  416. data/lib/cucumber/formatter/usage.rb +127 -0
  417. data/lib/cucumber/language_support.rb +30 -0
  418. data/lib/cucumber/language_support/language_methods.rb +110 -0
  419. data/lib/cucumber/languages.yml +535 -0
  420. data/lib/cucumber/parser.rb +8 -0
  421. data/lib/cucumber/parser/common.rb +170 -0
  422. data/lib/cucumber/parser/common.tt +21 -0
  423. data/lib/cucumber/parser/feature.rb +1783 -0
  424. data/lib/cucumber/parser/feature.tt +317 -0
  425. data/lib/cucumber/parser/i18n.tt +34 -0
  426. data/lib/cucumber/parser/natural_language.rb +108 -0
  427. data/lib/cucumber/parser/py_string.rb +276 -0
  428. data/lib/cucumber/parser/py_string.tt +45 -0
  429. data/lib/cucumber/parser/table.rb +305 -0
  430. data/lib/cucumber/parser/table.tt +60 -0
  431. data/lib/cucumber/parser/treetop_ext.rb +53 -0
  432. data/lib/cucumber/platform.rb +31 -0
  433. data/lib/cucumber/py_support/py_dsl.py +10 -0
  434. data/lib/cucumber/py_support/py_language.py +10 -0
  435. data/lib/cucumber/py_support/py_language.rb +81 -0
  436. data/lib/cucumber/rake/task.rb +166 -0
  437. data/lib/cucumber/rb_support/rb_dsl.rb +102 -0
  438. data/lib/cucumber/rb_support/rb_hook.rb +19 -0
  439. data/lib/cucumber/rb_support/rb_language.rb +179 -0
  440. data/lib/cucumber/rb_support/rb_step_definition.rb +75 -0
  441. data/lib/cucumber/rb_support/rb_transform.rb +37 -0
  442. data/lib/cucumber/rb_support/rb_world.rb +81 -0
  443. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
  444. data/lib/cucumber/rspec_neuter.rb +23 -0
  445. data/lib/cucumber/step_argument.rb +9 -0
  446. data/lib/cucumber/step_definition_light.rb +20 -0
  447. data/lib/cucumber/step_match.rb +107 -0
  448. data/lib/cucumber/step_mother.rb +350 -0
  449. data/lib/cucumber/webrat/element_locator.rb +93 -0
  450. data/lib/cucumber/webrat/table_locator.rb +1 -0
  451. data/lib/cucumber/wire_support/connection.rb +42 -0
  452. data/lib/cucumber/wire_support/request_handler.rb +19 -0
  453. data/lib/cucumber/wire_support/wire_exception.rb +10 -0
  454. data/lib/cucumber/wire_support/wire_language.rb +52 -0
  455. data/lib/cucumber/wire_support/wire_packet.rb +34 -0
  456. data/lib/cucumber/wire_support/wire_protocol.rb +64 -0
  457. data/lib/cucumber/wire_support/wire_step_definition.rb +21 -0
  458. data/spec/cucumber/ast/background_spec.rb +54 -0
  459. data/spec/cucumber/ast/feature_element_spec.rb +41 -0
  460. data/spec/cucumber/ast/feature_factory.rb +62 -0
  461. data/spec/cucumber/ast/feature_spec.rb +44 -0
  462. data/spec/cucumber/ast/outline_table_spec.rb +21 -0
  463. data/spec/cucumber/ast/py_string_spec.rb +51 -0
  464. data/spec/cucumber/ast/scenario_outline_spec.rb +73 -0
  465. data/spec/cucumber/ast/scenario_spec.rb +45 -0
  466. data/spec/cucumber/ast/step_collection_spec.rb +17 -0
  467. data/spec/cucumber/ast/step_spec.rb +66 -0
  468. data/spec/cucumber/ast/table_spec.rb +422 -0
  469. data/spec/cucumber/ast/tags_spec.rb +29 -0
  470. data/spec/cucumber/ast/tree_walker_spec.rb +11 -0
  471. data/spec/cucumber/broadcaster_spec.rb +15 -0
  472. data/spec/cucumber/cli/configuration_spec.rb +396 -0
  473. data/spec/cucumber/cli/drb_client_spec.rb +77 -0
  474. data/spec/cucumber/cli/main_spec.rb +172 -0
  475. data/spec/cucumber/cli/options_spec.rb +335 -0
  476. data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
  477. data/spec/cucumber/core_ext/proc_spec.rb +68 -0
  478. data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
  479. data/spec/cucumber/formatter/color_io_spec.rb +27 -0
  480. data/spec/cucumber/formatter/console_spec.rb +20 -0
  481. data/spec/cucumber/formatter/duration_spec.rb +22 -0
  482. data/spec/cucumber/formatter/html_spec.rb +213 -0
  483. data/spec/cucumber/formatter/junit_spec.rb +110 -0
  484. data/spec/cucumber/formatter/progress_spec.rb +38 -0
  485. data/spec/cucumber/formatter/spec_helper.rb +50 -0
  486. data/spec/cucumber/parser/feature_parser_spec.rb +400 -0
  487. data/spec/cucumber/parser/table_parser_spec.rb +52 -0
  488. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +132 -0
  489. data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
  490. data/spec/cucumber/sell_cucumbers.feature +19 -0
  491. data/spec/cucumber/step_match_spec.rb +56 -0
  492. data/spec/cucumber/step_mother_spec.rb +270 -0
  493. data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
  494. data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
  495. data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
  496. data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
  497. data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
  498. data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
  499. data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
  500. data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
  501. data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
  502. data/spec/cucumber/treetop_parser/spaces.feature +12 -0
  503. data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
  504. data/spec/cucumber/treetop_parser/with_comments.feature +23 -0
  505. data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
  506. data/spec/cucumber/wire_support/wire_language_spec.rb +47 -0
  507. data/spec/cucumber/wire_support/wire_packet_spec.rb +26 -0
  508. data/spec/cucumber/world/pending_spec.rb +46 -0
  509. data/spec/spec.opts +4 -0
  510. data/spec/spec_helper.rb +18 -0
  511. metadata +813 -0
@@ -0,0 +1,102 @@
1
+ Feature: Exception in AfterStep Block
2
+ In order to use custom assertions at the end of each step
3
+ As a developer
4
+ I want exceptions raised in AfterStep blocks to be handled gracefully and reported by the formatters
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/step_definitions/steps.rb" with:
9
+ """
10
+ Given /^this step does something naughty$/ do
11
+ @naughty = true
12
+ end
13
+
14
+ Given /^this step works$/ do
15
+ end
16
+ """
17
+ And a file named "features/support/env.rb" with:
18
+ """
19
+ class NaughtyStepException < Exception; end
20
+ AfterStep do
21
+ if @naughty
22
+ raise NaughtyStepException.new("This step has been very very naughty")
23
+ end
24
+ end
25
+ """
26
+
27
+ Scenario: Handle Exception in standard scenario step and carry on
28
+ Given a file named "features/naughty_step_in_scenario.feature" with:
29
+ """
30
+ Feature: Sample
31
+
32
+ Scenario: Naughty Step
33
+ Given this step does something naughty
34
+
35
+ Scenario: Success
36
+ Given this step works
37
+ """
38
+ When I run cucumber features
39
+ Then it should fail with
40
+ """
41
+ Feature: Sample
42
+
43
+ Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
44
+ Given this step does something naughty # features/step_definitions/steps.rb:1
45
+ This step has been very very naughty (NaughtyStepException)
46
+ ./features/support/env.rb:4:in `AfterStep'
47
+ features/naughty_step_in_scenario.feature:4:in `Given this step does something naughty'
48
+
49
+ Scenario: Success # features/naughty_step_in_scenario.feature:6
50
+ Given this step works # features/step_definitions/steps.rb:5
51
+
52
+ Failing Scenarios:
53
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
54
+
55
+ 2 scenarios (1 failed, 1 passed)
56
+ 2 steps (1 failed, 1 passed)
57
+
58
+ """
59
+
60
+ Scenario: Handle Exception in scenario outline table row and carry on
61
+ Given a file named "features/naughty_step_in_scenario_outline.feature" with:
62
+ """
63
+ Feature: Sample
64
+
65
+ Scenario Outline: Naughty Step
66
+ Given this step <Might Work>
67
+
68
+ Examples:
69
+ | Might Work |
70
+ | works |
71
+ | does something naughty |
72
+ | works |
73
+
74
+ Scenario: Success
75
+ Given this step works
76
+
77
+ """
78
+ When I run cucumber features
79
+ Then it should fail with
80
+ """
81
+ Feature: Sample
82
+
83
+ Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
84
+ Given this step <Might Work> # features/step_definitions/steps.rb:5
85
+
86
+ Examples:
87
+ | Might Work |
88
+ | works |
89
+ | does something naughty |
90
+ This step has been very very naughty (NaughtyStepException)
91
+ ./features/support/env.rb:4:in `AfterStep'
92
+ features/naughty_step_in_scenario_outline.feature:4:in `Given this step <Might Work>'
93
+ | works |
94
+
95
+ Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
96
+ Given this step works # features/step_definitions/steps.rb:5
97
+
98
+ 4 scenarios (1 failed, 3 passed)
99
+ 4 steps (1 failed, 3 passed)
100
+
101
+ """
102
+
@@ -0,0 +1,78 @@
1
+ Feature: Exception in Before Block
2
+ In order to know with confidence that my before blocks have run OK
3
+ As a developer
4
+ I want exceptions raised in Before blocks to be handled gracefully and reported by the formatters
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/step_definitions/steps.rb" with:
9
+ """
10
+ Given /^this step works$/ do
11
+ end
12
+ """
13
+ And a file named "features/support/env.rb" with:
14
+ """
15
+ class SomeSetupException < Exception; end
16
+ class BadStepException < Exception; end
17
+ Before do
18
+ raise SomeSetupException.new("I cannot even start this scenario")
19
+ end
20
+ """
21
+
22
+ Scenario: Handle Exception in standard scenario step and carry on
23
+ Given a file named "features/naughty_step_in_scenario.feature" with:
24
+ """
25
+ Feature: Sample
26
+
27
+ Scenario: Run a good step
28
+ Given this step works
29
+ """
30
+ When I run cucumber features
31
+ Then it should fail with
32
+ """
33
+ Feature: Sample
34
+
35
+ Scenario: Run a good step # features/naughty_step_in_scenario.feature:3
36
+ I cannot even start this scenario (SomeSetupException)
37
+ ./features/support/env.rb:4:in `Before'
38
+ Given this step works # features/step_definitions/steps.rb:1
39
+
40
+ Failing Scenarios:
41
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Run a good step
42
+
43
+ 1 scenario (1 failed)
44
+ 1 step (1 skipped)
45
+
46
+ """
47
+
48
+ Scenario: Handle Exception in Before hook for Scenario with Background
49
+ Given a file named "features/naughty_step_in_before.feature" with:
50
+ """
51
+ Feature: Sample
52
+
53
+ Background:
54
+ Given this step works
55
+
56
+ Scenario: Run a good step
57
+ Given this step works
58
+ """
59
+ When I run cucumber features
60
+ Then it should fail with
61
+ """
62
+ Feature: Sample
63
+
64
+ Background: # features/naughty_step_in_before.feature:3
65
+ I cannot even start this scenario (SomeSetupException)
66
+ ./features/support/env.rb:4:in `Before'
67
+ Given this step works # features/step_definitions/steps.rb:1
68
+
69
+ Scenario: Run a good step # features/naughty_step_in_before.feature:6
70
+ Given this step works # features/step_definitions/steps.rb:1
71
+
72
+ Failing Scenarios:
73
+ cucumber features/naughty_step_in_before.feature:6 # Scenario: Run a good step
74
+
75
+ 1 scenario (1 failed)
76
+ 2 steps (1 skipped, 1 passed)
77
+
78
+ """
@@ -0,0 +1,20 @@
1
+ Feature: Exclude ruby and feature files from runs
2
+ Developers should be able to easily exclude files from cucumber runs
3
+ This is a nice feature to have in conjunction with profiles, so you can exclude
4
+ certain environment files from certain runs.
5
+
6
+ Scenario: exclude ruby files
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/support/dont_require_me.rb"
9
+ And a file named "features/step_definitions/fooz.rb"
10
+ And a file named "features/step_definitions/foof.rb"
11
+ And a file named "features/step_definitions/foot.rb"
12
+ And a file named "features/support/require_me.rb"
13
+
14
+ When I run cucumber features -q --verbose --exclude features/support/dont --exclude foo[zf]
15
+
16
+ Then "features/support/require_me.rb" should be required
17
+ And "features/step_definitions/foot.rb" should be required
18
+ And "features/support/dont_require_me.rb" should not be required
19
+ And "features/step_definitions/foof.rb" should not be required
20
+ And "features/step_definitions/fooz.rb" should not be required
@@ -0,0 +1,60 @@
1
+ Feature: --expand option
2
+ In order to make it easier to writhe certain editor plugins
3
+ and also for some people to understand scenarios, Cucumber
4
+ should expand examples in outlines.
5
+
6
+ Background:
7
+ Given a standard Cucumber project directory structure
8
+ And a file named "features/expand_me.feature" with:
9
+ """
10
+ Feature: submit guess
11
+
12
+ Background:
13
+ Given the players' names:
14
+ | maker | breaker |
15
+ | Moriarty | Holmes |
16
+
17
+ Scenario Outline: submit guess
18
+ Given the secret code is <code>
19
+ When I guess <guess>
20
+ Then the mark should be <mark>
21
+
22
+ Examples: all colors correct
23
+ | code | guess | mark |
24
+ | r g y c | r g y c | bbbb |
25
+ | r g y c | r g c y | bbww |
26
+ """
27
+
28
+ Scenario: Expand the outline
29
+ When I run cucumber -i -q --expand features/expand_me.feature
30
+ Then STDERR should be empty
31
+ And it should pass with
32
+ """
33
+ Feature: submit guess
34
+
35
+ Background:
36
+ Given the players' names:
37
+ | maker | breaker |
38
+ | Moriarty | Holmes |
39
+
40
+ Scenario Outline: submit guess
41
+ Given the secret code is <code>
42
+ When I guess <guess>
43
+ Then the mark should be <mark>
44
+
45
+ Examples: all colors correct
46
+
47
+ Scenario: | r g y c | r g y c | bbbb |
48
+ Given the secret code is r g y c
49
+ When I guess r g y c
50
+ Then the mark should be bbbb
51
+
52
+ Scenario: | r g y c | r g c y | bbww |
53
+ Given the secret code is r g y c
54
+ When I guess r g c y
55
+ Then the mark should be bbww
56
+
57
+ 2 scenarios (2 undefined)
58
+ 8 steps (8 undefined)
59
+
60
+ """
@@ -0,0 +1,7 @@
1
+ Feature: HTML formatter
2
+ In order to make it easy to read Cucumber results
3
+ there should be a HTML formatter with an awesome CSS
4
+
5
+ Scenario: Everything in examples/self_test
6
+ When I run cucumber -q --format html --out tmp/a.html features
7
+ Then "examples/self_test/tmp/a.html" should have the same contents as "features/html_formatter/a.html"
@@ -0,0 +1,400 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns ="http://www.w3.org/1999/xhtml"><head><meta content="text/html;charset=utf-8"/><title>Cucumber</title><style type="text/css">/* cucumber.css is generated from cucumber.sass */
2
+ /* Regenerate with rake sass */
3
+ body {
4
+ font-size: 0px;
5
+ color: #FFFFFF;
6
+ margin: 0px;
7
+ padding: 0px;
8
+ }
9
+
10
+ .cucumber, td, th {
11
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
12
+ background: white;
13
+ color: #000000;
14
+ }
15
+ .cucumber #cucumber-header, td #cucumber-header, th #cucumber-header {
16
+ background: #65C400;
17
+ color: #FFFFFF;
18
+ height: 5em;
19
+ }
20
+ .cucumber .scenario h3, td .scenario h3, th .scenario h3 {
21
+ font-size: 11px;
22
+ padding: 3px;
23
+ margin: 0;
24
+ background: #65C400;
25
+ color: #FFFFFF;
26
+ font-weight: bold;
27
+ }
28
+ .cucumber h1, td h1, th h1 {
29
+ margin: 0px 10px 0px 10px;
30
+ padding: 10px;
31
+ font-family: "Lucida Grande", Helvetica, sans-serif;
32
+ font-size: 1.8em;
33
+ position: absolute;
34
+ }
35
+ .cucumber h4, td h4, th h4 {
36
+ margin-bottom: 2px;
37
+ }
38
+ .cucumber div.feature, td div.feature, th div.feature {
39
+ padding: 2px;
40
+ margin: 0px 10px 5px 10px;
41
+ }
42
+ .cucumber div.examples, td div.examples, th div.examples {
43
+ padding: 0em 0em 0em 1em;
44
+ }
45
+ .cucumber .stats, td .stats, th .stats {
46
+ margin: 2em;
47
+ }
48
+ .cucumber .summary ul.features li, td .summary ul.features li, th .summary ul.features li {
49
+ display: inline;
50
+ }
51
+ .cucumber .tag, td .tag, th .tag {
52
+ font-weight: bold;
53
+ color: #246AC1;
54
+ }
55
+ .cucumber .backtrace, td .backtrace, th .backtrace {
56
+ margin-top: 0;
57
+ margin-bottom: 0;
58
+ margin-left: 1em;
59
+ color: #000000;
60
+ }
61
+ .cucumber a, td a, th a {
62
+ text-decoration: none;
63
+ color: #BE5C00;
64
+ }
65
+ .cucumber a:hover, td a:hover, th a:hover {
66
+ text-decoration: underline;
67
+ }
68
+ .cucumber a:visited, td a:visited, th a:visited {
69
+ font-weight: normal;
70
+ }
71
+ .cucumber a div.examples, td a div.examples, th a div.examples {
72
+ margin: 5px 0px 5px 15px;
73
+ color: #000000;
74
+ }
75
+ .cucumber .outline table, td .outline table, th .outline table {
76
+ margin: 0px 0px 5px 10px;
77
+ }
78
+ .cucumber table, td table, th table {
79
+ border-collapse: collapse;
80
+ }
81
+ .cucumber table td, td table td, th table td {
82
+ padding: 3px 3px 3px 5px;
83
+ }
84
+ .cucumber table td.failed, .cucumber table td.passed, .cucumber table td.skipped, .cucumber table td.pending, .cucumber table td.undefined, td table td.failed, td table td.passed, td table td.skipped, td table td.pending, td table td.undefined, th table td.failed, th table td.passed, th table td.skipped, th table td.pending, th table td.undefined {
85
+ padding-left: 18px;
86
+ padding-right: 10px;
87
+ }
88
+ .cucumber table td.failed, td table td.failed, th table td.failed {
89
+ border-left: 5px solid #c20000;
90
+ border-bottom: 1px solid #c20000;
91
+ background: #fffbd3;
92
+ color: #c20000;
93
+ }
94
+ .cucumber table td.passed, td table td.passed, th table td.passed {
95
+ border-left: 5px solid #65c400;
96
+ border-bottom: 1px solid #65c400;
97
+ background: #dbffb4;
98
+ color: #3d7700;
99
+ }
100
+ .cucumber table td.skipped, td table td.skipped, th table td.skipped {
101
+ border-left: 5px solid aqua;
102
+ border-bottom: 1px solid aqua;
103
+ background: #e0ffff;
104
+ color: #001111;
105
+ }
106
+ .cucumber table td.pending, td table td.pending, th table td.pending {
107
+ border-left: 5px solid #faf834;
108
+ border-bottom: 1px solid #faf834;
109
+ background: #fcfb98;
110
+ color: #131313;
111
+ }
112
+ .cucumber table td.undefined, td table td.undefined, th table td.undefined {
113
+ border-left: 5px solid #faf834;
114
+ border-bottom: 1px solid #faf834;
115
+ background: #fcfb98;
116
+ color: #131313;
117
+ }
118
+ .cucumber ol, td ol, th ol {
119
+ list-style: none;
120
+ margin: 0px;
121
+ padding: 0px;
122
+ }
123
+ .cucumber ol li.step, td ol li.step, th ol li.step {
124
+ padding: 3px 3px 3px 18px;
125
+ margin: 5px 0px 5px 5px;
126
+ }
127
+ .cucumber ol li, td ol li, th ol li {
128
+ margin: 0em 0em 0em 1em;
129
+ padding: 0em 0em 0em 0.2em;
130
+ }
131
+ .cucumber ol li span.param, td ol li span.param, th ol li span.param {
132
+ font-weight: bold;
133
+ }
134
+ .cucumber ol li.failed, td ol li.failed, th ol li.failed {
135
+ border-left: 5px solid #c20000;
136
+ border-bottom: 1px solid #c20000;
137
+ background: #fffbd3;
138
+ color: #c20000;
139
+ }
140
+ .cucumber ol li.passed, td ol li.passed, th ol li.passed {
141
+ border-left: 5px solid #65c400;
142
+ border-bottom: 1px solid #65c400;
143
+ background: #dbffb4;
144
+ color: #3d7700;
145
+ }
146
+ .cucumber ol li.skipped, td ol li.skipped, th ol li.skipped {
147
+ border-left: 5px solid aqua;
148
+ border-bottom: 1px solid aqua;
149
+ background: #e0ffff;
150
+ color: #001111;
151
+ }
152
+ .cucumber ol li.pending, td ol li.pending, th ol li.pending {
153
+ border-left: 5px solid #faf834;
154
+ border-bottom: 1px solid #faf834;
155
+ background: #fcfb98;
156
+ color: #131313;
157
+ }
158
+ .cucumber ol li.undefined, td ol li.undefined, th ol li.undefined {
159
+ border-left: 5px solid #faf834;
160
+ border-bottom: 1px solid #faf834;
161
+ background: #fcfb98;
162
+ color: #131313;
163
+ }
164
+ .cucumber #summary, td #summary, th #summary {
165
+ margin: 0px;
166
+ padding: 5px 10px;
167
+ text-align: right;
168
+ top: 0px;
169
+ right: 0px;
170
+ float: right;
171
+ }
172
+ .cucumber #summary p, td #summary p, th #summary p {
173
+ margin: 0 0 0 2px;
174
+ }
175
+ .cucumber #summary #totals, td #summary #totals, th #summary #totals {
176
+ font-size: 1.2em;
177
+ }
178
+
179
+ .ruby {
180
+ font-size: 12px;
181
+ font-family: monospace;
182
+ color: white;
183
+ background: black;
184
+ padding: 0.1em 0 0.2em 0;
185
+ }
186
+ .ruby .keyword {
187
+ color: #FF6600;
188
+ }
189
+ .ruby .constant {
190
+ color: #339999;
191
+ }
192
+ .ruby .attribute {
193
+ color: white;
194
+ }
195
+ .ruby .global {
196
+ color: white;
197
+ }
198
+ .ruby .module {
199
+ color: white;
200
+ }
201
+ .ruby .class {
202
+ color: white;
203
+ }
204
+ .ruby .string {
205
+ color: #66FF00;
206
+ }
207
+ .ruby .ident {
208
+ color: white;
209
+ }
210
+ .ruby .method {
211
+ color: #FFCC00;
212
+ }
213
+ .ruby .number {
214
+ color: white;
215
+ }
216
+ .ruby .char {
217
+ color: white;
218
+ }
219
+ .ruby .comment {
220
+ color: #9933CC;
221
+ }
222
+ .ruby .symbol {
223
+ color: white;
224
+ }
225
+ .ruby .regex {
226
+ color: #44B4CC;
227
+ }
228
+ .ruby .punct {
229
+ color: white;
230
+ }
231
+ .ruby .escape {
232
+ color: white;
233
+ }
234
+ .ruby .interp {
235
+ color: white;
236
+ }
237
+ .ruby .expr {
238
+ color: white;
239
+ }
240
+ .ruby .offending {
241
+ background: #333333;
242
+ }
243
+ .ruby .linenum {
244
+ width: 75px;
245
+ padding: 0.1em 1em 0.2em 0;
246
+ color: #000000;
247
+ background: #FFFBD3;
248
+ }
249
+ </style><script type="text/javascript"> function moveProgressBar(percentDone) {
250
+ document.getElementById("cucumber-header").style.width = percentDone +"%";
251
+ }
252
+ function makeRed(element_id) {
253
+ document.getElementById(element_id).style.background = '#C40D0D';
254
+ document.getElementById(element_id).style.color = '#FFFFFF';
255
+ }
256
+
257
+ function makeYellow(element_id) {
258
+ document.getElementById(element_id).style.background = '#FAF834';
259
+ document.getElementById(element_id).style.color = '#000000';
260
+ }
261
+ </script></head><body><!-- Step count 169--><div class="cucumber"><div id="cucumber-header"><div id="label"><h1>Cucumber Features</h1></div><div id="summary"><p id="totals"></p><p id="duration"></p></div></div><div class="feature"><span class="tag">@background_tagged_before_on_outline</span><h2><span class="val">Feature: Background tagged Before on Outline</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li id='features_background_background_tagged_before_on_outline_feature_5' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('0.5');</script></ol></div><div class='scenario outline'><h3 id="scenario_1"><span class="keyword">Scenario Outline:</span> <span class="val">passing background</span></h3><ol><li id='features_background_background_tagged_before_on_outline_feature_8' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '&lt;count&gt;' cukes</span></div></li> <script type="text/javascript">moveProgressBar('1.1');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_11'><th class="step skipped_param" id="row_11_0"><div><span class="step param">count</span></div></th></tr> <script type="text/javascript">moveProgressBar('1.7');</script><tr class='step' id='row_12'><td class="step passed" id="row_12_0"><div><span class="step param">888</span></div></td></tr> <script type="text/javascript">moveProgressBar('2.3');</script></table></div></div></div><div class="feature"><h2><span class="val">Feature: background with name</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val">I'm a background and I'm ok</span></h3><ol><li id='features_background_background_with_name_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('2.9');</script></ol></div><div class='scenario'><h3 id="scenario_2"><span class="keyword">Scenario:</span> <span class="val">example</span></h3><ol> <script type="text/javascript">moveProgressBar('3.5');</script><li id='features_background_background_with_name_feature_7' class='step passed'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('4.1');</script></ol></div></div><div class="feature"><span class="tag">@after_file</span><h2><span class="val">Feature: Failing background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><script>makeRed('cucumber-header');makeRed('scenario_2');</script><li id='features_background_failing_background_feature_5' class='step failed'><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
262
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
263
+ features/background/failing_background.feature:5:in `Given failing without a table':in `flunker'
264
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
265
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
266
+ features/background/failing_background.feature:5:in `Given failing without a table':in `/^failing without a table$/'
267
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
268
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
269
+ features/background/failing_background.feature:5:in `Given failing without a table':in `Given failing without a table'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
270
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
271
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre></li> <script type="text/javascript">moveProgressBar('4.7');</script><li id='features_background_failing_background_feature_6' class='step skipped'><div><span class="keyword">And</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('5.3');</script></ol></div><div class='scenario'><h3 id="scenario_3"><span class="keyword">Scenario:</span> <span class="val">failing background</span></h3><ol><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
272
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
273
+ features/background/failing_background.feature:5:in `Given failing without a table':in `flunker'
274
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
275
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
276
+ features/background/failing_background.feature:5:in `Given failing without a table':in `/^failing without a table$/'
277
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
278
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
279
+ features/background/failing_background.feature:5:in `Given failing without a table':in `Given failing without a table'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
280
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
281
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre> <script type="text/javascript">moveProgressBar('5.9');</script> <script type="text/javascript">moveProgressBar('6.5');</script><li id='features_background_failing_background_feature_9' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('7.1');</script></ol></div><div class='scenario'><h3 id="scenario_4"><span class="keyword">Scenario:</span> <span class="val">another failing background</span></h3><ol> <script type="text/javascript">moveProgressBar('7.6');</script> <script type="text/javascript">moveProgressBar('8.2');</script><li id='features_background_failing_background_feature_12' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('8.8');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing background after previously successful background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li id='features_background_failing_background_after_success_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('9.4');</script><li id='features_background_failing_background_after_success_feature_5' class='step passed'><div><span class="keyword">And</span> <span class="step val">'<span class="param">10</span>' global cukes</span></div></li> <script type="text/javascript">moveProgressBar('10.0');</script></ol></div><div class='scenario'><h3 id="scenario_5"><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol> <script type="text/javascript">moveProgressBar('10.6');</script> <script type="text/javascript">moveProgressBar('11.2');</script><li id='features_background_failing_background_after_success_feature_8' class='step passed'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' global cukes</span></div></li> <script type="text/javascript">moveProgressBar('11.8');</script></ol></div><div class='scenario'><h3 id="scenario_6"><span class="keyword">Scenario:</span> <span class="val">failing background</span></h3><ol> <script type="text/javascript">moveProgressBar('12.4');</script><script>makeRed('scenario_6');</script><li id='features_background_failing_background_after_success_feature_5' class='step failed'><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
282
+ ./features/step_definitions/sample_steps.rb:37:in `/^'(.+)' global cukes$/'
283
+ features/background/failing_background_after_success.feature:5:in `And '10' global cukes':in `flunker'
284
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
285
+ ./features/step_definitions/sample_steps.rb:37:in `/^'(.+)' global cukes$/'
286
+ features/background/failing_background_after_success.feature:5:in `And '10' global cukes':in `/^'(.+)' global cukes$/'
287
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
288
+ ./features/step_definitions/sample_steps.rb:37:in `/^'(.+)' global cukes$/'
289
+ features/background/failing_background_after_success.feature:5:in `And '10' global cukes':in `And '10' global cukes'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
290
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
291
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre></li> <script type="text/javascript">moveProgressBar('13.0');</script><li id='features_background_failing_background_after_success_feature_11' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' global cukes</span></div></li> <script type="text/javascript">moveProgressBar('13.6');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background with multiline args</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li id='features_background_multiline_args_background_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">table</span></div><table><tr class='step' id='row_5'><td class="step" id="row_5_0"><div><span class="step param">a</span></div></td><td class="step" id="row_5_1"><div><span class="step param">b</span></div></td></tr> <script type="text/javascript">moveProgressBar('14.7');</script><tr class='step' id='row_6'><td class="step" id="row_6_0"><div><span class="step param">c</span></div></td><td class="step" id="row_6_1"><div><span class="step param">d</span></div></td></tr> <script type="text/javascript">moveProgressBar('15.3');</script></table></li> <script type="text/javascript">moveProgressBar('15.3');</script><li id='features_background_multiline_args_background_feature_7' class='step passed'><div><span class="keyword">And</span> <span class="step val">multiline string</span></div><pre class="val"> I'm a cucumber and I'm okay. &#x000A; I sleep all night and I test all day</pre></li> <script type="text/javascript">moveProgressBar('15.9');</script></ol></div><div class='scenario'><h3 id="scenario_7"><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol> <script type="text/javascript">moveProgressBar('16.5');</script> <script type="text/javascript">moveProgressBar('17.1');</script><li id='features_background_multiline_args_background_feature_14' class='step passed'><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr class='step' id='row_15'><td class="step" id="row_15_0"><div><span class="step param">a</span></div></td><td class="step" id="row_15_1"><div><span class="step param">b</span></div></td></tr> <script type="text/javascript">moveProgressBar('18.3');</script><tr class='step' id='row_16'><td class="step" id="row_16_0"><div><span class="step param">c</span></div></td><td class="step" id="row_16_1"><div><span class="step param">d</span></div></td></tr> <script type="text/javascript">moveProgressBar('18.9');</script></table></li> <script type="text/javascript">moveProgressBar('18.9');</script><li id='features_background_multiline_args_background_feature_17' class='step passed'><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay. &#x000A; I sleep all night and I test all day</pre></li> <script type="text/javascript">moveProgressBar('19.5');</script></ol></div><div class='scenario'><h3 id="scenario_8"><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol> <script type="text/javascript">moveProgressBar('20.1');</script> <script type="text/javascript">moveProgressBar('20.7');</script><li id='features_background_multiline_args_background_feature_24' class='step passed'><div><span class="keyword">Then</span> <span class="step val">the table should be</span></div><table><tr class='step' id='row_25'><td class="step" id="row_25_0"><div><span class="step param">a</span></div></td><td class="step" id="row_25_1"><div><span class="step param">b</span></div></td></tr> <script type="text/javascript">moveProgressBar('21.8');</script><tr class='step' id='row_26'><td class="step" id="row_26_0"><div><span class="step param">c</span></div></td><td class="step" id="row_26_1"><div><span class="step param">d</span></div></td></tr> <script type="text/javascript">moveProgressBar('22.4');</script></table></li> <script type="text/javascript">moveProgressBar('22.4');</script><li id='features_background_multiline_args_background_feature_27' class='step passed'><div><span class="keyword">Then</span> <span class="step val">the multiline string should be</span></div><pre class="val"> I'm a cucumber and I'm okay. &#x000A; I sleep all night and I test all day</pre></li> <script type="text/javascript">moveProgressBar('23.0');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Passing background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li id='features_background_passing_background_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('23.6');</script></ol></div><div class='scenario'><h3 id="scenario_9"><span class="keyword">Scenario:</span> <span class="val">passing background</span></h3><ol> <script type="text/javascript">moveProgressBar('24.2');</script><li id='features_background_passing_background_feature_7' class='step passed'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('24.8');</script></ol></div><div class='scenario'><h3 id="scenario_10"><span class="keyword">Scenario:</span> <span class="val">another passing background</span></h3><ol> <script type="text/javascript">moveProgressBar('25.4');</script><li id='features_background_passing_background_feature_10' class='step passed'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('26.0');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Pending background sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><script>makeYellow('scenario_10');</script><li id='features_background_pending_background_feature_4' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">pending</span></div><pre>Given /^pending$/ do
292
+ pending # express the regexp above with the code you wish you had
293
+ end</pre></li> <script type="text/javascript">moveProgressBar('26.6');</script></ol></div><div class='scenario'><h3 id="scenario_11"><span class="keyword">Scenario:</span> <span class="val">pending background</span></h3><ol> <script type="text/javascript">moveProgressBar('27.2');</script><li id='features_background_pending_background_feature_7' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('27.8');</script></ol></div><div class='scenario'><h3 id="scenario_12"><span class="keyword">Scenario:</span> <span class="val">another pending background</span></h3><ol> <script type="text/javascript">moveProgressBar('28.4');</script><li id='features_background_pending_background_feature_10' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('28.9');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing background with scenario outlines sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><script>makeRed('scenario_12');</script><li id='features_background_scenario_outline_failing_background_feature_4' class='step failed'><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
294
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
295
+ features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table':in `flunker'
296
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
297
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
298
+ features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table':in `/^failing without a table$/'
299
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
300
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
301
+ features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table':in `Given failing without a table'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
302
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
303
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre></li> <script type="text/javascript">moveProgressBar('29.5');</script></ol></div><div class='scenario outline'><h3 id="scenario_13"><span class="keyword">Scenario Outline:</span> <span class="val">failing background</span></h3><ol><li id='features_background_scenario_outline_failing_background_feature_7' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '&lt;count&gt;' cukes</span></div></li> <script type="text/javascript">moveProgressBar('30.1');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_9'><th class="step skipped_param" id="row_9_0"><div><span class="step param">count</span></div></th></tr> <script type="text/javascript">moveProgressBar('30.7');</script><tr class='step' id='row_10'><td class="step skipped" id="row_10_0"><div><span class="step param">10</span></div></td></tr><tr><td class="failed" colspan="1"><pre>FAIL
304
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
305
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
306
+ features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table'</pre></td></tr> <script type="text/javascript">moveProgressBar('31.3');</script></table></div></div><div class='scenario outline'><h3 id="scenario_14"><span class="keyword">Scenario Outline:</span> <span class="val">another failing background</span></h3><ol><li id='features_background_scenario_outline_failing_background_feature_13' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '&lt;count&gt;' cukes</span></div></li> <script type="text/javascript">moveProgressBar('31.9');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_15'><th class="step skipped_param" id="row_15_0"><div><span class="step param">count</span></div></th></tr> <script type="text/javascript">moveProgressBar('32.5');</script><tr class='step' id='row_16'><td class="step skipped" id="row_16_0"><div><span class="step param">10</span></div></td></tr> <script type="text/javascript">moveProgressBar('33.1');</script></table></div></div></div><div class="feature"><h2><span class="val">Feature: Passing background with scenario outlines sample</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val"></span></h3><ol><li id='features_background_scenario_outline_passing_background_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">10</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('33.7');</script></ol></div><div class='scenario outline'><h3 id="scenario_15"><span class="keyword">Scenario Outline:</span> <span class="val">passing background</span></h3><ol><li id='features_background_scenario_outline_passing_background_feature_7' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '&lt;count&gt;' cukes</span></div></li> <script type="text/javascript">moveProgressBar('34.3');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_9'><th class="step skipped_param" id="row_9_0"><div><span class="step param">count</span></div></th></tr> <script type="text/javascript">moveProgressBar('34.9');</script><tr class='step' id='row_10'><td class="step passed" id="row_10_0"><div><span class="step param">10</span></div></td></tr> <script type="text/javascript">moveProgressBar('35.5');</script></table></div></div><div class='scenario outline'><h3 id="scenario_16"><span class="keyword">Scenario Outline:</span> <span class="val">another passing background</span></h3><ol><li id='features_background_scenario_outline_passing_background_feature_13' class='step skipped'><div><span class="keyword">Then</span> <span class="step val">I should have '&lt;count&gt;' cukes</span></div></li> <script type="text/javascript">moveProgressBar('36.0');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_15'><th class="step skipped_param" id="row_15_0"><div><span class="step param">count</span></div></th></tr> <script type="text/javascript">moveProgressBar('36.6');</script><tr class='step' id='row_16'><td class="step passed" id="row_16_0"><div><span class="step param">10</span></div></td></tr> <script type="text/javascript">moveProgressBar('37.2');</script></table></div></div></div><div class="feature"><h2><span class="val">Feature: Calling undefined step</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_17"><span class="keyword">Scenario:</span> <span class="val">Call directly</span></h3><ol><script>makeYellow('scenario_17');</script><li id='features_call_undefined_step_from_step_def_feature_4' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">a step definition that calls an undefined step</span></div><div class="message"><pre>Undefined step: "this does not exist"</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
307
+ features/call_undefined_step_from_step_def.feature:4:in `Given a step definition that calls an undefined step':in `/^a step definition that calls an undefined step$/'
308
+ ./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
309
+ features/call_undefined_step_from_step_def.feature:4:in `Given a step definition that calls an undefined step':in `Given a step definition that calls an undefined step'</pre></div><pre class="ruby"><code><span class="linenum">18</span>
310
+ <span class="linenum">19</span><span class="constant">Given</span> <span class="punct">/^</span><span class="ident">a</span> <span class="ident">step</span> <span class="ident">definition</span> <span class="ident">that</span> <span class="ident">calls</span> <span class="ident">an</span> <span class="ident">undefined</span> <span class="ident">step</span><span class="global">$/</span> <span class="keyword">do</span>
311
+ <span class="offending"><span class="linenum">20</span> <span class="constant">Given</span> <span class="punct">'</span><span class="string">this does not exist</span><span class="punct">'</span></span>
312
+ <span class="linenum">21</span><span class="keyword">end</span></code></pre><pre>Given /^$/ do
313
+ pending # express the regexp above with the code you wish you had
314
+ end</pre></li> <script type="text/javascript">moveProgressBar('37.8');</script></ol></div><div class='scenario'><h3 id="scenario_18"><span class="keyword">Scenario:</span> <span class="val">Call via another</span></h3><ol><script>makeYellow('scenario_18');</script><li id='features_call_undefined_step_from_step_def_feature_7' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">call step &quot;<span class="param">a step definition that calls an undefined step</span>&quot;</span></div><div class="message"><pre>Undefined step: "this does not exist"</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
315
+ features/call_undefined_step_from_step_def.feature:7:in `Given call step "a step definition that calls an undefined step"':in `/^a step definition that calls an undefined step$/'
316
+ ./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
317
+ features/call_undefined_step_from_step_def.feature:7:in `Given call step "a step definition that calls an undefined step"':in `Given call step "a step definition that calls an undefined step"'</pre></div><pre class="ruby"><code><span class="linenum">18</span>
318
+ <span class="linenum">19</span><span class="constant">Given</span> <span class="punct">/^</span><span class="ident">a</span> <span class="ident">step</span> <span class="ident">definition</span> <span class="ident">that</span> <span class="ident">calls</span> <span class="ident">an</span> <span class="ident">undefined</span> <span class="ident">step</span><span class="global">$/</span> <span class="keyword">do</span>
319
+ <span class="offending"><span class="linenum">20</span> <span class="constant">Given</span> <span class="punct">'</span><span class="string">this does not exist</span><span class="punct">'</span></span>
320
+ <span class="linenum">21</span><span class="keyword">end</span></code></pre><pre>Given /^$/ do
321
+ pending # express the regexp above with the code you wish you had
322
+ end</pre></li> <script type="text/javascript">moveProgressBar('38.4');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Failing expectation</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_19"><span class="keyword">Scenario:</span> <span class="val">Failing expectation</span></h3><ol><script>makeRed('scenario_19');</script><li id='features_failing_expectation_feature_4' class='step failed'><div><span class="keyword">Given</span> <span class="step val">failing expectation</span></div><div class="message"><pre>expected: "that",
323
+ got: "this" (using ==)
324
+
325
+ Diff:
326
+ @@ -1,2 +1,2 @@
327
+ -that
328
+ +this
329
+ </pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
330
+ features/failing_expectation.feature:4:in `Given failing expectation':in `/^failing expectation$/'
331
+ ./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
332
+ features/failing_expectation.feature:4:in `Given failing expectation':in `Given failing expectation'</pre></div><pre class="ruby"><code><span class="linenum">61</span>
333
+ <span class="linenum">62</span><span class="constant">Given</span> <span class="punct">/^</span><span class="ident">failing</span> <span class="ident">expectation</span><span class="global">$/</span> <span class="keyword">do</span>
334
+ <span class="offending"><span class="linenum">63</span> <span class="punct">'</span><span class="string">this</span><span class="punct">'.</span><span class="ident">should</span> <span class="punct">==</span> <span class="punct">'</span><span class="string">that</span><span class="punct">'</span></span>
335
+ <span class="linenum">64</span><span class="keyword">end</span></code></pre></li> <script type="text/javascript">moveProgressBar('39.0');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: Lots of undefined</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_20"><span class="keyword">Scenario:</span> <span class="val">Implement me</span></h3><ol><script>makeYellow('scenario_20');</script><li id='features_lots_of_undefined_feature_4' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">it snows in Sahara</span></div><pre>Given /^it snows in Sahara$/ do
336
+ pending # express the regexp above with the code you wish you had
337
+ end</pre></li> <script type="text/javascript">moveProgressBar('39.6');</script><script>makeYellow('scenario_20');</script><li id='features_lots_of_undefined_feature_5' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">it's 40 degrees in Norway</span></div><pre>Given /^it's 40 degrees in Norway$/ do
338
+ pending # express the regexp above with the code you wish you had
339
+ end</pre></li> <script type="text/javascript">moveProgressBar('40.2');</script><script>makeYellow('scenario_20');</script><li id='features_lots_of_undefined_feature_6' class='step undefined'><div><span class="keyword">And</span> <span class="step val">it's 40 degrees in Norway</span></div><pre>And /^it's 40 degrees in Norway$/ do
340
+ pending # express the regexp above with the code you wish you had
341
+ end</pre></li> <script type="text/javascript">moveProgressBar('40.8');</script><script>makeYellow('scenario_20');</script><li id='features_lots_of_undefined_feature_7' class='step undefined'><div><span class="keyword">When</span> <span class="step val">I stop procrastinating</span></div><pre>When /^I stop procrastinating$/ do
342
+ pending # express the regexp above with the code you wish you had
343
+ end</pre></li> <script type="text/javascript">moveProgressBar('41.4');</script><script>makeYellow('scenario_20');</script><li id='features_lots_of_undefined_feature_8' class='step undefined'><div><span class="keyword">And</span> <span class="step val">there is world peace</span></div><pre>And /^there is world peace$/ do
344
+ pending # express the regexp above with the code you wish you had
345
+ end</pre></li> <script type="text/javascript">moveProgressBar('42.0');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: multiline</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val">I'm a multiline name
346
+ which goes on and on and on for three lines
347
+ yawn</span></h3><ol><li id='features_multiline_name_feature_6' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('42.6');</script></ol></div><div class='scenario'><h3 id="scenario_21"><span class="keyword">Scenario:</span> <span class="val">I'm a multiline name
348
+ which goes on and on and on for three lines
349
+ yawn</span></h3><ol> <script type="text/javascript">moveProgressBar('43.1');</script><li id='features_multiline_name_feature_11' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('43.7');</script></ol></div><div class='scenario outline'><h3 id="scenario_22"><span class="keyword">Scenario Outline:</span> <span class="val">I'm a multiline name
350
+ which goes on and on and on for three lines
351
+ yawn</span></h3><ol><li id='features_multiline_name_feature_16' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('44.3');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_18'><th class="step skipped_param" id="row_18_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('44.9');</script><tr class='step' id='row_19'><td class="step passed" id="row_19_0"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('45.5');</script></table></div></div><div class='scenario outline'><h3 id="scenario_23"><span class="keyword">Scenario Outline:</span> <span class="val">name</span></h3><ol><li id='features_multiline_name_feature_22' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('46.1');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">I'm a multiline name
352
+ which goes on and on and on for three lines
353
+ yawn</span></h4><table><tr class='step' id='row_26'><th class="step skipped_param" id="row_26_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('46.7');</script><tr class='step' id='row_27'><td class="step passed" id="row_27_0"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('47.3');</script></table></div></div></div><div class="feature"><h2><span class="val">Feature: Outline Sample</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_24"><span class="keyword">Scenario:</span> <span class="val">I have no steps</span></h3><ol></ol></div><div class='scenario outline'><h3 id="scenario_25"><span class="keyword">Scenario Outline:</span> <span class="val">Test state</span></h3><ol><li id='features_outline_sample_feature_6' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('47.9');</script><li id='features_outline_sample_feature_7' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;other_state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('48.5');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Rainbow colours</span></h4><table><tr class='step' id='row_9'><th class="step skipped_param" id="row_9_0"><div><span class="step param">state</span></div></th><th class="step skipped_param" id="row_9_1"><div><span class="step param">other_state</span></div></th></tr> <script type="text/javascript">moveProgressBar('49.1');</script><tr class='step' id='row_10'><td class="step undefined" id="row_10_0"><div><span class="step param">missing</span></div></td><script>makeYellow('scenario_25');</script><td class="step skipped" id="row_10_1"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('49.7');</script><tr class='step' id='row_11'><td class="step passed" id="row_11_0"><div><span class="step param">passing</span></div></td><td class="step passed" id="row_11_1"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('50.2');</script><tr class='step' id='row_12'><td class="step failed" id="row_12_0"><div><span class="step param">failing</span></div></td><script>makeRed('scenario_25');</script><td class="step skipped" id="row_12_1"><div><span class="step param">passing</span></div></td></tr><tr><td class="failed" colspan="2"><pre>FAIL
354
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
355
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
356
+ features/outline_sample.feature:6:in `Given <state> without a table'</pre></td></tr> <script type="text/javascript">moveProgressBar('50.8');</script></table></div><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Only passing</span></h4><table><tr class='step' id='row_14'><th class="step skipped_param" id="row_14_0"><div><span class="step param">state</span></div></th><th class="step skipped_param" id="row_14_1"><div><span class="step param">other_state</span></div></th></tr> <script type="text/javascript">moveProgressBar('51.4');</script><tr class='step' id='row_15'><td class="step passed" id="row_15_0"><div><span class="step param">passing</span></div></td><td class="step passed" id="row_15_1"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('52.0');</script></table></div></div></div><div class="feature"><pre class="comment"># Feature comment<br/></pre><span class="tag">@one</span><h2><span class="val">Feature: Sample</span></h2><p class="narrative"></p><div class='scenario'><span class="tag">@two</span> <span class="tag">@three</span><h3 id="scenario_26"><span class="keyword">Scenario:</span> <span class="val">Missing</span></h3><ol><script>makeYellow('scenario_26');</script><li id='features_sample_feature_7' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">missing</span></div><pre>Given /^missing$/ do
357
+ pending # express the regexp above with the code you wish you had
358
+ end</pre></li> <script type="text/javascript">moveProgressBar('52.6');</script></ol></div><div class='scenario'><pre class="comment"># Scenario comment<br/></pre><span class="tag">@three</span><h3 id="scenario_27"><span class="keyword">Scenario:</span> <span class="val">Passing</span></h3><ol><li id='features_sample_feature_12' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing</span></div><table><tr class='step' id='row_13'><td class="step" id="row_13_0"><div><span class="step param">a</span></div></td><td class="step" id="row_13_1"><div><span class="step param">b</span></div></td></tr> <script type="text/javascript">moveProgressBar('53.8');</script><tr class='step' id='row_14'><td class="step" id="row_14_0"><div><span class="step param">c</span></div></td><td class="step" id="row_14_1"><div><span class="step param">d</span></div></td></tr> <script type="text/javascript">moveProgressBar('54.4');</script></table></li> <script type="text/javascript">moveProgressBar('54.4');</script></ol></div><div class='scenario'><span class="tag">@four</span><h3 id="scenario_28"><span class="keyword">Scenario:</span> <span class="val">Failing</span></h3><ol><script>makeRed('scenario_28');</script><li id='features_sample_feature_18' class='step failed'><div><span class="keyword">Given</span> <span class="step val">failing</span></div><pre class="val">hello</pre><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
359
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
360
+ features/sample.feature:18:in `Given failing':in `flunker'
361
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
362
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
363
+ features/sample.feature:18:in `Given failing':in `/^failing$/'
364
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
365
+ ./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
366
+ features/sample.feature:18:in `Given failing':in `Given failing'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
367
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
368
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre></li> <script type="text/javascript">moveProgressBar('55.0');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: search examples</span></h2><p class="narrative"></p><div class="background"><h3><span class="keyword">Background:</span> <span class="val">Hantu Pisang background match</span></h3><ol><li id='features_search_sample_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('55.6');</script></ol></div><div class='scenario'><h3 id="scenario_29"><span class="keyword">Scenario:</span> <span class="val">should match Hantu Pisang</span></h3><ol> <script type="text/javascript">moveProgressBar('56.2');</script><li id='features_search_sample_feature_7' class='step passed'><div><span class="keyword">Given</span> <span class="step val">passing without a table</span></div></li> <script type="text/javascript">moveProgressBar('56.8');</script></ol></div><div class='scenario'><h3 id="scenario_30"><span class="keyword">Scenario:</span> <span class="val">Ignore me</span></h3><ol> <script type="text/javascript">moveProgressBar('57.3');</script><script>makeRed('scenario_30');</script><li id='features_search_sample_feature_10' class='step failed'><div><span class="keyword">Given</span> <span class="step val">failing without a table</span></div><div class="message"><pre>FAIL</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:2:in `flunker'
369
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
370
+ features/search_sample.feature:10:in `Given failing without a table':in `flunker'
371
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
372
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
373
+ features/search_sample.feature:10:in `Given failing without a table':in `/^failing without a table$/'
374
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
375
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
376
+ features/search_sample.feature:10:in `Given failing without a table':in `Given failing without a table'</pre></div><pre class="ruby"><code><span class="linenum">0</span><span class="keyword">def </span><span class="method">flunker</span>
377
+ <span class="linenum">1</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">FAIL</span><span class="punct">&quot;</span>
378
+ <span class="offending"><span class="linenum">2</span><span class="keyword">end</span></span></code></pre></li> <script type="text/javascript">moveProgressBar('57.9');</script></ol></div><div class='scenario outline'><h3 id="scenario_31"><span class="keyword">Scenario Outline:</span> <span class="val">Ignore me</span></h3><ol><li id='features_search_sample_feature_13' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('58.5');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_15'><th class="step skipped_param" id="row_15_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('59.1');</script><tr class='step' id='row_16'><td class="step failed" id="row_16_0"><div><span class="step param">failing</span></div></td><script>makeRed('scenario_31');</script></tr><tr><td class="failed" colspan="1"><pre>FAIL
379
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
380
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
381
+ features/search_sample.feature:13:in `Given <state> without a table'</pre></td></tr> <script type="text/javascript">moveProgressBar('59.7');</script></table></div></div><div class='scenario outline'><h3 id="scenario_32"><span class="keyword">Scenario Outline:</span> <span class="val">Hantu Pisang match</span></h3><ol><li id='features_search_sample_feature_19' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('60.3');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_21'><th class="step skipped_param" id="row_21_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('60.9');</script><tr class='step' id='row_22'><td class="step passed" id="row_22_0"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('61.5');</script></table></div></div><div class='scenario outline'><h3 id="scenario_33"><span class="keyword">Scenario Outline:</span> <span class="val">no match in name but in examples</span></h3><ol><li id='features_search_sample_feature_25' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt; without a table</span></div></li> <script type="text/javascript">moveProgressBar('62.1');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Hantu Pisang</span></h4><table><tr class='step' id='row_27'><th class="step skipped_param" id="row_27_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('62.7');</script><tr class='step' id='row_28'><td class="step passed" id="row_28_0"><div><span class="step param">passing</span></div></td></tr> <script type="text/javascript">moveProgressBar('63.3');</script></table></div><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val">Ignore me</span></h4><table><tr class='step' id='row_31'><th class="step skipped_param" id="row_31_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('63.9');</script><tr class='step' id='row_32'><td class="step failed" id="row_32_0"><div><span class="step param">failing</span></div></td><script>makeRed('scenario_33');</script></tr><tr><td class="failed" colspan="1"><pre>FAIL
382
+ ./features/step_definitions/sample_steps.rb:2:in `flunker'
383
+ ./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
384
+ features/search_sample.feature:25:in `Given <state> without a table'</pre></td></tr> <script type="text/javascript">moveProgressBar('64.4');</script></table></div></div></div><div class="feature"><span class="tag">@sample_one</span><h2><span class="val">Feature: Tag samples</span></h2><p class="narrative"></p><div class='scenario'><span class="tag">@sample_two</span> <span class="tag">@sample_four</span><h3 id="scenario_34"><span class="keyword">Scenario:</span> <span class="val">Passing</span></h3><ol><script>makeYellow('scenario_34');</script><li id='features_tags_sample_feature_6' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">missing</span></div><pre>Given /^missing$/ do
385
+ pending # express the regexp above with the code you wish you had
386
+ end</pre></li> <script type="text/javascript">moveProgressBar('65.0');</script></ol></div><div class='scenario outline'><span class="tag">@sample_three</span><h3 id="scenario_35"><span class="keyword">Scenario Outline:</span> <span class="val"></span></h3><ol><li id='features_tags_sample_feature_10' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">&lt;state&gt;</span></div></li> <script type="text/javascript">moveProgressBar('65.6');</script></ol><div class="examples"><h4><span class="keyword">Examples:</span> <span class="val"></span></h4><table><tr class='step' id='row_12'><th class="step skipped_param" id="row_12_0"><div><span class="step param">state</span></div></th></tr> <script type="text/javascript">moveProgressBar('66.2');</script><tr class='step' id='row_13'><td class="step undefined" id="row_13_0"><div><span class="step param">missing</span></div></td><script>makeYellow('scenario_35');</script></tr> <script type="text/javascript">moveProgressBar('66.8');</script></table></div></div><div class='scenario'><span class="tag">@sample_three</span> <span class="tag">@sample_four</span><h3 id="scenario_36"><span class="keyword">Scenario:</span> <span class="val">Skipped</span></h3><ol><script>makeYellow('scenario_36');</script><li id='features_tags_sample_feature_17' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">missing</span></div><pre>Given /^missing$/ do
387
+ pending # express the regexp above with the code you wish you had
388
+ end</pre></li> <script type="text/javascript">moveProgressBar('67.4');</script></ol></div></div><div class="feature"><span class="tag">@lots</span><h2><span class="val">Feature: Tons of cukes</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_37"><span class="keyword">Scenario:</span> <span class="val">Lots and lots</span></h3><ol><li id='features_tons_of_cukes_feature_4' class='step passed'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('68.0');</script><script>makeRed('scenario_37');</script><li id='features_tons_of_cukes_feature_5' class='step failed'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div><div class="message"><pre>We already have 2 cukes!</pre></div><div class="backtrace"><pre>./features/step_definitions/sample_steps.rb:28:in `/^'(.+)' cukes$/'
389
+ features/tons_of_cukes.feature:5:in `Given '2' cukes':in `/^'(.+)' cukes$/'
390
+ ./features/step_definitions/sample_steps.rb:28:in `/^'(.+)' cukes$/'
391
+ features/tons_of_cukes.feature:5:in `Given '2' cukes':in `Given '2' cukes'</pre></div><pre class="ruby"><code><span class="linenum">26</span>
392
+ <span class="linenum">27</span><span class="constant">Given</span> <span class="punct">/^'</span><span class="string">(.+)</span><span class="punct">'</span> <span class="ident">cukes</span><span class="global">$/</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">cukes</span><span class="punct">|</span>
393
+ <span class="offending"><span class="linenum">28</span> <span class="keyword">raise</span> <span class="punct">&quot;</span><span class="string">We already have <span class="expr">#{@cukes}</span> cukes!</span><span class="punct">&quot;</span> <span class="keyword">if</span> <span class="attribute">@cukes</span></span>
394
+ <span class="linenum">29</span> <span class="attribute">@cukes</span> <span class="punct">=</span> <span class="ident">cukes</span>
395
+ <span class="linenum">30</span><span class="keyword">end</span></code></pre></li> <script type="text/javascript">moveProgressBar('68.6');</script><li id='features_tons_of_cukes_feature_6' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('69.2');</script><li id='features_tons_of_cukes_feature_7' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('69.8');</script><li id='features_tons_of_cukes_feature_8' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('70.4');</script><li id='features_tons_of_cukes_feature_9' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('71.0');</script><li id='features_tons_of_cukes_feature_10' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('71.5');</script><li id='features_tons_of_cukes_feature_11' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('72.1');</script><li id='features_tons_of_cukes_feature_12' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('72.7');</script><li id='features_tons_of_cukes_feature_13' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('73.3');</script><li id='features_tons_of_cukes_feature_14' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('73.9');</script><li id='features_tons_of_cukes_feature_15' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('74.5');</script><li id='features_tons_of_cukes_feature_16' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('75.1');</script><li id='features_tons_of_cukes_feature_17' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('75.7');</script><li id='features_tons_of_cukes_feature_18' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('76.3');</script><li id='features_tons_of_cukes_feature_19' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('76.9');</script><li id='features_tons_of_cukes_feature_20' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('77.5');</script><li id='features_tons_of_cukes_feature_21' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('78.1');</script><li id='features_tons_of_cukes_feature_22' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('78.6');</script><li id='features_tons_of_cukes_feature_23' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('79.2');</script><li id='features_tons_of_cukes_feature_24' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('79.8');</script><li id='features_tons_of_cukes_feature_25' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('80.4');</script><li id='features_tons_of_cukes_feature_26' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('81.0');</script><li id='features_tons_of_cukes_feature_27' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('81.6');</script><li id='features_tons_of_cukes_feature_28' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('82.2');</script><li id='features_tons_of_cukes_feature_29' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('82.8');</script><li id='features_tons_of_cukes_feature_30' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('83.4');</script><li id='features_tons_of_cukes_feature_31' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('84.0');</script><li id='features_tons_of_cukes_feature_32' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('84.6');</script><li id='features_tons_of_cukes_feature_33' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('85.2');</script><li id='features_tons_of_cukes_feature_34' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('85.7');</script><li id='features_tons_of_cukes_feature_35' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('86.3');</script><li id='features_tons_of_cukes_feature_36' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('86.9');</script><li id='features_tons_of_cukes_feature_37' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('87.5');</script><li id='features_tons_of_cukes_feature_38' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('88.1');</script><li id='features_tons_of_cukes_feature_39' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('88.7');</script><li id='features_tons_of_cukes_feature_40' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('89.3');</script><li id='features_tons_of_cukes_feature_41' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('89.9');</script><li id='features_tons_of_cukes_feature_42' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('90.5');</script><li id='features_tons_of_cukes_feature_43' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('91.1');</script><li id='features_tons_of_cukes_feature_44' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('91.7');</script><li id='features_tons_of_cukes_feature_45' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('92.3');</script><li id='features_tons_of_cukes_feature_46' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('92.8');</script><li id='features_tons_of_cukes_feature_47' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('93.4');</script><li id='features_tons_of_cukes_feature_48' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('94.0');</script><li id='features_tons_of_cukes_feature_49' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('94.6');</script><li id='features_tons_of_cukes_feature_50' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('95.2');</script><li id='features_tons_of_cukes_feature_51' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('95.8');</script><li id='features_tons_of_cukes_feature_52' class='step skipped'><div><span class="keyword">Given</span> <span class="step val">'<span class="param">2</span>' cukes</span></div></li> <script type="text/javascript">moveProgressBar('96.4');</script></ol></div></div><div class="feature"><h2><span class="val">Feature: undefined multiline args</span></h2><p class="narrative"></p><div class='scenario'><h3 id="scenario_38"><span class="keyword">Scenario:</span> <span class="val">pystring</span></h3><ol><script>makeYellow('scenario_38');</script><li id='features_undefined_multiline_args_feature_4' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">a pystring</span></div><pre class="val"> example</pre><pre>Given /^a pystring$/ do |string|
396
+ pending # express the regexp above with the code you wish you had
397
+ end</pre></li> <script type="text/javascript">moveProgressBar('97.0');</script></ol></div><div class='scenario'><h3 id="scenario_39"><span class="keyword">Scenario:</span> <span class="val">table</span></h3><ol><script>makeYellow('scenario_39');</script><li id='features_undefined_multiline_args_feature_10' class='step undefined'><div><span class="keyword">Given</span> <span class="step val">a table</span></div><table><tr class='step' id='row_11'><td class="step" id="row_11_0"><div><span class="step param">table</span></div></td></tr> <script type="text/javascript">moveProgressBar('98.2');</script><tr class='step' id='row_12'><td class="step" id="row_12_0"><div><span class="step param">example</span></div></td></tr> <script type="text/javascript">moveProgressBar('98.8');</script></table><pre>Given /^a table$/ do |table|
398
+ # table is a Cucumber::Ast::Table
399
+ pending # express the regexp above with the code you wish you had
400
+ end</pre></li> <script type="text/javascript">moveProgressBar('98.8');</script></ol></div></div><script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>0m30.005s seconds</strong>";</script><script type="text/javascript">document.getElementById('totals').innerHTML = "43 scenarios (10 failed, 2 skipped, 12 undefined, 19 passed)<br />131 steps (10 failed, 60 skipped, 16 undefined, 45 passed)";</script></div></body></html>