cucumber 3.0.0.pre.2 → 4.0.0.rc.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (541) hide show
  1. checksums.yaml +5 -5
  2. data/{History.md → CHANGELOG.md} +267 -14
  3. data/CONTRIBUTING.md +4 -21
  4. data/README.md +14 -15
  5. data/bin/cucumber +2 -1
  6. data/lib/autotest/cucumber.rb +1 -0
  7. data/lib/autotest/cucumber_mixin.rb +36 -40
  8. data/lib/autotest/cucumber_rails.rb +1 -0
  9. data/lib/autotest/cucumber_rails_rspec.rb +1 -0
  10. data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
  11. data/lib/autotest/cucumber_rspec.rb +1 -0
  12. data/lib/autotest/cucumber_rspec2.rb +1 -0
  13. data/lib/autotest/discover.rb +1 -0
  14. data/lib/cucumber.rb +2 -1
  15. data/lib/cucumber/cli/configuration.rb +8 -7
  16. data/lib/cucumber/cli/main.rb +14 -14
  17. data/lib/cucumber/cli/options.rb +141 -120
  18. data/lib/cucumber/cli/profile_loader.rb +50 -29
  19. data/lib/cucumber/cli/rerun_file.rb +1 -0
  20. data/lib/cucumber/configuration.rb +40 -30
  21. data/lib/cucumber/constantize.rb +8 -10
  22. data/lib/cucumber/core_ext/string.rb +1 -0
  23. data/lib/cucumber/deprecate.rb +33 -9
  24. data/lib/cucumber/encoding.rb +2 -1
  25. data/lib/cucumber/errors.rb +10 -8
  26. data/lib/cucumber/events.rb +14 -9
  27. data/lib/cucumber/events/envelope.rb +9 -0
  28. data/lib/cucumber/events/gherkin_source_parsed.rb +11 -0
  29. data/lib/cucumber/events/gherkin_source_read.rb +1 -4
  30. data/lib/cucumber/events/hook_test_step_created.rb +13 -0
  31. data/lib/cucumber/events/step_activated.rb +6 -6
  32. data/lib/cucumber/events/step_definition_registered.rb +4 -8
  33. data/lib/cucumber/events/test_case_created.rb +13 -0
  34. data/lib/cucumber/events/test_case_finished.rb +1 -5
  35. data/lib/cucumber/events/test_case_ready.rb +12 -0
  36. data/lib/cucumber/events/{test_case_starting.rb → test_case_started.rb} +1 -5
  37. data/lib/cucumber/events/test_run_finished.rb +2 -3
  38. data/lib/cucumber/events/{test_run_starting.rb → test_run_started.rb} +3 -5
  39. data/lib/cucumber/events/test_step_created.rb +13 -0
  40. data/lib/cucumber/events/test_step_finished.rb +0 -6
  41. data/lib/cucumber/events/{test_step_starting.rb → test_step_started.rb} +2 -8
  42. data/lib/cucumber/file_specs.rb +7 -6
  43. data/lib/cucumber/filters.rb +3 -1
  44. data/lib/cucumber/filters/activate_steps.rb +11 -5
  45. data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
  46. data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
  47. data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
  48. data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
  49. data/lib/cucumber/filters/broadcast_test_case_ready_event.rb +12 -0
  50. data/lib/cucumber/filters/{broadcast_test_run_starting_event.rb → broadcast_test_run_started_event.rb} +4 -3
  51. data/lib/cucumber/filters/gated_receiver.rb +1 -2
  52. data/lib/cucumber/filters/prepare_world.rb +6 -13
  53. data/lib/cucumber/filters/quit.rb +3 -7
  54. data/lib/cucumber/filters/randomizer.rb +6 -7
  55. data/lib/cucumber/filters/retry.rb +2 -2
  56. data/lib/cucumber/filters/tag_limits.rb +2 -2
  57. data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
  58. data/lib/cucumber/filters/tag_limits/verifier.rb +3 -6
  59. data/lib/cucumber/formatter/ansicolor.rb +33 -37
  60. data/lib/cucumber/formatter/ast_lookup.rb +165 -0
  61. data/lib/cucumber/formatter/backtrace_filter.rb +10 -10
  62. data/lib/cucumber/formatter/console.rb +37 -74
  63. data/lib/cucumber/formatter/console_counts.rb +4 -9
  64. data/lib/cucumber/formatter/console_issues.rb +10 -7
  65. data/lib/cucumber/formatter/duration.rb +2 -1
  66. data/lib/cucumber/formatter/duration_extractor.rb +4 -2
  67. data/lib/cucumber/formatter/errors.rb +6 -0
  68. data/lib/cucumber/formatter/fail_fast.rb +9 -6
  69. data/lib/cucumber/formatter/fanout.rb +3 -3
  70. data/lib/cucumber/formatter/html.rb +11 -603
  71. data/lib/cucumber/formatter/http_io.rb +93 -0
  72. data/lib/cucumber/formatter/ignore_missing_messages.rb +2 -4
  73. data/lib/cucumber/formatter/interceptor.rb +10 -12
  74. data/lib/cucumber/formatter/io.rb +19 -12
  75. data/lib/cucumber/formatter/json.rb +106 -112
  76. data/lib/cucumber/formatter/junit.rb +81 -76
  77. data/lib/cucumber/formatter/message.rb +22 -0
  78. data/lib/cucumber/formatter/message_builder.rb +241 -0
  79. data/lib/cucumber/formatter/pretty.rb +353 -153
  80. data/lib/cucumber/formatter/progress.rb +30 -33
  81. data/lib/cucumber/formatter/query/hook_by_test_step.rb +31 -0
  82. data/lib/cucumber/formatter/query/pickle_by_test.rb +26 -0
  83. data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +26 -0
  84. data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +40 -0
  85. data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +40 -0
  86. data/lib/cucumber/formatter/rerun.rb +24 -5
  87. data/lib/cucumber/formatter/stepdefs.rb +2 -2
  88. data/lib/cucumber/formatter/steps.rb +4 -5
  89. data/lib/cucumber/formatter/summary.rb +18 -11
  90. data/lib/cucumber/formatter/unicode.rb +16 -18
  91. data/lib/cucumber/formatter/usage.rb +30 -26
  92. data/lib/cucumber/gherkin/data_table_parser.rb +18 -6
  93. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +83 -86
  94. data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
  95. data/lib/cucumber/gherkin/i18n.rb +1 -0
  96. data/lib/cucumber/gherkin/steps_parser.rb +18 -8
  97. data/lib/cucumber/glue/dsl.rb +13 -26
  98. data/lib/cucumber/glue/hook.rb +35 -11
  99. data/lib/cucumber/glue/invoke_in_world.rb +15 -20
  100. data/lib/cucumber/glue/proto_world.rb +48 -42
  101. data/lib/cucumber/glue/registry_and_more.rb +58 -23
  102. data/lib/cucumber/glue/snippet.rb +23 -26
  103. data/lib/cucumber/glue/step_definition.rb +51 -28
  104. data/lib/cucumber/glue/world_factory.rb +2 -4
  105. data/lib/cucumber/hooks.rb +27 -17
  106. data/lib/cucumber/load_path.rb +1 -0
  107. data/lib/cucumber/multiline_argument.rb +7 -17
  108. data/lib/cucumber/multiline_argument/data_table.rb +113 -82
  109. data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +8 -12
  110. data/lib/cucumber/multiline_argument/doc_string.rb +2 -1
  111. data/lib/cucumber/platform.rb +4 -3
  112. data/lib/cucumber/project_initializer.rb +2 -2
  113. data/lib/cucumber/rake/task.rb +28 -21
  114. data/lib/cucumber/rspec/disable_option_parser.rb +10 -8
  115. data/lib/cucumber/rspec/doubles.rb +1 -0
  116. data/lib/cucumber/running_test_case.rb +4 -54
  117. data/lib/cucumber/runtime.rb +32 -63
  118. data/lib/cucumber/runtime/after_hooks.rb +9 -4
  119. data/lib/cucumber/runtime/before_hooks.rb +9 -4
  120. data/lib/cucumber/runtime/for_programming_languages.rb +12 -9
  121. data/lib/cucumber/runtime/step_hooks.rb +5 -2
  122. data/lib/cucumber/runtime/support_code.rb +16 -22
  123. data/lib/cucumber/runtime/user_interface.rb +12 -23
  124. data/lib/cucumber/step_definition_light.rb +6 -4
  125. data/lib/cucumber/step_definitions.rb +3 -2
  126. data/lib/cucumber/step_match.rb +29 -14
  127. data/lib/cucumber/step_match_search.rb +10 -10
  128. data/lib/cucumber/term/ansicolor.rb +39 -39
  129. data/lib/cucumber/unit.rb +1 -0
  130. data/lib/cucumber/version +1 -1
  131. data/lib/simplecov_setup.rb +1 -0
  132. metadata +206 -678
  133. data/.coveralls.yml +0 -1
  134. data/.cucumberproignore +0 -6
  135. data/.github/ISSUE_TEMPLATE.md +0 -48
  136. data/.github/PULL_REQUEST_TEMPLATE.md +0 -39
  137. data/.rspec +0 -1
  138. data/.rubocop.yml +0 -13
  139. data/.rubocop_todo.yml +0 -1075
  140. data/.ruby-gemset +0 -1
  141. data/.travis.yml +0 -69
  142. data/.yardopts +0 -1
  143. data/Gemfile +0 -28
  144. data/Rakefile +0 -32
  145. data/appveyor.yml +0 -26
  146. data/cucumber.gemspec +0 -52
  147. data/cucumber.yml +0 -19
  148. data/examples/i18n/README.textile +0 -3
  149. data/examples/i18n/Rakefile +0 -33
  150. data/examples/i18n/ar/Rakefile +0 -6
  151. data/examples/i18n/ar/features/addition.feature +0 -17
  152. data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +0 -24
  153. data/examples/i18n/ar/lib/calculator.rb +0 -11
  154. data/examples/i18n/bg/Rakefile +0 -6
  155. data/examples/i18n/bg/features/addition.feature +0 -12
  156. data/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
  157. data/examples/i18n/bg/features/division.feature +0 -17
  158. data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +0 -24
  159. data/examples/i18n/bg/features/support/env.rb +0 -5
  160. data/examples/i18n/bg/features/support/world.rb +0 -8
  161. data/examples/i18n/bg/lib/calculator.rb +0 -24
  162. data/examples/i18n/ca/Rakefile +0 -6
  163. data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -21
  164. data/examples/i18n/ca/features/suma.feature +0 -17
  165. data/examples/i18n/ca/lib/calculadora.rb +0 -16
  166. data/examples/i18n/cs/Rakefile +0 -6
  167. data/examples/i18n/cs/features/addition.feature +0 -17
  168. data/examples/i18n/cs/features/division.feature +0 -11
  169. data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +0 -24
  170. data/examples/i18n/cs/lib/calculator.rb +0 -14
  171. data/examples/i18n/da/Rakefile +0 -6
  172. data/examples/i18n/da/features/sammenlaegning.feature +0 -18
  173. data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +0 -24
  174. data/examples/i18n/da/lib/lommeregner.rb +0 -11
  175. data/examples/i18n/de/Rakefile +0 -6
  176. data/examples/i18n/de/features/addition.feature +0 -17
  177. data/examples/i18n/de/features/division.feature +0 -10
  178. data/examples/i18n/de/features/step_definitions/calculator_steps.rb +0 -24
  179. data/examples/i18n/de/lib/calculator.rb +0 -14
  180. data/examples/i18n/el/Rakefile +0 -6
  181. data/examples/i18n/el/features/addition.feature +0 -17
  182. data/examples/i18n/el/features/division.feature +0 -10
  183. data/examples/i18n/el/features/step_definitions/calculator_steps.rb +0 -24
  184. data/examples/i18n/el/lib/calculator.rb +0 -14
  185. data/examples/i18n/en-lol/Rakefile +0 -4
  186. data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
  187. data/examples/i18n/en-lol/features/stuffing.feature +0 -8
  188. data/examples/i18n/en-lol/features/support/env.rb +0 -7
  189. data/examples/i18n/en-lol/lib/basket.rb +0 -12
  190. data/examples/i18n/en-lol/lib/belly.rb +0 -11
  191. data/examples/i18n/en/Rakefile +0 -6
  192. data/examples/i18n/en/features/addition.feature +0 -17
  193. data/examples/i18n/en/features/division.feature +0 -10
  194. data/examples/i18n/en/features/step_definitions/calculator_steps.rb +0 -24
  195. data/examples/i18n/en/lib/calculator.rb +0 -14
  196. data/examples/i18n/eo/Rakefile +0 -6
  197. data/examples/i18n/eo/features/adicio.feature +0 -17
  198. data/examples/i18n/eo/features/divido.feature +0 -10
  199. data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +0 -24
  200. data/examples/i18n/eo/lib/calculator.rb +0 -14
  201. data/examples/i18n/es/Rakefile +0 -6
  202. data/examples/i18n/es/features/adicion.feature +0 -17
  203. data/examples/i18n/es/features/step_definitions/calculador_steps.rb +0 -21
  204. data/examples/i18n/es/lib/calculador.rb +0 -14
  205. data/examples/i18n/et/Rakefile +0 -6
  206. data/examples/i18n/et/features/jagamine.feature +0 -10
  207. data/examples/i18n/et/features/liitmine.feature +0 -17
  208. data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -24
  209. data/examples/i18n/et/lib/kalkulaator.rb +0 -14
  210. data/examples/i18n/fi/Rakefile +0 -6
  211. data/examples/i18n/fi/features/jakolasku.feature +0 -10
  212. data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +0 -24
  213. data/examples/i18n/fi/features/yhteenlasku.feature +0 -17
  214. data/examples/i18n/fi/lib/laskin.rb +0 -14
  215. data/examples/i18n/fr/Rakefile +0 -8
  216. data/examples/i18n/fr/features/addition.feature +0 -18
  217. data/examples/i18n/fr/features/addition2.feature +0 -17
  218. data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -32
  219. data/examples/i18n/fr/features/support/env.rb +0 -5
  220. data/examples/i18n/fr/lib/calculatrice.rb +0 -10
  221. data/examples/i18n/he/Rakefile +0 -6
  222. data/examples/i18n/he/features/addition.feature +0 -17
  223. data/examples/i18n/he/features/division.feature +0 -10
  224. data/examples/i18n/he/features/step_definitions/calculator_steps.rb +0 -24
  225. data/examples/i18n/he/lib/calculator.rb +0 -15
  226. data/examples/i18n/hi/Rakefile +0 -6
  227. data/examples/i18n/hi/features/addition.feature +0 -16
  228. data/examples/i18n/hi/features/division.feature +0 -10
  229. data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +0 -24
  230. data/examples/i18n/hi/lib/calculator.rb +0 -15
  231. data/examples/i18n/ht/Rakefile +0 -6
  232. data/examples/i18n/ht/features/adisyon.feature +0 -17
  233. data/examples/i18n/ht/features/divizyon.feature +0 -10
  234. data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +0 -25
  235. data/examples/i18n/ht/lib/kalkilatris.rb +0 -14
  236. data/examples/i18n/hu/Rakefile +0 -6
  237. data/examples/i18n/hu/features/osszeadas.feature +0 -17
  238. data/examples/i18n/hu/features/osztas.feature +0 -10
  239. data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +0 -25
  240. data/examples/i18n/hu/lib/calculator.rb +0 -14
  241. data/examples/i18n/id/Rakefile +0 -6
  242. data/examples/i18n/id/features/addition.feature +0 -17
  243. data/examples/i18n/id/features/division.feature +0 -10
  244. data/examples/i18n/id/features/step_definitions/calculator_steps.rb +0 -24
  245. data/examples/i18n/id/lib/calculator.rb +0 -14
  246. data/examples/i18n/it/Rakefile +0 -6
  247. data/examples/i18n/it/features/somma.feature +0 -11
  248. data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +0 -24
  249. data/examples/i18n/it/lib/calcolatrice.rb +0 -11
  250. data/examples/i18n/ja/Rakefile +0 -6
  251. data/examples/i18n/ja/features/addition.feature +0 -17
  252. data/examples/i18n/ja/features/division.feature +0 -10
  253. data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +0 -19
  254. data/examples/i18n/ja/features/support/env.rb +0 -5
  255. data/examples/i18n/ja/lib/calculator.rb +0 -14
  256. data/examples/i18n/ko/Rakefile +0 -6
  257. data/examples/i18n/ko/features/addition.feature +0 -17
  258. data/examples/i18n/ko/features/division.feature +0 -11
  259. data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +0 -24
  260. data/examples/i18n/ko/lib/calculator.rb +0 -14
  261. data/examples/i18n/lt/Rakefile +0 -6
  262. data/examples/i18n/lt/features/addition.feature +0 -17
  263. data/examples/i18n/lt/features/division.feature +0 -10
  264. data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +0 -24
  265. data/examples/i18n/lt/lib/calculator.rb +0 -14
  266. data/examples/i18n/lv/Rakefile +0 -6
  267. data/examples/i18n/lv/features/addition.feature +0 -17
  268. data/examples/i18n/lv/features/division.feature +0 -10
  269. data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +0 -24
  270. data/examples/i18n/lv/lib/calculator.rb +0 -14
  271. data/examples/i18n/no/Rakefile +0 -6
  272. data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +0 -17
  273. data/examples/i18n/no/features/summering.feature +0 -19
  274. data/examples/i18n/no/features/support/env.rb +0 -6
  275. data/examples/i18n/no/lib/kalkulator.rb +0 -11
  276. data/examples/i18n/pl/Rakefile +0 -6
  277. data/examples/i18n/pl/features/addition.feature +0 -17
  278. data/examples/i18n/pl/features/division.feature +0 -10
  279. data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +0 -24
  280. data/examples/i18n/pl/features/support/env.rb +0 -5
  281. data/examples/i18n/pl/lib/calculator.rb +0 -14
  282. data/examples/i18n/pt/Rakefile +0 -6
  283. data/examples/i18n/pt/features/adicao.feature +0 -11
  284. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
  285. data/examples/i18n/pt/features/support/env.rb +0 -5
  286. data/examples/i18n/pt/lib/calculadora.rb +0 -10
  287. data/examples/i18n/ro/Rakefile +0 -6
  288. data/examples/i18n/ro/features/adunare.feature +0 -12
  289. data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +0 -21
  290. data/examples/i18n/ro/lib/calculator.rb +0 -11
  291. data/examples/i18n/ru/Rakefile +0 -6
  292. data/examples/i18n/ru/features/addition.feature +0 -11
  293. data/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
  294. data/examples/i18n/ru/features/division.feature +0 -16
  295. data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +0 -19
  296. data/examples/i18n/ru/features/support/env.rb +0 -5
  297. data/examples/i18n/ru/features/support/world.rb +0 -8
  298. data/examples/i18n/ru/lib/calculator.rb +0 -24
  299. data/examples/i18n/sk/Rakefile +0 -6
  300. data/examples/i18n/sk/features/addition.feature +0 -17
  301. data/examples/i18n/sk/features/division.feature +0 -10
  302. data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +0 -24
  303. data/examples/i18n/sk/lib/calculator.rb +0 -14
  304. data/examples/i18n/sr-Cyrl/Rakefile +0 -6
  305. data/examples/i18n/sr-Cyrl/features/sabiranje.feature +0 -18
  306. data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +0 -20
  307. data/examples/i18n/sr-Cyrl/features/support/env.rb +0 -5
  308. data/examples/i18n/sr-Cyrl/lib/calculator.rb +0 -12
  309. data/examples/i18n/sr-Latn/Rakefile +0 -6
  310. data/examples/i18n/sr-Latn/features/sabiranje.feature +0 -18
  311. data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +0 -24
  312. data/examples/i18n/sr-Latn/lib/calculator.rb +0 -12
  313. data/examples/i18n/sv/Rakefile +0 -6
  314. data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +0 -24
  315. data/examples/i18n/sv/features/summering.feature +0 -18
  316. data/examples/i18n/sv/lib/kalkulator.rb +0 -11
  317. data/examples/i18n/tr/Rakefile +0 -6
  318. data/examples/i18n/tr/features/bolme.feature +0 -10
  319. data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +0 -24
  320. data/examples/i18n/tr/features/toplama.feature +0 -18
  321. data/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
  322. data/examples/i18n/uk/Rakefile +0 -6
  323. data/examples/i18n/uk/features/addition.feature +0 -11
  324. data/examples/i18n/uk/features/consecutive_calculations.feature +0 -17
  325. data/examples/i18n/uk/features/division.feature +0 -16
  326. data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +0 -19
  327. data/examples/i18n/uk/features/support/env.rb +0 -5
  328. data/examples/i18n/uk/features/support/world.rb +0 -8
  329. data/examples/i18n/uk/lib/calculator.rb +0 -24
  330. data/examples/i18n/uz/Rakefile +0 -6
  331. data/examples/i18n/uz/features/addition.feature +0 -10
  332. data/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
  333. data/examples/i18n/uz/features/division.feature +0 -17
  334. data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +0 -19
  335. data/examples/i18n/uz/features/support/env.rb +0 -5
  336. data/examples/i18n/uz/features/support/world.rb +0 -8
  337. data/examples/i18n/uz/lib/calculator.rb +0 -24
  338. data/examples/i18n/zh-CN/Rakefile +0 -4
  339. data/examples/i18n/zh-CN/features/addition.feature +0 -18
  340. data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +0 -26
  341. data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
  342. data/examples/i18n/zh-TW/Rakefile +0 -4
  343. data/examples/i18n/zh-TW/features/addition.feature +0 -17
  344. data/examples/i18n/zh-TW/features/division.feature +0 -11
  345. data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +0 -24
  346. data/examples/i18n/zh-TW/lib/calculator.rb +0 -14
  347. data/examples/rspec_doubles/Rakefile +0 -4
  348. data/examples/rspec_doubles/features/mocking.feature +0 -9
  349. data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +0 -19
  350. data/examples/rspec_doubles/features/support/env.rb +0 -12
  351. data/examples/sinatra/README.textile +0 -13
  352. data/examples/sinatra/Rakefile +0 -6
  353. data/examples/sinatra/app.rb +0 -14
  354. data/examples/sinatra/features/add.feature +0 -11
  355. data/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
  356. data/examples/sinatra/features/support/env.rb +0 -10
  357. data/examples/sinatra/views/add.erb +0 -7
  358. data/examples/sinatra/views/layout.erb +0 -8
  359. data/examples/tcl/README.textile +0 -11
  360. data/examples/tcl/Rakefile +0 -6
  361. data/examples/tcl/features/fibonnacci.feature +0 -17
  362. data/examples/tcl/features/step_definitions/fib_steps.rb +0 -7
  363. data/examples/tcl/features/support/env.rb +0 -6
  364. data/examples/tcl/src/fib.tcl +0 -3
  365. data/examples/test_unit/Gemfile +0 -4
  366. data/examples/test_unit/Rakefile +0 -6
  367. data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -20
  368. data/examples/test_unit/features/test_unit.feature +0 -9
  369. data/examples/watir/README.textile +0 -16
  370. data/examples/watir/Rakefile +0 -12
  371. data/examples/watir/cucumber.yml +0 -1
  372. data/examples/watir/features/search.feature +0 -12
  373. data/examples/watir/features/step_definitions/search_steps.rb +0 -26
  374. data/examples/watir/features/support/env.rb +0 -35
  375. data/examples/watir/features/support/screenshots.rb +0 -47
  376. data/features/docs/api/list_step_defs_as_json.feature +0 -64
  377. data/features/docs/api/listen_for_events.feature +0 -59
  378. data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -27
  379. data/features/docs/cli/backtraces.feature +0 -36
  380. data/features/docs/cli/dry_run.feature +0 -73
  381. data/features/docs/cli/exclude_files.feature +0 -18
  382. data/features/docs/cli/execute_with_tag_filter.feature +0 -117
  383. data/features/docs/cli/fail_fast.feature +0 -48
  384. data/features/docs/cli/finding_steps.feature +0 -28
  385. data/features/docs/cli/help.feature +0 -8
  386. data/features/docs/cli/i18n.feature +0 -42
  387. data/features/docs/cli/randomize.feature +0 -140
  388. data/features/docs/cli/require.feature +0 -27
  389. data/features/docs/cli/retry_failing_tests.feature +0 -92
  390. data/features/docs/cli/run_scenarios_matching_name.feature +0 -105
  391. data/features/docs/cli/run_specific_scenarios.feature +0 -77
  392. data/features/docs/cli/showing_differences.feature +0 -43
  393. data/features/docs/cli/specifying_multiple_formatters.feature +0 -68
  394. data/features/docs/cli/strict_mode.feature +0 -70
  395. data/features/docs/defining_steps/nested_steps.feature +0 -181
  396. data/features/docs/defining_steps/nested_steps_i18n.feature +0 -37
  397. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -56
  398. data/features/docs/defining_steps/one_line_step_definitions.feature +0 -65
  399. data/features/docs/defining_steps/printing_messages.feature +0 -147
  400. data/features/docs/defining_steps/skip_scenario.feature +0 -31
  401. data/features/docs/defining_steps/snippets.feature +0 -56
  402. data/features/docs/defining_steps/table_diffing.feature +0 -50
  403. data/features/docs/events/gherkin_source_read_event.feature +0 -43
  404. data/features/docs/events/step_activated_event.feature +0 -36
  405. data/features/docs/events/step_definition_registered_event.feature +0 -29
  406. data/features/docs/events/test_case_finished_event.feature +0 -35
  407. data/features/docs/events/test_case_starting_event.feature +0 -54
  408. data/features/docs/events/test_run_finished_event.feature +0 -40
  409. data/features/docs/events/test_run_starting_event.feature +0 -41
  410. data/features/docs/events/test_step_finished_event.feature +0 -47
  411. data/features/docs/events/test_step_starting_event.feature +0 -43
  412. data/features/docs/exception_in_after_hook.feature +0 -127
  413. data/features/docs/exception_in_after_step_hook.feature +0 -104
  414. data/features/docs/exception_in_around_hook.feature +0 -80
  415. data/features/docs/exception_in_before_hook.feature +0 -98
  416. data/features/docs/extending_cucumber/custom_filter.feature +0 -29
  417. data/features/docs/extending_cucumber/custom_formatter.feature +0 -122
  418. data/features/docs/formatters/api_methods.feature +0 -37
  419. data/features/docs/formatters/formatter_step_file_colon_line.feature +0 -44
  420. data/features/docs/formatters/html_formatter.feature +0 -91
  421. data/features/docs/formatters/json_formatter.feature +0 -767
  422. data/features/docs/formatters/junit_formatter.feature +0 -455
  423. data/features/docs/formatters/pretty_formatter.feature +0 -74
  424. data/features/docs/formatters/progress_formatter.feature +0 -32
  425. data/features/docs/formatters/rerun_formatter.feature +0 -190
  426. data/features/docs/formatters/summary_formatter.feature +0 -35
  427. data/features/docs/formatters/usage_formatter.feature +0 -101
  428. data/features/docs/getting_started.feature +0 -28
  429. data/features/docs/gherkin/background.feature +0 -548
  430. data/features/docs/gherkin/doc_strings.feature +0 -76
  431. data/features/docs/gherkin/expand_option_for_outlines.feature +0 -47
  432. data/features/docs/gherkin/language_from_header.feature +0 -32
  433. data/features/docs/gherkin/outlines.feature +0 -160
  434. data/features/docs/gherkin/unicode_table.feature +0 -33
  435. data/features/docs/gherkin/using_descriptions.feature +0 -83
  436. data/features/docs/gherkin/using_star_notation.feature +0 -37
  437. data/features/docs/iso-8859-1.feature +0 -6
  438. data/features/docs/post_configuration_hook.feature +0 -33
  439. data/features/docs/profiles.feature +0 -120
  440. data/features/docs/rake_task.feature +0 -146
  441. data/features/docs/raketask.feature +0 -46
  442. data/features/docs/work_in_progress.feature +0 -157
  443. data/features/docs/writing_support_code/after_hooks.feature +0 -102
  444. data/features/docs/writing_support_code/after_step_hooks.feature +0 -55
  445. data/features/docs/writing_support_code/around_hooks.feature +0 -266
  446. data/features/docs/writing_support_code/before_hook.feature +0 -66
  447. data/features/docs/writing_support_code/hook_order.feature +0 -63
  448. data/features/docs/writing_support_code/load_path.feature +0 -17
  449. data/features/docs/writing_support_code/parameter_types.feature +0 -75
  450. data/features/docs/writing_support_code/state.feature +0 -32
  451. data/features/docs/writing_support_code/tagged_hooks.feature +0 -95
  452. data/features/docs/writing_support_code/world.feature +0 -129
  453. data/features/lib/step_definitions/aruba_steps.rb +0 -21
  454. data/features/lib/step_definitions/cli_steps.rb +0 -4
  455. data/features/lib/step_definitions/cucumber_steps.rb +0 -75
  456. data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -13
  457. data/features/lib/step_definitions/json_steps.rb +0 -8
  458. data/features/lib/step_definitions/junit_steps.rb +0 -14
  459. data/features/lib/step_definitions/language_steps.rb +0 -9
  460. data/features/lib/step_definitions/profile_steps.rb +0 -16
  461. data/features/lib/step_definitions/retry_steps.rb +0 -55
  462. data/features/lib/step_definitions/ruby_steps.rb +0 -4
  463. data/features/lib/support/env.rb +0 -22
  464. data/features/lib/support/fake_wire_server.rb +0 -86
  465. data/features/lib/support/feature_factory.rb +0 -68
  466. data/features/lib/support/normalise_output.rb +0 -52
  467. data/features/lib/support/parameter_types.rb +0 -8
  468. data/gem_tasks/contributors.rake +0 -19
  469. data/gem_tasks/cov.rake +0 -6
  470. data/gem_tasks/downloads.rb +0 -8
  471. data/gem_tasks/environment.rake +0 -4
  472. data/gem_tasks/examples.rake +0 -12
  473. data/gem_tasks/fix_cr_lf.rake +0 -11
  474. data/gem_tasks/flog.rake +0 -5
  475. data/gem_tasks/rspec.rake +0 -7
  476. data/gem_tasks/sass.rake +0 -5
  477. data/gem_tasks/stats +0 -16
  478. data/gem_tasks/versions.txt +0 -74
  479. data/lib/cucumber/formatter/cucumber.css +0 -286
  480. data/lib/cucumber/formatter/cucumber.sass +0 -247
  481. data/lib/cucumber/formatter/hook_query_visitor.rb +0 -41
  482. data/lib/cucumber/formatter/html_builder.rb +0 -110
  483. data/lib/cucumber/formatter/inline-js.js +0 -30
  484. data/lib/cucumber/formatter/jquery-min.js +0 -154
  485. data/lib/cucumber/formatter/json_pretty.rb +0 -11
  486. data/lib/cucumber/formatter/legacy_api/adapter.rb +0 -1012
  487. data/lib/cucumber/formatter/legacy_api/ast.rb +0 -386
  488. data/lib/cucumber/formatter/legacy_api/results.rb +0 -50
  489. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +0 -32
  490. data/lib/cucumber/step_argument.rb +0 -24
  491. data/scripts/invite-collaborator +0 -40
  492. data/scripts/update-history +0 -83
  493. data/spec/cucumber/cli/configuration_spec.rb +0 -434
  494. data/spec/cucumber/cli/main_spec.rb +0 -84
  495. data/spec/cucumber/cli/options_spec.rb +0 -445
  496. data/spec/cucumber/cli/profile_loader_spec.rb +0 -66
  497. data/spec/cucumber/cli/rerun_spec.rb +0 -86
  498. data/spec/cucumber/configuration_spec.rb +0 -148
  499. data/spec/cucumber/constantize_spec.rb +0 -20
  500. data/spec/cucumber/events_spec.rb +0 -9
  501. data/spec/cucumber/file_specs_spec.rb +0 -61
  502. data/spec/cucumber/filters/activate_steps_spec.rb +0 -152
  503. data/spec/cucumber/filters/gated_receiver_spec.rb +0 -48
  504. data/spec/cucumber/filters/retry_spec.rb +0 -98
  505. data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +0 -39
  506. data/spec/cucumber/filters/tag_limits/verifier_spec.rb +0 -58
  507. data/spec/cucumber/filters/tag_limits_spec.rb +0 -60
  508. data/spec/cucumber/formatter/ansicolor_spec.rb +0 -33
  509. data/spec/cucumber/formatter/backtrace_filter_spec.rb +0 -32
  510. data/spec/cucumber/formatter/console_counts_spec.rb +0 -14
  511. data/spec/cucumber/formatter/duration_spec.rb +0 -23
  512. data/spec/cucumber/formatter/fail_fast_spec.rb +0 -88
  513. data/spec/cucumber/formatter/html_spec.rb +0 -543
  514. data/spec/cucumber/formatter/interceptor_spec.rb +0 -137
  515. data/spec/cucumber/formatter/json_spec.rb +0 -840
  516. data/spec/cucumber/formatter/junit_spec.rb +0 -251
  517. data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2187
  518. data/spec/cucumber/formatter/pretty_spec.rb +0 -920
  519. data/spec/cucumber/formatter/progress_spec.rb +0 -170
  520. data/spec/cucumber/formatter/rerun_spec.rb +0 -97
  521. data/spec/cucumber/formatter/spec_helper.rb +0 -84
  522. data/spec/cucumber/glue/proto_world_spec.rb +0 -63
  523. data/spec/cucumber/glue/registry_and_more_spec.rb +0 -213
  524. data/spec/cucumber/glue/snippet_spec.rb +0 -174
  525. data/spec/cucumber/glue/step_definition_spec.rb +0 -207
  526. data/spec/cucumber/hooks_spec.rb +0 -31
  527. data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -648
  528. data/spec/cucumber/project_initializer_spec.rb +0 -88
  529. data/spec/cucumber/rake/forked_spec.rb +0 -54
  530. data/spec/cucumber/rake/task_spec.rb +0 -86
  531. data/spec/cucumber/running_test_case_spec.rb +0 -140
  532. data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -8
  533. data/spec/cucumber/runtime/support_code_spec.rb +0 -17
  534. data/spec/cucumber/runtime_spec.rb +0 -21
  535. data/spec/cucumber/sell_cucumbers.feature +0 -19
  536. data/spec/cucumber/step_argument_spec.rb +0 -19
  537. data/spec/cucumber/step_match_search_spec.rb +0 -113
  538. data/spec/cucumber/step_match_spec.rb +0 -86
  539. data/spec/cucumber/world/pending_spec.rb +0 -48
  540. data/spec/spec_helper.rb +0 -30
  541. data/spec/support/standard_step_actions.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a5726ed71d8a00221ac4b3b7fc15da681ea138a6
4
- data.tar.gz: 2479723768c4452ef329c47cb63971e1632adae6
2
+ SHA256:
3
+ metadata.gz: 388c05be14607a5aaa4acaef66d2bb5f6dab1258bc3e785e71a077fae3d366a7
4
+ data.tar.gz: 2546749fa602b12b756e0dee45ff756fc89507329504b94f633b39cd5692464e
5
5
  SHA512:
6
- metadata.gz: c963597cfb7056f8240bc532c9712e32fbb61a00a62ddda19bacb86a7ffbaa900b3253b8e7f54317272519df0480e9da3056b6fc9d4f1364b5f487bea564d2fb
7
- data.tar.gz: ac436dc31a3e6ba2ef71745a529c70d90160c586fb190a8aedc2e829ea79f3a610621aab0704985951492e032bbacce6a35638d712d12665eea5a678b1a8e76f
6
+ metadata.gz: ed762cc475552e7698cf9ebae51b00366f88f000fcbbbd9697bfa1056a2ec7a7a9d49bb946e0f785d8c1d435da443bd2cca834a2309a11403836dc11f93de169
7
+ data.tar.gz: 112fb462eb9a3bdb1056c3ad32670ad1160ad0f40a6b804bc09b5e948443073df55a8b6c2818c0cb8f7794623b8e71f04d913a1559bb0b69536cc7bf7634873c
@@ -1,11 +1,265 @@
1
- ## [In Git](https://github.com/cucumber/cucumber-ruby/compare/v3.0.0.pre.2...master)
1
+ # CHANGE LOG
2
2
 
3
- ### Breaking changes
4
- ### New Features
5
- ### Bugfixes
6
- ### Refactoring / Developer Experience
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ This project adheres to [Semantic Versioning](http://semver.org).
6
+
7
+ This document is formatted according to the principles of [Keep A CHANGELOG](http://keepachangelog.com).
8
+
9
+ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) for more info on how to contribute to Cucumber.
10
+
11
+ ----
12
+ ## [4.0.0.rc.5](https://github.com/cucumber/cucumber-ruby/compare/v4.0.0.rc.4...4.0.0.rc.5)
13
+
14
+ ### Added
15
+
16
+ * New html formatter enabled by option `--format html --out report.html`.
17
+
18
+ * Accept `--out URL` to POST results to a web server
19
+ If a URL is used as output, the output will be sent with a POST request.
20
+ This can be overridden by specifying e.g. `http-method=PUT` as a query parameter.
21
+ Other `http-` prefixed query parameters will be converted to request headers
22
+ (with the `http-` prefix stripped off).
23
+
24
+
25
+ ## [4.0.0.rc.4](https://github.com/cucumber/cucumber-ruby/compare/v4.0.0.rc.3...4.0.0.rc.4)
26
+
27
+ ### Added
28
+
29
+ * Add `message`formatter which produces `Cucumber::Messages` ndjson output.
30
+ * Comply with [`cucumber-compatibility-kit](https://github.com/cucumber/cucumber/tree/master/compatibility-kit)
31
+ * Methods `log` and `attach` can be used in step definitions to attach text or images
32
+
33
+ ### Deprecated
34
+
35
+ * `--format=json` in favor of the `message` formatter and the stand-alone JSON formatter
36
+ * `puts` in step definitions in favor of `log` ([cucumber#897](https://github.com/cucumber/cucumber/issues/897))
37
+ * `embed` in step definitions in favor of `attach` ([cucumber#897](https://github.com/cucumber/cucumber/issues/897))
38
+
39
+
40
+ ## [4.0.0.rc.3](https://github.com/cucumber/cucumber-ruby/compare/v4.0.0.rc.2...v4.0.0.rc.3)
41
+
42
+ ### Changed
43
+
44
+ * Update to cucumber-wire 1.1.
45
+
46
+
47
+ ## [4.0.0.rc.2](https://github.com/cucumber/cucumber-ruby/compare/v4.0.0.rc.1...v4.0.0.rc.2)
48
+
49
+ ### Added
50
+ * There is a new methodology in Cucumber for how the auto-loader works
51
+ * The old `load` behaviour is now replaced with a newer `require` behaviour
52
+ * Cucumber will (From version 4), now auto-load files using the `require` method
53
+ * If you wish to alter this, then you can set a top level config option: `Cucumber.use_legacy_autoloader`
54
+ * Like most config options, setting this inside a `spec_helper.rb` or `env.rb` file is advised
55
+ * For more information on this change, including why it was made. Please read this
56
+ [Blog Post](www.google.com)
57
+ ([#1349](https://github.com/cucumber/cucumber-ruby/pull/1349),
58
+ [#1043](https://github.com/cucumber/cucumber-ruby/issues/1043)
59
+ [luke-hill](https://github.com/luke-hill))
60
+
61
+ ### Changed
62
+ * Going forward the minimum ruby version for all cucumber based gems is 2.3
63
+ ([luke-hill](https://github.com/luke-hill))
64
+
65
+ ### Removed
66
+ * Removed Travis publish job for cucumber-pro(a.k.a. jam)
67
+ ([#1350](https://github.com/cucumber/cucumber-ruby/pull/1350)
68
+ [luke-hill](https://github.com/luke-hill))
69
+
70
+ * Drop support for JRuby. We may add this back if new versions of protobuf for JRuby
71
+ start working, or if someone can make the build pass with an older version.
72
+ All this means is we're ok to make releases while the jruby CI job is failing.
73
+
74
+ ([aslakhellesoy](https://github.com/aslakhellesoy))
75
+
76
+ * Remove `dots-formatter introduced in `4.0.0rc1`
77
+
78
+ ### Fixed
79
+
80
+ * Fix the placeholder expansions in the json formatter
81
+ ([#1361](https://github.com/cucumber/cucumber-ruby/pull/1361)
82
+ [brasmusson](https://github.com/brasmusson))
83
+ * Fix seed printed in cucumber UI to match the seed that was actually used.
84
+ ([#1329](https://github.com/cucumber/cucumber-ruby/pull/1329)
85
+ [deivid-rodriguez](https://github.com/deivid-rodriguez))
86
+ * Make SIGINT/`Ctrl+c` behavior consistent with SIGTERM/`kill` behavior - now first invocation causes existing scenario to stop running and jump to `at_exit`, second invocation causes immediate exit. Before that first invocation only instructed Cucumber to exit after scenario and second invocation caused immediate exit skipping `at_exit`.
87
+ ([#1353](https://github.com/cucumber/cucumber-ruby/pull/1353)
88
+ [akostadinov](https://github.com/akostadinov))
89
+
90
+ ### Improved
91
+
92
+ * Filter out any lines containing `site_ruby` from stacktrace
93
+
94
+ ## [4.0.0.rc.1](https://github.com/cucumber/cucumber-ruby/compare/v3.1.2...v4.0.0.rc.1) (2018-09-29)
95
+
96
+ ### Added
97
+
98
+ * Added support for new `Rule` keyword. [Read more here.](https://github.com/cucumber/cucumber/blob/master/gherkin/CHANGELOG.md#6013---2018-09-25)
99
+ * Added new `dots` formatter. This is the first step of a larger strategy to move the formatters to a new architecture where they delegate to shared executables via messages.
100
+
101
+ ### Changed
102
+
103
+ * Use Gherkin v6.
104
+ ([#1313](https://github.com/cucumber/cucumber-ruby/pull/1313)
105
+ [brasmusson](https://github.com/brasmusson))
106
+ * Do not apply Before and After Hooks to Test Cases with no Test Steps.
107
+ ([#1311](https://github.com/cucumber/cucumber-ruby/pull/1311)
108
+ [brasmusson](https://github.com/brasmusson))
109
+ * Pass the registry to the Wire plugin.
110
+ ([#1309](https://github.com/cucumber/cucumber-ruby/pull/1309)
111
+ [brasmusson](https://github.com/brasmusson))
112
+ * Adapt to using the Gherkin compiler and Pickles in the core.
113
+ ([#1309](https://github.com/cucumber/cucumber-ruby/pull/1309)
114
+ [brasmusson](https://github.com/brasmusson))
115
+ * Let the Pretty Formatter use events.
116
+ ([#1305](https://github.com/cucumber/cucumber-ruby/pull/1305)
117
+ [brasmusson](https://github.com/brasmusson))
118
+ * Use single quotes in generated template steps ([#1323](https://github.com/cucumber/cucumber-ruby/pull/1323) [acant](https://github.com/acant))
119
+
120
+ ### Removed
121
+
122
+ * Remove the support of old style tag expressions.
123
+ ([#1314](https://github.com/cucumber/cucumber-ruby/pull/1314),
124
+ [brasmusson](https://github.com/brasmusson))
125
+ * Remove the Legacy API for Formatters.
126
+ ([#1230](https://github.com/cucumber/cucumber-ruby/pull/1230),
127
+ [#839](https://github.com/cucumber/cucumber-ruby/issues/839)
128
+ [brasmusson](https://github.com/brasmusson))
129
+ * Remove the JSON Pretty Formatter (which was the same as the JSON formatter).
130
+ ([brasmusson](https://github.com/brasmusson))
131
+ * Remove the HTML Formatter.
132
+ ([#1306](https://github.com/cucumber/cucumber-ruby/pull/1306)
133
+ [brasmusson](https://github.com/brasmusson))
134
+
135
+ ### Fixed
136
+
137
+ * Wire protocol compatibility for docstrings.
138
+ ([#1183](https://github.com/cucumber/cucumber-ruby/issues/1183))
139
+ * Let the Rerun Formatter handle flaky scenarios.
140
+ ([#1310](https://github.com/cucumber/cucumber-ruby/pull/1310)
141
+ [brasmusson](https://github.com/brasmusson))
142
+
143
+ ### Improved
144
+
145
+ * Code style changes completed as per backlog of Rubocop TODO file. ([#1021](https://github.com/cucumber/cucumber-ruby/issues/1021) [@jaysonesmith](https://github.com/jaysonesmith))
146
+
147
+ ## [3.1.2](https://github.com/cucumber/cucumber-ruby/compare/v3.1.1...v3.1.2) (2018-07-13)
148
+
149
+ ### Changed
150
+
151
+ * Upgraded to `cucumber-core` 3.2.0
152
+ * Change to use the gherkin step location in the Json formatter.
153
+ ([#1243](https://github.com/cucumber/cucumber-ruby/pull/1243),
154
+ [#1108](https://github.com/cucumber/cucumber-ruby/issues/1108)
155
+ [brasmusson](https://github.com/brasmusson))
156
+
157
+ ### Fixed
158
+
159
+ * Support ParameterType with empty capture group.
160
+ ([#404](https://github.com/cucumber/cucumber/issues/404)
161
+ [aslakhellesoy](https://github.com/aslakhellesoy))
162
+
163
+ ## [3.1.1](https://github.com/cucumber/cucumber-ruby/compare/v3.1.0...v3.1.1) (2018-06-03)
164
+
165
+ ### Added
166
+
167
+ * N/A
168
+
169
+ ### Changed
170
+
171
+ * Add Rubocop to default Rake task ([#1256](https://github.com/cucumber/cucumber-ruby/pull/1256) [@jaysonesmith](https://github.com/jaysonesmith))
172
+ * Upgraded `cucumber-expressions` dependency to ~> 6.0.0 ([#1299](https://github.com/cucumber/cucumber-ruby/pull/1299) [@aslakhellesoy](https://github.com/aslakhellesoy))
173
+ * Upgraded to `gherkin` 5.1.0 ([#1299](https://github.com/cucumber/cucumber-ruby/pull/1299) [@aslakhellesoy](https://github.com/aslakhellesoy))
174
+
175
+ ### Deprecated
176
+
177
+ * N/A
178
+
179
+ ### Removed
180
+
181
+ * N/A
182
+
183
+ ### Fixed
184
+
185
+ * Make `--fail-fast` play nice with `--retry` ([#1283](https://github.com/cucumber/cucumber-ruby/pull/1283) [@yrral86](https://github.com/yrral86))
186
+ * Fix incompatible encodings error in JUnit formatter ([#1244](https://github.com/cucumber/cucumber-ruby/pull/1244) [@NickAb](https://github.com/NickAb)) (except on JRuby, see [#1259](https://github.com/cucumber/cucumber-ruby/pull/1259))
187
+ * Fix the handling of failed hooks in the JUnit Formatter ([@brasmusson](https://github.com/brasmusson))
188
+ * Fixed lengthy stacktrace when running `cucumber -f stepdefs` when steps aren't defined. ([#1286](https://github.com/cucumber/cucumber-ruby/pull/1286) [@xtrasimplicity](https://github.com/xtrasimplicity))
189
+ * Fixed an error with HTML snippet generation when `frozen_string_literal` is enabled and the `Syntax` gem is not installed. ([#1287](https://github.com/cucumber/cucumber-ruby/pull/1287) [@xtrasimplicity](https://github.com/xtrasimplicity))
190
+
191
+ ### Improved
192
+
193
+ * N/A
194
+
195
+ ## [3.1.0](https://github.com/cucumber/cucumber-ruby/compare/v3.0.2...v3.1.0) (2017-11-28)
196
+
197
+ ### Added
198
+
199
+ * ParameterType transformer runs in World
200
+ ([#1213](https://github.com/cucumber/cucumber-ruby/pull/1213)
201
+ [@aslakhellesoy](https://github.com/aslakhellesoy))
202
+
203
+ ### Changed
204
+
205
+ * Upgraded to `cucumber-expressions` 5.0.4
206
+ * Upgraded to `cucumber-tag_expressions` 1.1.0
207
+ * Upgraded to `gherkin` 5.0.0
208
+
209
+ ### Fixed
210
+
211
+ * Fix the handling of failed hooks in the JUnit Formatter ([@brasmusson](https://github.com/brasmusson))
212
+
213
+ ## [3.0.2](https://github.com/cucumber/cucumber-ruby/compare/v3.0.1...v3.0.2) (2017-11-11)
214
+
215
+ ### Removed
216
+
217
+ * Cucumber is no longer tested on Ruby 2.1 and below.
218
+
219
+ ### Fixed
220
+
221
+ * Fix html reporter with more than one embedded screenshot ([#1216](https://github.com/cucumber/cucumber-ruby/pull/1216) [@nonkor](https://github.com/nonkor))
222
+ * Change test expectation to handle Ruby's unstable sorting ([#1210](https://github.com/cucumber/cucumber-ruby/pull/1210) [@jaysonesmith](https://github.com/jaysonesmith))
223
+ * Fix the printing of newlines in the rerun formatter - a problem introduced in [#1162](https://github.com/cucumber/cucumber-ruby/issues/1162) ([#1207](https://github.com/cucumber/cucumber-ruby/issues/1207) [@brasmusson](https://github.com/brasmusson))
224
+ * Handle the `--retry` option in profiles ([#1050](https://github.com/cucumber/cucumber-ruby/issues/1050) [@brasmusson](https://github.com/brasmusson))
225
+
226
+ ## [3.0.1](https://github.com/cucumber/cucumber-ruby/compare/v3.0.0...3.0.1) (2017-09-29)
227
+
228
+ ### Fixed
229
+
230
+ * `ParameterType` can now override `use_for_snippets` and `prefer_for_regexp_match` without throwing an error. ([@aslakhellesoy](https://github.com/aslakhellesoy))
231
+ * Gemspec has `required_ruby_version = '>= 2.1'` ([@aslakhellesoy](https://github.com/aslakhellesoy))
232
+
233
+ ## [3.0.0](https://github.com/cucumber/cucumber-ruby/compare/v3.0.0.pre.2...v3.0.0) (2017-09-27)
234
+
235
+ ### Changed
236
+
237
+ * Regexp capture groups with `(\d+)` are automatically converted to `Integer`
238
+ * Rename `Step#name` to `#text` ([#1130](https://github.com/cucumber/cucumber-ruby/pull/1130) [@olleolleolle](https://github.com/olleolleolle))
239
+ * `Transform` has been removed and replaced with `ParameterType`. See [upgrading instructions](https://cucumber.io/blog/2017/09/21/upgrading-to-cucumber-3). ([#1190](https://github.com/cucumber/cucumber-ruby/issues/1190) @aslakhellesoy)
240
+ * Nested capture groups are not counted as parameters. See [upgrading instructions](https://cucumber.io/blog/2017/09/21/upgrading-to-cucumber-3). (@aslakhellesoy)
241
+
242
+ ### Added
243
+
244
+ * Handle selective strict options. ([#1169](https://github.com/cucumber/cucumber-ruby/pull/1169), [#1160](https://github.com/cucumber/cucumber-ruby/issues/1160) @brasmusson)
245
+
246
+ ### Fixed
247
+
248
+ * Use absolute path in IO formatter to prevent `chdir` issues. ([#1111](https://github.com/cucumber/cucumber-ruby/pull/1111/files) @akostadinov)
249
+
250
+ * Fix bug in DataTable#symbolic_hashes ([#1200](https://github.com/cucumber/cucumber-ruby/pull/1200) @Ben-Behar)
251
+
252
+ * Fix typo in JSON formatter ([#1196](https://github.com/cucumber/cucumber-ruby/pull/1196) @alb-i986)
253
+
254
+ * Handle ambiguous steps as failed steps, when not using `--guess` ([#1132](https://github.com/cucumber/cucumber-ruby/pull/1132), [#1113](https://github.com/cucumber/cucumber-ruby/issues/1113) @MadameSheema, @enkessler, @brasmusson)
255
+
256
+ ### Improved
257
+
258
+ * Refactor: Extract HTMLBuilder#string_to_embed method to DRY up code ([#1187](https://github.com/cucumber/cucumber-ruby/pulls/1187) [@danascheider](https://github.com/danascheider))
259
+ * As per [#251](https://github.com/cucumber/cucumber/issues/251): renamed History.md to CHANGELOG.md, added contributing message at beginning, and misc formatting. ([#1185](https://github.com/cucumber/cucumber-ruby/issues/1185) [jaysonesmith](https://github.com/jaysonesmith))
260
+ * Use past tense in event names (`xStarting` -> `xStarted`) ([#1166](https://github.com/cucumber/cucumber-ruby/issues/1166) @brasmusson).
7
261
 
8
- ## [3.0.0.pre.1](https://github.com/cucumber/cucumber-ruby/compare/v2.4.0...v3.0.0.pre.2)
262
+ ## [3.0.0.pre.2](https://github.com/cucumber/cucumber-ruby/compare/v2.4.0...v3.0.0.pre.2)
9
263
 
10
264
  ### Breaking changes
11
265
 
@@ -29,8 +283,7 @@
29
283
 
30
284
  ### Bugfixes
31
285
 
32
- * Fix the profile loader on Windows ([#1133(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1133) @enkessler)
33
- * Fix incorrect `DataTable#diff!` results ([#1102](https://github.com/cucumber/cucumber-ruby/pulls/1102) @)
286
+ * Fix the profile loader on Windows ([#1133](https://github.com/cucumber/cucumber-ruby/pulls/1133) @enkessler)
34
287
  * Fix incorrect `DataTable#diff!` results ([#1102](https://github.com/cucumber/cucumber-ruby/pulls/1102) @botandrose)
35
288
  * Do not apply the hooks to the test case several times when using the retry option ([#1098](https://github.com/cucumber/cucumber-ruby/issues/1098) @brasmusson)
36
289
  * Fix bug in comparing empty data tables ([#1097](https://github.com/cucumber/cucumber-ruby/pulls/1097), resolves [#1096](https://github.com/cucumber/cucumber-ruby/issues/1096))
@@ -44,11 +297,11 @@
44
297
 
45
298
  ### Refactoring / Developer Experience
46
299
 
47
- * Spec: Events.registry exercised ([#1126(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1126) @olleolleolle)
48
- * Remove programming language abstraction ([#1131(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1131) @tooky, @mattwynne)
49
- * Update cucumber yaml to use new tag syntax ([#1147(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1147) @danascheider)
50
- * Turn off Windows failures ([#1142(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1142) @enkessler)
51
- * Add script to update history.md ([#1141(https://api.github.com/repos/cucumber/cucumber-ruby/pulls/1141) @mattwynne)
300
+ * Spec: Events.registry exercised ([#1126](https://github.com/cucumber/cucumber-ruby/pulls/1126) @olleolleolle)
301
+ * Remove programming language abstraction ([#1131](https://github.com/cucumber/cucumber-ruby/pulls/1131) @tooky, @mattwynne)
302
+ * Update cucumber yaml to use new tag syntax ([#1147](https://github.com/cucumber/cucumber-ruby/pulls/1147) @danascheider)
303
+ * Turn off Windows failures ([#1142](https://github.com/cucumber/cucumber-ruby/pulls/1142) @enkessler)
304
+ * Add script to update history.md ([#1141](https://github.com/cucumber/cucumber-ruby/pulls/1141) @mattwynne)
52
305
  * Update Ruby 2.3 and 2.4 in .travis.yml ([#1100](https://github.com/cucumber/cucumber-ruby/pull/1100) @junaruga)
53
306
  * Fixes for rubocop violations ([#1095](https://github.com/cucumber/cucumber-ruby/pull/1095) @bv)
54
307
  * Fixes for rubocop violations ([#1042](https://github.com/cucumber/cucumber-ruby/pull/1042) @phoebeclarke)
@@ -488,7 +741,7 @@ all.
488
741
  * Upgrade Gherkin version to remove warnings when running on JRuby. ([#393](https://github.com/cucumber/cucumber-ruby/issues/393) Oleg Sukhodolsky)
489
742
  * Do not use TagExpression.eval() which is deprecated in Gherkin 2.11.7 ([#420](https://github.com/cucumber/cucumber-ruby/issues/420) Oleg Sukhodolsky)
490
743
 
491
- ## 1.2.4
744
+ ## 1.2.4
492
745
 
493
746
  Yanked. See ([#428](https://github.com/cucumber/cucumber-ruby/issues/428)).
494
747
 
@@ -55,34 +55,17 @@ gem 'byebug'
55
55
  If you are new to the project or to OSS, check the label
56
56
  [Easy](https://github.com/cucumber/cucumber-ruby/labels/Easy). Also, you can
57
57
  help us to correct style violations reported here:
58
- [.rubocop_todo.yaml](https://github.com/cucumber/cucumber-ruby/blob/master/.rubocop_todo.yml).
58
+ [.rubocop_todo.yml](https://github.com/cucumber/cucumber-ruby/blob/master/.rubocop_todo.yml).
59
59
 
60
60
  ## Release Process
61
61
 
62
- * Bump the version number in `lib/cucumber/platform.rb`.
63
- * Make sure `History.md` is updated with the upcoming version number, and has entries for all fixes.
64
- * No need to add a `History.md` header at this point - this should be done when a new change is made, later.
65
- * Make sure you have up-to-date and clean copy of cucumber/cucumber.github.com.git at the same level as cucumber repo.
62
+ * Bump the version number in `lib/cucumber/version`.
63
+ * Make sure `CHANGELOG.md` is updated with the upcoming version number, and has entries for all fixes.
66
64
 
67
65
  Now release it
68
66
 
69
67
  bundle update
70
68
  bundle exec rake
71
69
  git commit -m "Release X.Y.Z"
70
+ # Make sure you run gem signin as the cukebot@cucumber.io user before running the following step. Credentials can be found in 1Password
72
71
  rake release
73
-
74
- ## Gaining Release Karma
75
-
76
- To become a release manager, create a pull request adding your name to the list below, and include your Rubygems email address in the ticket. One of the existing Release managers will then add you.
77
-
78
- Current release managers:
79
- * [Matt Wynne](https://rubygems.org/profiles/mattwynne)
80
- * [Aslak Hellesøy](https://rubygems.org/profiles/aslakhellesoy)
81
- * [Oleg Sukhodolsky](https://rubygems.org/profiles/os97673)
82
- * [Steve Tooke](https://rubygems.org/profiles/tooky)
83
- * [Björn Rasmusson](https://rubygems.org/profiles/brasmusson)
84
-
85
- To grant release karma, issue the following commands:
86
-
87
- gem owner cucumber --add <NEW OWNER RUBYGEMS EMAIL>
88
- gem owner cucumber-core --add <NEW OWNER RUBYGEMS EMAIL>
data/README.md CHANGED
@@ -1,35 +1,34 @@
1
- [![Join the chat at https://gitter.im/cucumber/cucumber-ruby](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cucumber/cucumber-ruby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2
- [![Build Status](https://travis-ci.org/cucumber/cucumber-ruby.svg?branch=master)](https://travis-ci.org/cucumber/cucumber-ruby)
3
- [![Windows Build Status](https://ci.appveyor.com/api/projects/status/ncqhcevrv93hhu5j?svg=true)](https://ci.appveyor.com/project/cucumberbdd/cucumber-ruby)
1
+ [![OpenCollective](https://opencollective.com/cucumber/backers/badge.svg)](https://opencollective.com/cucumber)
2
+ [![OpenCollective](https://opencollective.com/cucumber/sponsors/badge.svg)](https://opencollective.com/cucumber)
3
+
4
+ [![CircleCI](https://circleci.com/gh/cucumber/cucumber-ruby.svg?style=svg)](https://circleci.com/gh/cucumber/cucumber-ruby)
4
5
 
5
6
  [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby.svg)](https://codeclimate.com/github/cucumber/cucumber-ruby)
6
7
  [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby/badge.svg?branch=master)](https://coveralls.io/r/cucumber/cucumber-ruby?branch=master)
7
- [![Dependency Status](https://gemnasium.com/cucumber/cucumber-ruby.svg)](https://gemnasium.com/cucumber/cucumber-ruby)
8
8
 
9
9
  # Cucumber
10
10
 
11
11
  Cucumber is a tool for running automated tests written in plain language. Because they're
12
- written in plain language, they can be read by anyone on your team. Because they can be
12
+ written in plain language, they can be read by anyone on your team. Because they can be
13
13
  read by anyone, you can use them to help improve communication, collaboration and trust on
14
14
  your team.
15
15
 
16
16
  Where to get more info:
17
17
 
18
- * The main website: https://cucumber.io/
19
- * Documentation: https://github.com/cucumber/cucumber/wiki
20
- * Ruby API Documentation: http://www.rubydoc.info/github/cucumber/cucumber-ruby/
21
- * Support forum: https://groups.google.com/group/cukes
22
- * Chat: ([Slack](https://cucumber.io/support#slack) and [Gitter](https://cucumber.io/support#gitter))
18
+ * The main website: https://cucumber.io/
19
+ * Documentation: https://cucumber.io/docs
20
+ * Ruby API Documentation: http://www.rubydoc.info/github/cucumber/cucumber-ruby/
21
+ * Support forum: https://groups.google.com/group/cukes
22
+ * Chat: ([Slack](https://cucumber.io/support#slack) and [Gitter](https://cucumber.io/support#gitter))
23
23
 
24
24
  See [CONTRIBUTING.md](CONTRIBUTING.md) for info on contributing to Cucumber.
25
25
 
26
26
  ## Supported platforms
27
-
27
+ * Ruby 2.6
28
+ * Ruby 2.5
28
29
  * Ruby 2.4
29
30
  * Ruby 2.3
30
- * Ruby 2.2
31
- * Ruby 2.1
32
- * JRuby 9.1
31
+ * JRuby 9.2 (with [some limitations](https://github.com/cucumber/cucumber-ruby/blob/master/docs/jruby-limitations.md))
33
32
 
34
33
  ## Code of Conduct
35
34
 
@@ -37,4 +36,4 @@ Everyone interacting in this codebase and issue tracker is expected to follow th
37
36
 
38
37
  ## Copyright
39
38
 
40
- Copyright (c) Aslak Hellesøy and Contributors. See LICENSE for details.
39
+ Copyright (c) Cucumber Ltd. and Contributors. See LICENSE for details.
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
- $:.unshift(File.dirname(__FILE__) + '/../lib') unless $:.include?(File.dirname(__FILE__) + '/../lib')
2
+ file_name = File.dirname(__FILE__) + '/../lib'
3
+ $LOAD_PATH.unshift(file_name) unless $LOAD_PATH.include?(file_name)
3
4
 
4
5
  require 'simplecov_setup'
5
6
  require 'cucumber/rspec/disable_option_parser'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'autotest'
3
4
  require 'autotest/cucumber_mixin'
4
5
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'autotest'
3
4
  require 'tempfile'
4
5
  require 'cucumber'
@@ -6,7 +7,7 @@ require 'cucumber/cli/profile_loader'
6
7
 
7
8
  module Autotest::CucumberMixin
8
9
  def self.included(receiver)
9
- receiver::ALL_HOOKS << [:run_features, :ran_features]
10
+ receiver::ALL_HOOKS << %i[run_features ran_features]
10
11
  end
11
12
 
12
13
  attr_accessor :features_to_run
@@ -22,12 +23,10 @@ module Autotest::CucumberMixin
22
23
  reset_features
23
24
  add_sigint_handler
24
25
 
25
- self.last_mtime = Time.now if $f
26
-
27
26
  loop do # ^c handler
28
27
  begin
29
28
  get_to_green
30
- if self.tainted then
29
+ if tainted
31
30
  rerun_all_tests
32
31
  rerun_all_features if all_good
33
32
  else
@@ -38,7 +37,7 @@ module Autotest::CucumberMixin
38
37
  # time a file is changed to see if anything breaks.
39
38
  reset_features
40
39
  rescue Interrupt
41
- break if self.wants_to_quit
40
+ break if wants_to_quit
42
41
  reset
43
42
  reset_features
44
43
  end
@@ -50,12 +49,13 @@ module Autotest::CucumberMixin
50
49
  features_to_run == ''
51
50
  end
52
51
 
53
- def get_to_green
54
- begin
52
+ def get_to_green # rubocop:disable Naming/AccessorMethodName
53
+ loop do
55
54
  super
56
55
  run_features
57
56
  wait_for_changes unless all_features_good
58
- end until all_features_good
57
+ break if all_features_good
58
+ end
59
59
  end
60
60
 
61
61
  def rerun_all_features
@@ -70,67 +70,63 @@ module Autotest::CucumberMixin
70
70
  def run_features
71
71
  hook :run_features
72
72
  Tempfile.open('autotest-cucumber') do |dirty_features_file|
73
- cmd = self.make_cucumber_cmd(self.features_to_run, dirty_features_file.path)
73
+ cmd = make_cucumber_cmd(features_to_run, dirty_features_file.path)
74
74
  break if cmd.empty?
75
- puts cmd unless $q
76
75
  old_sync = $stdout.sync
77
76
  $stdout.sync = true
78
77
  self.results = []
79
78
  line = []
80
79
  begin
81
- open("| #{cmd}", 'r') do |f|
80
+ open("| #{cmd}", 'r') do |f| # rubocop:disable Security/Open
82
81
  until f.eof?
83
- c = f.getc or break
84
- if RUBY_VERSION >= '1.9' then
85
- print c
86
- else
87
- putc c
88
- end
82
+ c = f.getc || break
83
+ print(c)
89
84
  line << c
90
- if c == ?\n then
91
- self.results << if RUBY_VERSION >= '1.9' then
92
- line.join
93
- else
94
- line.pack 'c*'
95
- end
96
- line.clear
97
- end
85
+ next unless c == "\n"
86
+ results << line.join
87
+ line.clear
98
88
  end
99
89
  end
100
90
  ensure
101
91
  $stdout.sync = old_sync
102
92
  end
103
93
  self.features_to_run = dirty_features_file.read.strip
104
- self.tainted = true unless self.features_to_run == ''
94
+ self.tainted = true unless features_to_run == ''
105
95
  end
106
96
  hook :ran_features
107
97
  end
108
98
 
109
- def make_cucumber_cmd(features_to_run, dirty_features_filename)
110
- return '' if features_to_run == ''
99
+ def make_cucumber_cmd(features_to_run, _dirty_features_filename)
100
+ return '' if features_to_run.empty?
111
101
 
112
102
  profile_loader = Cucumber::Cli::ProfileLoader.new
113
103
 
114
- profile ||= 'autotest-all' if profile_loader.has_profile?('autotest-all') && features_to_run == :all
115
- profile ||= 'autotest' if profile_loader.has_profile?('autotest')
116
- profile ||= nil
104
+ profile = profile(profile_loader)
105
+
106
+ args = created_args(features_to_run, profile)
107
+
108
+ "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}"
109
+ end
110
+
111
+ def profile(profile_loader)
112
+ profile ||= 'autotest-all' if profile_loader.profile?('autotest-all') && features_to_run == :all
113
+ profile ||= 'autotest' if profile_loader.profile?('autotest')
114
+ profile || nil
115
+ end
117
116
 
117
+ def created_args(features_to_run, profile)
118
118
  args = if profile
119
119
  ['--profile', profile]
120
120
  else
121
- %w{--format} << (features_to_run == :all ? 'progress' : 'pretty')
121
+ %w[--format] << (features_to_run == :all ? 'progress' : 'pretty')
122
122
  end
123
123
  # No --color option as some IDEs (Netbeans) don't output them very well (1 failed step)
124
- args += %w{--format rerun --out} << dirty_features_filename
124
+ args += %w[--format rerun --out] << dirty_features_filename
125
125
  args << (features_to_run == :all ? '' : features_to_run)
126
126
 
127
- # Unless I do this, all the steps turn up undefined during the rerun...
128
- unless features_to_run == :all
129
- args << 'features/step_definitions' << 'features/support'
130
- end
131
-
132
- args = args.join(' ')
127
+ # All steps becom undefined during rerun unless the following is run.
128
+ args << 'features/step_definitions' << 'features/support' unless features_to_run == :all
133
129
 
134
- return "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} #{args}"
130
+ args.join(' ')
135
131
  end
136
132
  end