casecumber 1.0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitattributes +1 -0
- data/.gitignore +26 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +7 -0
- data/.yardopts +0 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +115 -0
- data/History.md +1702 -0
- data/LICENSE +22 -0
- data/README.md +25 -0
- data/Rakefile +12 -0
- data/bin/cucumber +22 -0
- data/cucumber.gemspec +60 -0
- data/cucumber.yml +20 -0
- data/examples/i18n/README.textile +18 -0
- data/examples/i18n/Rakefile +33 -0
- data/examples/i18n/ar/Rakefile +6 -0
- data/examples/i18n/ar/features/addition.feature +17 -0
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ar/lib/calculator.rb +11 -0
- data/examples/i18n/bg/Rakefile +6 -0
- data/examples/i18n/bg/features/addition.feature +12 -0
- data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
- data/examples/i18n/bg/features/division.feature +17 -0
- data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/bg/features/support/env.rb +5 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/ca/Rakefile +6 -0
- data/examples/i18n/ca/features/step_definitons/calculator_steps.rb +21 -0
- data/examples/i18n/ca/features/suma.feature +17 -0
- data/examples/i18n/ca/lib/calculadora.rb +16 -0
- data/examples/i18n/da/Rakefile +6 -0
- data/examples/i18n/da/features/sammenlaegning.feature +18 -0
- data/examples/i18n/da/features/step_definitons/lommeregner_steps.rb +24 -0
- data/examples/i18n/da/lib/lommeregner.rb +11 -0
- data/examples/i18n/de/.gitignore +1 -0
- data/examples/i18n/de/Rakefile +6 -0
- data/examples/i18n/de/features/addition.feature +17 -0
- data/examples/i18n/de/features/division.feature +10 -0
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/de/lib/calculator.rb +14 -0
- data/examples/i18n/en-lol/Rakefile +4 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +7 -0
- data/examples/i18n/en-lol/lib/basket.rb +12 -0
- data/examples/i18n/en-lol/lib/belly.rb +11 -0
- data/examples/i18n/en/.gitignore +1 -0
- data/examples/i18n/en/Rakefile +6 -0
- data/examples/i18n/en/features/addition.feature +17 -0
- data/examples/i18n/en/features/division.feature +10 -0
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/en/lib/calculator.rb +14 -0
- data/examples/i18n/eo/.gitignore +1 -0
- data/examples/i18n/eo/Rakefile +6 -0
- data/examples/i18n/eo/features/adicio.feature +17 -0
- data/examples/i18n/eo/features/divido.feature +10 -0
- data/examples/i18n/eo/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/eo/lib/calculator.rb +14 -0
- data/examples/i18n/es/Rakefile +6 -0
- data/examples/i18n/es/features/adicion.feature +17 -0
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
- data/examples/i18n/es/lib/calculador.rb +14 -0
- data/examples/i18n/et/Rakefile +6 -0
- data/examples/i18n/et/features/jagamine.feature +10 -0
- data/examples/i18n/et/features/liitmine.feature +17 -0
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
- data/examples/i18n/et/lib/kalkulaator.rb +14 -0
- data/examples/i18n/fi/.gitignore +1 -0
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +10 -0
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
- data/examples/i18n/fi/features/yhteenlasku.feature +17 -0
- data/examples/i18n/fi/lib/laskin.rb +14 -0
- data/examples/i18n/fr/Rakefile +6 -0
- data/examples/i18n/fr/features/addition.feature +18 -0
- data/examples/i18n/fr/features/addition2.feature +17 -0
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +32 -0
- data/examples/i18n/fr/features/support/env.rb +5 -0
- data/examples/i18n/fr/lib/calculatrice.rb +10 -0
- data/examples/i18n/he/Rakefile +6 -0
- data/examples/i18n/he/features/addition.feature +17 -0
- data/examples/i18n/he/features/division.feature +10 -0
- data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/he/lib/calculator.rb +15 -0
- data/examples/i18n/hu/.gitignore +1 -0
- data/examples/i18n/hu/Rakefile +6 -0
- data/examples/i18n/hu/features/osszeadas.feature +17 -0
- data/examples/i18n/hu/features/osztas.feature +10 -0
- data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
- data/examples/i18n/hu/lib/calculator.rb +14 -0
- data/examples/i18n/id/.gitignore +1 -0
- data/examples/i18n/id/Rakefile +6 -0
- data/examples/i18n/id/features/addition.feature +17 -0
- data/examples/i18n/id/features/division.feature +10 -0
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/id/lib/calculator.rb +14 -0
- data/examples/i18n/it/Rakefile +6 -0
- data/examples/i18n/it/features/somma.feature +11 -0
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
- data/examples/i18n/it/lib/calcolatrice.rb +11 -0
- data/examples/i18n/ja/.gitignore +1 -0
- data/examples/i18n/ja/Rakefile +6 -0
- data/examples/i18n/ja/features/addition.feature +17 -0
- data/examples/i18n/ja/features/division.feature +10 -0
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/ja/features/support/env.rb +5 -0
- data/examples/i18n/ja/lib/calculator.rb +14 -0
- data/examples/i18n/ko/.gitignore +1 -0
- data/examples/i18n/ko/Rakefile +6 -0
- data/examples/i18n/ko/features/addition.feature +17 -0
- data/examples/i18n/ko/features/division.feature +11 -0
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ko/lib/calculator.rb +14 -0
- data/examples/i18n/lt/.gitignore +1 -0
- data/examples/i18n/lt/Rakefile +6 -0
- data/examples/i18n/lt/features/addition.feature +17 -0
- data/examples/i18n/lt/features/division.feature +10 -0
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lt/lib/calculator.rb +14 -0
- data/examples/i18n/lv/Rakefile +6 -0
- data/examples/i18n/lv/features/addition.feature +17 -0
- data/examples/i18n/lv/features/division.feature +10 -0
- data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lv/lib/calculator.rb +14 -0
- data/examples/i18n/no/Rakefile +6 -0
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
- data/examples/i18n/no/features/summering.feature +19 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/no/lib/kalkulator.rb +11 -0
- data/examples/i18n/pl/.gitignore +1 -0
- data/examples/i18n/pl/Rakefile +6 -0
- data/examples/i18n/pl/features/addition.feature +17 -0
- data/examples/i18n/pl/features/division.feature +10 -0
- data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/pl/features/support/env.rb +5 -0
- data/examples/i18n/pl/lib/calculator.rb +14 -0
- data/examples/i18n/pt/Rakefile +6 -0
- data/examples/i18n/pt/features/adicao.feature +11 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
- data/examples/i18n/pt/features/support/env.rb +5 -0
- data/examples/i18n/pt/lib/calculadora.rb +10 -0
- data/examples/i18n/ro/Rakefile +6 -0
- data/examples/i18n/ro/features/adunare.feature +12 -0
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +21 -0
- data/examples/i18n/ro/lib/calculator.rb +11 -0
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +11 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/ru/features/division.feature +16 -0
- data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/ru/features/support/env.rb +5 -0
- data/examples/i18n/ru/features/support/world.rb +8 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/sk/.gitignore +1 -0
- data/examples/i18n/sk/Rakefile +6 -0
- data/examples/i18n/sk/features/addition.feature +17 -0
- data/examples/i18n/sk/features/division.feature +10 -0
- data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sk/lib/calculator.rb +14 -0
- data/examples/i18n/sr-Cyrl/Rakefile +6 -0
- data/examples/i18n/sr-Cyrl/features/sabiranje.feature +18 -0
- data/examples/i18n/sr-Cyrl/features/step_definitons/calculator_steps.rb +20 -0
- data/examples/i18n/sr-Cyrl/features/support/env.rb +5 -0
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +12 -0
- data/examples/i18n/sr-Latn/Rakefile +6 -0
- data/examples/i18n/sr-Latn/features/sabiranje.feature +18 -0
- data/examples/i18n/sr-Latn/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sr-Latn/lib/calculator.rb +12 -0
- data/examples/i18n/sv/Rakefile +6 -0
- data/examples/i18n/sv/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/sv/features/summering.feature +18 -0
- data/examples/i18n/sv/lib/kalkulator.rb +11 -0
- data/examples/i18n/tr/.gitignore +1 -0
- data/examples/i18n/tr/Rakefile +6 -0
- data/examples/i18n/tr/features/bolme.feature +10 -0
- data/examples/i18n/tr/features/step_definitons/hesap_makinesi_adimlari.rb +24 -0
- data/examples/i18n/tr/features/toplama.feature +18 -0
- data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
- data/examples/i18n/uk/Rakefile +6 -0
- data/examples/i18n/uk/features/addition.feature +11 -0
- data/examples/i18n/uk/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/uk/features/division.feature +16 -0
- data/examples/i18n/uk/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/uk/features/support/env.rb +5 -0
- data/examples/i18n/uk/features/support/world.rb +8 -0
- data/examples/i18n/uk/lib/calculator.rb +24 -0
- data/examples/i18n/uz/Rakefile +6 -0
- data/examples/i18n/uz/features/addition.feature +10 -0
- data/examples/i18n/uz/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/uz/features/division.feature +17 -0
- data/examples/i18n/uz/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/uz/features/support/env.rb +5 -0
- data/examples/i18n/uz/features/support/world.rb +8 -0
- data/examples/i18n/uz/lib/calculator.rb +24 -0
- data/examples/i18n/zh-CN/Rakefile +4 -0
- data/examples/i18n/zh-CN/features/addition.feature +18 -0
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
- data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
- data/examples/i18n/zh-TW/.gitignore +1 -0
- data/examples/i18n/zh-TW/Rakefile +4 -0
- data/examples/i18n/zh-TW/features/addition.feature +17 -0
- data/examples/i18n/zh-TW/features/division.feature +11 -0
- data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
- data/examples/python/README.textile +7 -0
- data/examples/python/Rakefile +4 -0
- data/examples/python/features/fibonacci.feature +19 -0
- data/examples/python/features/step_definitions/fib_steps.py +11 -0
- data/examples/python/lib/.gitignore +1 -0
- data/examples/python/lib/fib.py +7 -0
- data/examples/ramaze/README.textile +7 -0
- data/examples/ramaze/Rakefile +6 -0
- data/examples/ramaze/app.rb +21 -0
- data/examples/ramaze/features/add.feature +11 -0
- data/examples/ramaze/features/step_definitions/add_steps.rb +15 -0
- data/examples/ramaze/features/support/env.rb +32 -0
- data/examples/ramaze/layout/default.html.erb +8 -0
- data/examples/ramaze/view/index.html.erb +5 -0
- data/examples/rspec_doubles/Rakefile +4 -0
- data/examples/rspec_doubles/features/mocking.feature +9 -0
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +19 -0
- data/examples/rspec_doubles/features/support/env.rb +12 -0
- data/examples/ruby2python/README.textile +7 -0
- data/examples/ruby2python/Rakefile +4 -0
- data/examples/ruby2python/features/fibonacci.feature +19 -0
- data/examples/ruby2python/features/step_definitions/fib_steps.rb +7 -0
- data/examples/ruby2python/features/support/env.rb +21 -0
- data/examples/ruby2python/lib/.gitignore +1 -0
- data/examples/ruby2python/lib/fib.py +7 -0
- data/examples/sinatra/README.textile +13 -0
- data/examples/sinatra/Rakefile +6 -0
- data/examples/sinatra/app.rb +14 -0
- data/examples/sinatra/features/add.feature +11 -0
- data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
- data/examples/sinatra/features/support/env.rb +10 -0
- data/examples/sinatra/views/add.erb +7 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/tcl/README.textile +11 -0
- data/examples/tcl/Rakefile +6 -0
- data/examples/tcl/features/fibonnacci.feature +17 -0
- data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
- data/examples/tcl/features/support/env.rb +6 -0
- data/examples/tcl/src/fib.tcl +3 -0
- data/examples/test_unit/Rakefile +6 -0
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
- data/examples/test_unit/features/test_unit.feature +9 -0
- data/examples/v8/Rakefile +6 -0
- data/examples/v8/features/fibonacci.feature +43 -0
- data/examples/v8/features/step_definitions/fib_steps.js +49 -0
- data/examples/v8/features/support/env.js +14 -0
- data/examples/v8/lib/fibonacci.js +19 -0
- data/examples/watir/.gitignore +2 -0
- data/examples/watir/README.textile +16 -0
- data/examples/watir/Rakefile +12 -0
- data/examples/watir/cucumber.yml +1 -0
- data/examples/watir/features/search.feature +12 -0
- data/examples/watir/features/step_definitions/search_steps.rb +26 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/examples/watir/features/support/screenshots.rb +47 -0
- data/features/background.feature +498 -0
- data/features/bootstrap.feature +13 -0
- data/features/custom_formatter.feature +41 -0
- data/features/execute_with_tag_filter.feature +63 -0
- data/features/hooks.feature +59 -0
- data/features/iso-8859-1.feature +6 -0
- data/features/json_formatter.feature +248 -0
- data/features/stats_formatters.feature +70 -0
- data/features/step_definitions/cucumber-features/cucumber_ruby_mappings.rb +168 -0
- data/features/step_definitions/cucumber_steps.rb +23 -0
- data/features/step_definitions/iso-8859-1_steps.rb +24 -0
- data/features/support/env.rb +26 -0
- data/features/tagged_hooks.feature +217 -0
- data/features/transforms.feature +63 -0
- data/fixtures/json/features/background.feature +7 -0
- data/fixtures/json/features/embed.feature +4 -0
- data/fixtures/json/features/one_passing_one_failing.feature +11 -0
- data/fixtures/json/features/step_definitions/steps.rb +32 -0
- data/fixtures/json/features/tables.feature +13 -0
- data/fixtures/junit/features/one_passing_one_failing.feature +8 -0
- data/fixtures/junit/features/pending.feature +7 -0
- data/fixtures/junit/features/scenario_outline.feature +9 -0
- data/fixtures/junit/features/some_subdirectory/one_passing_one_failing.feature +8 -0
- data/fixtures/junit/features/step_definitions/steps.rb +11 -0
- data/fixtures/self_test/.gitignore +1 -0
- data/fixtures/self_test/README.textile +6 -0
- data/fixtures/self_test/Rakefile +6 -0
- data/fixtures/self_test/features/call_undefined_step_from_step_def.feature +7 -0
- data/fixtures/self_test/features/failing_expectation.feature +4 -0
- data/fixtures/self_test/features/lots_of_undefined.feature +8 -0
- data/fixtures/self_test/features/multiline_name.feature +27 -0
- data/fixtures/self_test/features/outline_sample.feature +15 -0
- data/fixtures/self_test/features/sample.feature +21 -0
- data/fixtures/self_test/features/search_sample.feature +32 -0
- data/fixtures/self_test/features/step_definitions/sample_steps.rb +84 -0
- data/fixtures/self_test/features/support/bubble_256x256.png +0 -0
- data/fixtures/self_test/features/support/env.rb +26 -0
- data/fixtures/self_test/features/tags_sample.feature +17 -0
- data/fixtures/self_test/features/tons_of_cukes.feature +52 -0
- data/fixtures/self_test/features/undefined_multiline_args.feature +12 -0
- data/fixtures/self_test/list-of-features.txt +1 -0
- data/fixtures/steps_library/features/step_definitions/steps_lib1.rb +8 -0
- data/fixtures/steps_library/features/step_definitions/steps_lib2.rb +8 -0
- data/fixtures/tickets/Rakefile +20 -0
- data/fixtures/tickets/features.html +138 -0
- data/fixtures/tickets/features/172.feature +28 -0
- data/fixtures/tickets/features/177/1.feature +28 -0
- data/fixtures/tickets/features/177/2.feature +20 -0
- data/fixtures/tickets/features/177/3.feature +18 -0
- data/fixtures/tickets/features/180.feature +7 -0
- data/fixtures/tickets/features/229/tagged_hooks.feature +8 -0
- data/fixtures/tickets/features/229/tagged_hooks.rb +14 -0
- data/fixtures/tickets/features/236.feature +13 -0
- data/fixtures/tickets/features/241.feature +12 -0
- data/fixtures/tickets/features/246.feature +4 -0
- data/fixtures/tickets/features/248.feature +11 -0
- data/fixtures/tickets/features/270/back.feature +14 -0
- data/fixtures/tickets/features/270/back.steps.rb +14 -0
- data/fixtures/tickets/features/272/hooks.feature +26 -0
- data/fixtures/tickets/features/272/hooks_steps.rb +53 -0
- data/fixtures/tickets/features/279/py_string_indent.feature +25 -0
- data/fixtures/tickets/features/279/py_string_indent.steps.rb +12 -0
- data/fixtures/tickets/features/279/wrong.feature_ +11 -0
- data/fixtures/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
- data/fixtures/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
- data/fixtures/tickets/features/306/only_background.feature +4 -0
- data/fixtures/tickets/features/around_timeout.feature +6 -0
- data/fixtures/tickets/features/gherkin_67.feature +12 -0
- data/fixtures/tickets/features/gherkin_68.feature +4 -0
- data/fixtures/tickets/features/half_manual.feature +11 -0
- data/fixtures/tickets/features/lib/eatting_machine.rb +18 -0
- data/fixtures/tickets/features/lib/pantry.rb +20 -0
- data/fixtures/tickets/features/scenario_outline.feature +95 -0
- data/fixtures/tickets/features/step_definitons/246_steps.rb +3 -0
- data/fixtures/tickets/features/step_definitons/248_steps.rb +15 -0
- data/fixtures/tickets/features/step_definitons/around_timeout_steps.rb +9 -0
- data/fixtures/tickets/features/step_definitons/half_manual_steps.rb +11 -0
- data/fixtures/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/fixtures/tickets/features/step_definitons/tickets_steps.rb +88 -0
- data/fixtures/tickets/features/table_diffing.feature +13 -0
- data/fixtures/tickets/features/tickets.feature +28 -0
- data/gem_tasks/contributors.rake +15 -0
- data/gem_tasks/cucumber.rake +21 -0
- data/gem_tasks/downloads.rb +7 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/examples.rake +11 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/rspec.rake +8 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/stats +14 -0
- data/gem_tasks/versions.txt +74 -0
- data/gem_tasks/yard.rake +0 -0
- data/gem_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
- data/gem_tasks/yard/default/layout/html/footer.erb +5 -0
- data/gem_tasks/yard/default/layout/html/index.erb +1 -0
- data/gem_tasks/yard/default/layout/html/layout.erb +25 -0
- data/gem_tasks/yard/default/layout/html/logo.erb +1 -0
- data/gem_tasks/yard/default/layout/html/setup.rb +4 -0
- data/legacy_features/announce.feature +152 -0
- data/legacy_features/api/list_step_defs_as_json.feature +50 -0
- data/legacy_features/api/run_cli_main_with_existing_runtime.feature +34 -0
- data/legacy_features/around_hooks.feature +232 -0
- data/legacy_features/bug_371.feature +32 -0
- data/legacy_features/bug_464.feature +16 -0
- data/legacy_features/bug_475.feature +42 -0
- data/legacy_features/bug_585_tab_indentation.feature +22 -0
- data/legacy_features/bug_600.feature +73 -0
- data/legacy_features/call_steps_from_stepdefs.feature +154 -0
- data/legacy_features/cucumber_cli.feature +591 -0
- data/legacy_features/cucumber_cli_outlines.feature +117 -0
- data/legacy_features/default_snippets.feature +42 -0
- data/legacy_features/diffing.feature +25 -0
- data/legacy_features/drb_server_integration.feature +174 -0
- data/legacy_features/exception_in_after_block.feature +127 -0
- data/legacy_features/exception_in_after_step_block.feature +104 -0
- data/legacy_features/exception_in_before_block.feature +98 -0
- data/legacy_features/exclude_files.feature +20 -0
- data/legacy_features/expand.feature +60 -0
- data/legacy_features/html_formatter.feature +8 -0
- data/legacy_features/html_formatter/a.html +561 -0
- data/legacy_features/junit_formatter.feature +164 -0
- data/legacy_features/language_from_header.feature +30 -0
- data/legacy_features/language_help.feature +77 -0
- data/legacy_features/listener_debugger_formatter.feature +42 -0
- data/legacy_features/multiline_names.feature +44 -0
- data/legacy_features/post_configuration_hook.feature +50 -0
- data/legacy_features/profiles.feature +126 -0
- data/legacy_features/rake_task.feature +152 -0
- data/legacy_features/report_called_undefined_steps.feature +34 -0
- data/legacy_features/rerun_formatter.feature +52 -0
- data/legacy_features/simplest.feature +11 -0
- data/legacy_features/snippet.feature +23 -0
- data/legacy_features/snippets_when_using_star_keyword.feature +36 -0
- data/legacy_features/step_definitions/cucumber_steps.rb +172 -0
- data/legacy_features/step_definitions/extra_steps.rb +2 -0
- data/legacy_features/step_definitions/simplest_steps.rb +3 -0
- data/legacy_features/step_definitions/wire_steps.rb +34 -0
- data/legacy_features/support/env.rb +157 -0
- data/legacy_features/support/env.rb.simplest +7 -0
- data/legacy_features/support/fake_wire_server.rb +77 -0
- data/legacy_features/table_diffing.feature +45 -0
- data/legacy_features/table_mapping.feature +34 -0
- data/legacy_features/transform.feature +245 -0
- data/legacy_features/unicode_table.feature +35 -0
- data/legacy_features/wire_protocol.feature +332 -0
- data/legacy_features/wire_protocol_erb.feature +57 -0
- data/legacy_features/wire_protocol_table_diffing.feature +119 -0
- data/legacy_features/wire_protocol_tags.feature +87 -0
- data/legacy_features/wire_protocol_timeouts.feature +63 -0
- data/legacy_features/work_in_progress.feature +156 -0
- data/lib/README.rdoc +12 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +135 -0
- data/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec2.rb +6 -0
- data/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/autotest/cucumber_rspec2.rb +6 -0
- data/lib/autotest/discover.rb +9 -0
- data/lib/cucumber.rb +27 -0
- data/lib/cucumber/ast.rb +30 -0
- data/lib/cucumber/ast/background.rb +101 -0
- data/lib/cucumber/ast/comment.rb +31 -0
- data/lib/cucumber/ast/doc_string.rb +80 -0
- data/lib/cucumber/ast/examples.rb +46 -0
- data/lib/cucumber/ast/feature.rb +106 -0
- data/lib/cucumber/ast/feature_element.rb +78 -0
- data/lib/cucumber/ast/features.rb +35 -0
- data/lib/cucumber/ast/names.rb +13 -0
- data/lib/cucumber/ast/outline_table.rb +187 -0
- data/lib/cucumber/ast/scenario.rb +119 -0
- data/lib/cucumber/ast/scenario_outline.rb +125 -0
- data/lib/cucumber/ast/step.rb +126 -0
- data/lib/cucumber/ast/step_collection.rb +76 -0
- data/lib/cucumber/ast/step_invocation.rb +206 -0
- data/lib/cucumber/ast/table.rb +689 -0
- data/lib/cucumber/ast/tags.rb +28 -0
- data/lib/cucumber/ast/tree_walker.rb +183 -0
- data/lib/cucumber/ast/visitor.rb +11 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +209 -0
- data/lib/cucumber/cli/drb_client.rb +43 -0
- data/lib/cucumber/cli/main.rb +78 -0
- data/lib/cucumber/cli/options.rb +410 -0
- data/lib/cucumber/cli/profile_loader.rb +91 -0
- data/lib/cucumber/configuration.rb +49 -0
- data/lib/cucumber/constantize.rb +34 -0
- data/lib/cucumber/core_ext/disable_mini_and_test_unit_autorun.rb +25 -0
- data/lib/cucumber/core_ext/instance_exec.rb +98 -0
- data/lib/cucumber/core_ext/proc.rb +34 -0
- data/lib/cucumber/core_ext/string.rb +9 -0
- data/lib/cucumber/errors.rb +40 -0
- data/lib/cucumber/feature_file.rb +101 -0
- data/lib/cucumber/formatter/ansicolor.rb +160 -0
- data/lib/cucumber/formatter/console.rb +187 -0
- data/lib/cucumber/formatter/cucumber.css +279 -0
- data/lib/cucumber/formatter/cucumber.sass +247 -0
- data/lib/cucumber/formatter/debug.rb +33 -0
- data/lib/cucumber/formatter/duration.rb +13 -0
- data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +83 -0
- data/lib/cucumber/formatter/gpretty.rb +24 -0
- data/lib/cucumber/formatter/html.rb +649 -0
- data/lib/cucumber/formatter/io.rb +31 -0
- data/lib/cucumber/formatter/jquery-min.js +154 -0
- data/lib/cucumber/formatter/json.rb +31 -0
- data/lib/cucumber/formatter/json_pretty.rb +13 -0
- data/lib/cucumber/formatter/junit.rb +155 -0
- data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
- data/lib/cucumber/formatter/pdf.rb +244 -0
- data/lib/cucumber/formatter/pretty.rb +237 -0
- data/lib/cucumber/formatter/progress.rb +92 -0
- data/lib/cucumber/formatter/rerun.rb +68 -0
- data/lib/cucumber/formatter/stepdefs.rb +14 -0
- data/lib/cucumber/formatter/steps.rb +49 -0
- data/lib/cucumber/formatter/summary.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +79 -0
- data/lib/cucumber/formatter/usage.rb +127 -0
- data/lib/cucumber/js_support/js_dsl.js +57 -0
- data/lib/cucumber/js_support/js_language.rb +185 -0
- data/lib/cucumber/js_support/js_snippets.rb +27 -0
- data/lib/cucumber/language_support.rb +30 -0
- data/lib/cucumber/language_support/language_methods.rb +129 -0
- data/lib/cucumber/parser.rb +2 -0
- data/lib/cucumber/parser/gherkin_builder.rb +129 -0
- data/lib/cucumber/platform.rb +29 -0
- data/lib/cucumber/py_support/py_dsl.py +10 -0
- data/lib/cucumber/py_support/py_language.py +10 -0
- data/lib/cucumber/py_support/py_language.rb +84 -0
- data/lib/cucumber/rake/task.rb +225 -0
- data/lib/cucumber/rb_support/rb_dsl.rb +112 -0
- data/lib/cucumber/rb_support/rb_hook.rb +18 -0
- data/lib/cucumber/rb_support/rb_language.rb +195 -0
- data/lib/cucumber/rb_support/rb_step_definition.rb +82 -0
- data/lib/cucumber/rb_support/rb_transform.rb +54 -0
- data/lib/cucumber/rb_support/rb_world.rb +103 -0
- data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
- data/lib/cucumber/rspec/disable_option_parser.rb +23 -0
- data/lib/cucumber/rspec/doubles.rb +16 -0
- data/lib/cucumber/runtime.rb +145 -0
- data/lib/cucumber/runtime/features_loader.rb +62 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +67 -0
- data/lib/cucumber/runtime/results.rb +64 -0
- data/lib/cucumber/runtime/support_code.rb +203 -0
- data/lib/cucumber/runtime/user_interface.rb +81 -0
- data/lib/cucumber/step_argument.rb +9 -0
- data/lib/cucumber/step_definition_light.rb +20 -0
- data/lib/cucumber/step_definitions.rb +14 -0
- data/lib/cucumber/step_match.rb +115 -0
- data/lib/cucumber/step_mother.rb +10 -0
- data/lib/cucumber/wire_support/configuration.rb +31 -0
- data/lib/cucumber/wire_support/connection.rb +55 -0
- data/lib/cucumber/wire_support/request_handler.rb +32 -0
- data/lib/cucumber/wire_support/wire_exception.rb +32 -0
- data/lib/cucumber/wire_support/wire_language.rb +54 -0
- data/lib/cucumber/wire_support/wire_packet.rb +32 -0
- data/lib/cucumber/wire_support/wire_protocol.rb +44 -0
- data/lib/cucumber/wire_support/wire_protocol/requests.rb +123 -0
- data/lib/cucumber/wire_support/wire_step_definition.rb +26 -0
- data/spec/cucumber/ast/background_spec.rb +115 -0
- data/spec/cucumber/ast/doc_string_spec.rb +40 -0
- data/spec/cucumber/ast/feature_factory.rb +61 -0
- data/spec/cucumber/ast/feature_spec.rb +63 -0
- data/spec/cucumber/ast/outline_table_spec.rb +21 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +69 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +484 -0
- data/spec/cucumber/ast/tree_walker_spec.rb +11 -0
- data/spec/cucumber/broadcaster_spec.rb +15 -0
- data/spec/cucumber/cli/configuration_spec.rb +431 -0
- data/spec/cucumber/cli/drb_client_spec.rb +76 -0
- data/spec/cucumber/cli/main_spec.rb +137 -0
- data/spec/cucumber/cli/options_spec.rb +358 -0
- data/spec/cucumber/cli/profile_loader_spec.rb +35 -0
- data/spec/cucumber/configuration_spec.rb +23 -0
- data/spec/cucumber/core_ext/proc_spec.rb +68 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/html_spec.rb +256 -0
- data/spec/cucumber/formatter/junit_spec.rb +125 -0
- data/spec/cucumber/formatter/progress_spec.rb +38 -0
- data/spec/cucumber/formatter/spec_helper.rb +52 -0
- data/spec/cucumber/rake/forked_spec.rb +62 -0
- data/spec/cucumber/rake/rcov_spec.rb +71 -0
- data/spec/cucumber/rb_support/rb_language_spec.rb +282 -0
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +98 -0
- data/spec/cucumber/rb_support/rb_transform_spec.rb +21 -0
- data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
- data/spec/cucumber/runtime/support_code_spec.rb +112 -0
- data/spec/cucumber/runtime_spec.rb +41 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_match_spec.rb +69 -0
- data/spec/cucumber/wire_support/configuration_spec.rb +51 -0
- data/spec/cucumber/wire_support/connection_spec.rb +46 -0
- data/spec/cucumber/wire_support/wire_exception_spec.rb +44 -0
- data/spec/cucumber/wire_support/wire_language_spec.rb +47 -0
- data/spec/cucumber/wire_support/wire_packet_spec.rb +40 -0
- data/spec/cucumber/wire_support/wire_step_definition_spec.rb +20 -0
- data/spec/cucumber/world/pending_spec.rb +46 -0
- data/spec/spec_helper.rb +22 -0
- metadata +1044 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Before(function(){
|
|
2
|
+
fibResult = 0;
|
|
3
|
+
});
|
|
4
|
+
|
|
5
|
+
Before(['@do-fibonnacci-in-before-hook', '@reviewed'], function(){
|
|
6
|
+
fibResult = fibonacciSeries(3);
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
After(function(){
|
|
10
|
+
//throw 'Sabotage scenario';
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
Transform(/^(\d+)$/, function(n){
|
|
14
|
+
return parseInt(n);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
When(/^I ask Javascript to calculate fibonacci up to (\d+)$/, function(n){
|
|
18
|
+
assertEqual(fibResult, 0);
|
|
19
|
+
fibResult = fibonacciSeries(n);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
When(/^I ask Javascript to calculate fibonacci up to (\d+) with formatting$/, function(n){
|
|
23
|
+
assertEqual(0, fibResult)
|
|
24
|
+
fibResult = fibonacciSeriesFormatted(n);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
Then(/^it should give me (\[.*\])$/, function(expectedResult){
|
|
28
|
+
assertEqual(expectedResult, fibResult)
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
Then(/^it should give me:$/, function(string){
|
|
32
|
+
assertEqual(string, fibResult);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
Then(/^it should contain:$/, function(table){
|
|
36
|
+
var hashes = table.hashes;
|
|
37
|
+
assertMatches(hashes[0]['cell 1'], fibResult);
|
|
38
|
+
assertMatches(hashes[0]['cell 2'], fibResult);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
Then(/^it should give me (\[.*\]) via calling another step definition$/, function(expectedResult){
|
|
42
|
+
Given("I ask Javascript to calculate fibonacci up to 2");
|
|
43
|
+
assertEqual(expectedResult, fibResult);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
Then(/^it should calculate fibonacci up to (\d+) giving me (\[.*\])/, function(n, expectedResult){
|
|
47
|
+
steps("Given I ask Javascript to calculate fibonacci up to "+ n + "\n" +
|
|
48
|
+
"Then it should give me "+ expectedResult);
|
|
49
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//The path is relative to the folder which contains the features folder
|
|
2
|
+
World(['lib/fibonacci.js']);
|
|
3
|
+
|
|
4
|
+
function assertEqual(expected, actual){
|
|
5
|
+
if(expected != actual){
|
|
6
|
+
throw 'Expected <' + expected + "> but got <" + actual + ">";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function assertMatches(expected, actual){
|
|
11
|
+
if(actual.indexOf(expected) == -1){
|
|
12
|
+
throw 'Expected <' + expected + "> to contain <" + actual + "> but it did not";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
function fibonacci(n){
|
|
2
|
+
return n<2?n:fibonacci(n-1)+fibonacci(n-2);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
var fibonacciSeries = function(fibonacciLimit) {
|
|
6
|
+
var result = Array();
|
|
7
|
+
var currentfibonacciValue = fibonacci(1);
|
|
8
|
+
var i = 2;
|
|
9
|
+
while(currentfibonacciValue < fibonacciLimit) {
|
|
10
|
+
result.push(currentfibonacciValue);
|
|
11
|
+
currentfibonacciValue = fibonacci(i);
|
|
12
|
+
i++;
|
|
13
|
+
}
|
|
14
|
+
return "[" + result.join(", ") + "]";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
var fibonacciSeriesFormatted = function(fibonacciLimit){
|
|
18
|
+
return "\n'" + fibonacciSeries(fibonacciLimit) + "'\n"
|
|
19
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Here you'll find examples for Watir, FireWatir, SafariWatir and Celerity.
|
|
2
|
+
All of these browser libraries have the same API, so the example code will
|
|
3
|
+
work with all of them.
|
|
4
|
+
|
|
5
|
+
Just run with:
|
|
6
|
+
|
|
7
|
+
rake cucumber
|
|
8
|
+
|
|
9
|
+
This will use Watir/IE if you're on Windows, and SafariWatir/Safari if you're on OS X.
|
|
10
|
+
You can force the use of FireWatir/Firefox on any platform like this:
|
|
11
|
+
|
|
12
|
+
rake features FIREWATIR=true
|
|
13
|
+
|
|
14
|
+
And finally, you can use Celerity by running in JRuby:
|
|
15
|
+
|
|
16
|
+
jruby -S rake cucumber
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + '/../../lib')
|
|
2
|
+
require 'cucumber/rake/task'
|
|
3
|
+
|
|
4
|
+
Cucumber::Rake::Task.new do |t|
|
|
5
|
+
t.cucumber_opts = %w{--format pretty}
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
Cucumber::Rake::Task.new(:cucumber_screenshot) do |t|
|
|
9
|
+
t.cucumber_opts = %w{--format html --out report.html}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
task :default => :cucumber
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
default: --format html --out report.html --format pretty
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: Search
|
|
2
|
+
In order to learn more
|
|
3
|
+
As an information seeker
|
|
4
|
+
I want to find more information
|
|
5
|
+
|
|
6
|
+
Scenario: Find what I'm looking for
|
|
7
|
+
Given I am on the Google search page
|
|
8
|
+
When I search for "cucumber github"
|
|
9
|
+
Then I should see
|
|
10
|
+
"""
|
|
11
|
+
GitHub
|
|
12
|
+
"""
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Full Watir API: http://wtr.rubyforge.org/rdoc/
|
|
2
|
+
# Full RSpec API: http://rspec.rubyforge.org/
|
|
3
|
+
|
|
4
|
+
Given 'I am on the Google search page' do
|
|
5
|
+
@browser.goto 'http://www.google.com/'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
When /I search for "(.*)"/ do |query|
|
|
9
|
+
@browser.text_field(:name, 'q').set(query)
|
|
10
|
+
@browser.button(:name, 'btnG').click
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Then /I should see/ do |text|
|
|
14
|
+
@browser.text.should =~ /#{text}/m
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# To avoid step definitions that are tightly coupled to your user interface,
|
|
18
|
+
# consider creating classes for your pages - such as this:
|
|
19
|
+
# http://github.com/cucumber/cucumber/tree/v0.1.15/examples/watir/features/step_definitons/search_steps.rb
|
|
20
|
+
#
|
|
21
|
+
# You may keep the page classes along your steps, or even better, put them in separate files, e.g.
|
|
22
|
+
# support/pages/google_search.rb
|
|
23
|
+
#
|
|
24
|
+
# This technique is called "Page Objects", and you can read more about it here:
|
|
25
|
+
# http://github.com/marekj/watirloo/tree/master
|
|
26
|
+
# We're not using this technique here, since we want to illustrate the basics only.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
|
|
2
|
+
|
|
3
|
+
if ENV['FIREWATIR']
|
|
4
|
+
require 'firewatir'
|
|
5
|
+
Browser = FireWatir::Firefox
|
|
6
|
+
else
|
|
7
|
+
case RUBY_PLATFORM
|
|
8
|
+
when /darwin/
|
|
9
|
+
require 'safariwatir'
|
|
10
|
+
Browser = Watir::Safari
|
|
11
|
+
when /win32|mingw/
|
|
12
|
+
require 'watir'
|
|
13
|
+
Browser = Watir::IE
|
|
14
|
+
when /java/
|
|
15
|
+
require 'celerity'
|
|
16
|
+
Browser = Celerity::Browser
|
|
17
|
+
else
|
|
18
|
+
raise "This platform is not supported (#{PLATFORM})"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# "before all"
|
|
23
|
+
browser = Browser.new
|
|
24
|
+
|
|
25
|
+
Before do
|
|
26
|
+
@browser = browser
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# "after all"
|
|
30
|
+
at_exit do
|
|
31
|
+
browser.close
|
|
32
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# This is an example of how you can set up screenshots for your
|
|
2
|
+
# browser testing. Just run cucumber with --format html --out report.html
|
|
3
|
+
#
|
|
4
|
+
# The code below will work on OS X or Windows (with IE Watir only).
|
|
5
|
+
# Adding support for other platforms should be easy - as long as there is a
|
|
6
|
+
# ruby library or command line tool to take pictures.
|
|
7
|
+
#
|
|
8
|
+
module Screenshots
|
|
9
|
+
if Cucumber::OS_X
|
|
10
|
+
def embed_screenshot(id)
|
|
11
|
+
`screencapture -t png #{id}.png`
|
|
12
|
+
embed("#{id}.png", "image/png")
|
|
13
|
+
end
|
|
14
|
+
elsif Cucumber::WINDOWS
|
|
15
|
+
# http://wtr.rubyforge.org/rdoc/classes/Watir/ScreenCapture.html
|
|
16
|
+
require 'watir/screen_capture'
|
|
17
|
+
include Watir::ScreenCapture
|
|
18
|
+
def embed_screenshot(id)
|
|
19
|
+
screen_capture("#{id}.jpg", true)
|
|
20
|
+
embed("#{id}.jpg", "image/jpeg")
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
# Other platforms...
|
|
24
|
+
def embed_screenshot(id)
|
|
25
|
+
STDERR.puts "Sorry - no screenshots on your platform yet."
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
World(Screenshots)
|
|
30
|
+
|
|
31
|
+
After do
|
|
32
|
+
embed_screenshot("screenshot-#{Time.new.to_i}")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Other variants:
|
|
36
|
+
#
|
|
37
|
+
# Only take screenshot on failures
|
|
38
|
+
#
|
|
39
|
+
# After do |scenario|
|
|
40
|
+
# embed_screenshot("screenshot-#{Time.new.to_i}") if scenario.failed?
|
|
41
|
+
# end
|
|
42
|
+
#
|
|
43
|
+
# Only take screenshot for scenarios or features tagged @screenshot
|
|
44
|
+
#
|
|
45
|
+
# After(@screenshot) do
|
|
46
|
+
# embed_screenshot("screenshot-#{Time.new.to_i}")
|
|
47
|
+
# end
|
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
Feature: Background
|
|
2
|
+
In order to provide a context to my scenarios within a feature
|
|
3
|
+
As a feature editor
|
|
4
|
+
I want to write a background section in my features.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named "features/passing_background.feature" with:
|
|
8
|
+
"""
|
|
9
|
+
Feature: Passing background sample
|
|
10
|
+
|
|
11
|
+
Background:
|
|
12
|
+
Given '10' cukes
|
|
13
|
+
|
|
14
|
+
Scenario: passing background
|
|
15
|
+
Then I should have '10' cukes
|
|
16
|
+
|
|
17
|
+
Scenario: another passing background
|
|
18
|
+
Then I should have '10' cukes
|
|
19
|
+
"""
|
|
20
|
+
And a file named "features/scenario_outline_passing_background.feature" with:
|
|
21
|
+
"""
|
|
22
|
+
Feature: Passing background with scenario outlines sample
|
|
23
|
+
|
|
24
|
+
Background:
|
|
25
|
+
Given '10' cukes
|
|
26
|
+
|
|
27
|
+
Scenario Outline: passing background
|
|
28
|
+
Then I should have '<count>' cukes
|
|
29
|
+
Examples:
|
|
30
|
+
|count|
|
|
31
|
+
| 10 |
|
|
32
|
+
|
|
33
|
+
Scenario Outline: another passing background
|
|
34
|
+
Then I should have '<count>' cukes
|
|
35
|
+
Examples:
|
|
36
|
+
|count|
|
|
37
|
+
| 10 |
|
|
38
|
+
"""
|
|
39
|
+
And a file named "features/background_tagged_before_on_outline.feature" with:
|
|
40
|
+
"""
|
|
41
|
+
@background_tagged_before_on_outline
|
|
42
|
+
Feature: Background tagged Before on Outline
|
|
43
|
+
|
|
44
|
+
Background:
|
|
45
|
+
Given passing without a table
|
|
46
|
+
|
|
47
|
+
Scenario Outline: passing background
|
|
48
|
+
Then I should have '<count>' cukes
|
|
49
|
+
|
|
50
|
+
Examples:
|
|
51
|
+
| count |
|
|
52
|
+
| 888 |
|
|
53
|
+
"""
|
|
54
|
+
And a file named "features/failing_background.feature" with:
|
|
55
|
+
"""
|
|
56
|
+
Feature: Failing background sample
|
|
57
|
+
|
|
58
|
+
Background:
|
|
59
|
+
Given failing without a table
|
|
60
|
+
And '10' cukes
|
|
61
|
+
|
|
62
|
+
Scenario: failing background
|
|
63
|
+
Then I should have '10' cukes
|
|
64
|
+
|
|
65
|
+
Scenario: another failing background
|
|
66
|
+
Then I should have '10' cukes
|
|
67
|
+
"""
|
|
68
|
+
And a file named "features/scenario_outline_failing_background.feature" with:
|
|
69
|
+
"""
|
|
70
|
+
Feature: Failing background with scenario outlines sample
|
|
71
|
+
|
|
72
|
+
Background:
|
|
73
|
+
Given failing without a table
|
|
74
|
+
|
|
75
|
+
Scenario Outline: failing background
|
|
76
|
+
Then I should have '<count>' cukes
|
|
77
|
+
Examples:
|
|
78
|
+
|count|
|
|
79
|
+
| 10 |
|
|
80
|
+
|
|
81
|
+
Scenario Outline: another failing background
|
|
82
|
+
Then I should have '<count>' cukes
|
|
83
|
+
Examples:
|
|
84
|
+
|count|
|
|
85
|
+
| 10 |
|
|
86
|
+
"""
|
|
87
|
+
And a file named "features/pending_background.feature" with:
|
|
88
|
+
"""
|
|
89
|
+
Feature: Pending background sample
|
|
90
|
+
|
|
91
|
+
Background:
|
|
92
|
+
Given pending
|
|
93
|
+
|
|
94
|
+
Scenario: pending background
|
|
95
|
+
Then I should have '10' cukes
|
|
96
|
+
|
|
97
|
+
Scenario: another pending background
|
|
98
|
+
Then I should have '10' cukes
|
|
99
|
+
"""
|
|
100
|
+
And a file named "features/failing_background_after_success.feature" with:
|
|
101
|
+
"""
|
|
102
|
+
Feature: Failing background after previously successful background sample
|
|
103
|
+
|
|
104
|
+
Background:
|
|
105
|
+
Given passing without a table
|
|
106
|
+
And '10' global cukes
|
|
107
|
+
|
|
108
|
+
Scenario: passing background
|
|
109
|
+
Then I should have '10' global cukes
|
|
110
|
+
|
|
111
|
+
Scenario: failing background
|
|
112
|
+
Then I should have '10' global cukes
|
|
113
|
+
"""
|
|
114
|
+
And a file named "features/multiline_args_background.feature" with:
|
|
115
|
+
"""
|
|
116
|
+
Feature: Passing background with multiline args
|
|
117
|
+
|
|
118
|
+
Background:
|
|
119
|
+
Given table
|
|
120
|
+
|a|b|
|
|
121
|
+
|c|d|
|
|
122
|
+
And multiline string
|
|
123
|
+
\"\"\"
|
|
124
|
+
I'm a cucumber and I'm okay.
|
|
125
|
+
I sleep all night and I test all day
|
|
126
|
+
\"\"\"
|
|
127
|
+
|
|
128
|
+
Scenario: passing background
|
|
129
|
+
Then the table should be
|
|
130
|
+
|a|b|
|
|
131
|
+
|c|d|
|
|
132
|
+
Then the multiline string should be
|
|
133
|
+
\"\"\"
|
|
134
|
+
I'm a cucumber and I'm okay.
|
|
135
|
+
I sleep all night and I test all day
|
|
136
|
+
\"\"\"
|
|
137
|
+
|
|
138
|
+
Scenario: another passing background
|
|
139
|
+
Then the table should be
|
|
140
|
+
|a|b|
|
|
141
|
+
|c|d|
|
|
142
|
+
Then the multiline string should be
|
|
143
|
+
\"\"\"
|
|
144
|
+
I'm a cucumber and I'm okay.
|
|
145
|
+
I sleep all night and I test all day
|
|
146
|
+
\"\"\"
|
|
147
|
+
"""
|
|
148
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
149
|
+
"""
|
|
150
|
+
def flunker
|
|
151
|
+
raise "FAIL"
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
Given /^'(.+)' cukes$/ do |cukes| x=1
|
|
155
|
+
raise "We already have #{@cukes} cukes!" if @cukes
|
|
156
|
+
@cukes = cukes
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
Given(/^passing without a table$/) do
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
Given /^failing without a table$/ do x=1
|
|
163
|
+
flunker
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
Given /^'(.+)' global cukes$/ do |cukes| x=1
|
|
167
|
+
$scenario_runs ||= 0
|
|
168
|
+
flunker if $scenario_runs >= 1
|
|
169
|
+
$cukes = cukes
|
|
170
|
+
$scenario_runs += 1
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
Then /^I should have '(.+)' global cukes$/ do |cukes| x=1
|
|
174
|
+
$cukes.should == cukes
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
Then /^I should have '(.+)' cukes$/ do |cukes| x=1
|
|
178
|
+
@cukes.should == cukes
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
Before('@background_tagged_before_on_outline') do
|
|
182
|
+
@cukes = '888'
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
After('@background_tagged_before_on_outline') do
|
|
186
|
+
@cukes.should == '888'
|
|
187
|
+
end
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
Scenario: run a specific scenario with a background
|
|
191
|
+
When I run `cucumber -q features/passing_background.feature:9`
|
|
192
|
+
Then it should pass with exactly:
|
|
193
|
+
"""
|
|
194
|
+
Feature: Passing background sample
|
|
195
|
+
|
|
196
|
+
Background:
|
|
197
|
+
Given '10' cukes
|
|
198
|
+
|
|
199
|
+
Scenario: another passing background
|
|
200
|
+
Then I should have '10' cukes
|
|
201
|
+
|
|
202
|
+
1 scenario (1 passed)
|
|
203
|
+
2 steps (2 passed)
|
|
204
|
+
0m0.012s
|
|
205
|
+
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
Scenario: run a feature with a background that passes
|
|
209
|
+
When I run `cucumber -q features/passing_background.feature`
|
|
210
|
+
Then it should pass with exactly:
|
|
211
|
+
"""
|
|
212
|
+
Feature: Passing background sample
|
|
213
|
+
|
|
214
|
+
Background:
|
|
215
|
+
Given '10' cukes
|
|
216
|
+
|
|
217
|
+
Scenario: passing background
|
|
218
|
+
Then I should have '10' cukes
|
|
219
|
+
|
|
220
|
+
Scenario: another passing background
|
|
221
|
+
Then I should have '10' cukes
|
|
222
|
+
|
|
223
|
+
2 scenarios (2 passed)
|
|
224
|
+
4 steps (4 passed)
|
|
225
|
+
0m0.012s
|
|
226
|
+
|
|
227
|
+
"""
|
|
228
|
+
|
|
229
|
+
Scenario: run a feature with scenario outlines that has a background that passes
|
|
230
|
+
When I run `cucumber -q features/scenario_outline_passing_background.feature`
|
|
231
|
+
Then it should pass with exactly:
|
|
232
|
+
"""
|
|
233
|
+
Feature: Passing background with scenario outlines sample
|
|
234
|
+
|
|
235
|
+
Background:
|
|
236
|
+
Given '10' cukes
|
|
237
|
+
|
|
238
|
+
Scenario Outline: passing background
|
|
239
|
+
Then I should have '<count>' cukes
|
|
240
|
+
|
|
241
|
+
Examples:
|
|
242
|
+
| count |
|
|
243
|
+
| 10 |
|
|
244
|
+
|
|
245
|
+
Scenario Outline: another passing background
|
|
246
|
+
Then I should have '<count>' cukes
|
|
247
|
+
|
|
248
|
+
Examples:
|
|
249
|
+
| count |
|
|
250
|
+
| 10 |
|
|
251
|
+
|
|
252
|
+
2 scenarios (2 passed)
|
|
253
|
+
4 steps (4 passed)
|
|
254
|
+
0m0.012s
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
|
|
258
|
+
Scenario: run a feature with scenario outlines that has a background that passes
|
|
259
|
+
When I run `cucumber -q features/background_tagged_before_on_outline.feature`
|
|
260
|
+
Then it should pass with exactly:
|
|
261
|
+
"""
|
|
262
|
+
@background_tagged_before_on_outline
|
|
263
|
+
Feature: Background tagged Before on Outline
|
|
264
|
+
|
|
265
|
+
Background:
|
|
266
|
+
Given passing without a table
|
|
267
|
+
|
|
268
|
+
Scenario Outline: passing background
|
|
269
|
+
Then I should have '<count>' cukes
|
|
270
|
+
|
|
271
|
+
Examples:
|
|
272
|
+
| count |
|
|
273
|
+
| 888 |
|
|
274
|
+
|
|
275
|
+
1 scenario (1 passed)
|
|
276
|
+
2 steps (2 passed)
|
|
277
|
+
0m0.012s
|
|
278
|
+
|
|
279
|
+
"""
|
|
280
|
+
|
|
281
|
+
Scenario: run a feature with a background that fails
|
|
282
|
+
When I run `cucumber -q features/failing_background.feature`
|
|
283
|
+
Then it should fail with exactly:
|
|
284
|
+
"""
|
|
285
|
+
Feature: Failing background sample
|
|
286
|
+
|
|
287
|
+
Background:
|
|
288
|
+
Given failing without a table
|
|
289
|
+
FAIL (RuntimeError)
|
|
290
|
+
./features/step_definitions/steps.rb:2:in `flunker'
|
|
291
|
+
./features/step_definitions/steps.rb:14:in `/^failing without a table$/'
|
|
292
|
+
features/failing_background.feature:4:in `Given failing without a table'
|
|
293
|
+
And '10' cukes
|
|
294
|
+
|
|
295
|
+
Scenario: failing background
|
|
296
|
+
Then I should have '10' cukes
|
|
297
|
+
|
|
298
|
+
Scenario: another failing background
|
|
299
|
+
Then I should have '10' cukes
|
|
300
|
+
|
|
301
|
+
Failing Scenarios:
|
|
302
|
+
cucumber features/failing_background.feature:7
|
|
303
|
+
|
|
304
|
+
2 scenarios (1 failed, 1 skipped)
|
|
305
|
+
6 steps (1 failed, 5 skipped)
|
|
306
|
+
0m0.012s
|
|
307
|
+
|
|
308
|
+
"""
|
|
309
|
+
|
|
310
|
+
Scenario: run a feature with scenario outlines that has a background that fails
|
|
311
|
+
When I run `cucumber -q features/scenario_outline_failing_background.feature`
|
|
312
|
+
Then it should fail with exactly:
|
|
313
|
+
"""
|
|
314
|
+
Feature: Failing background with scenario outlines sample
|
|
315
|
+
|
|
316
|
+
Background:
|
|
317
|
+
Given failing without a table
|
|
318
|
+
FAIL (RuntimeError)
|
|
319
|
+
./features/step_definitions/steps.rb:2:in `flunker'
|
|
320
|
+
./features/step_definitions/steps.rb:14:in `/^failing without a table$/'
|
|
321
|
+
features/scenario_outline_failing_background.feature:4:in `Given failing without a table'
|
|
322
|
+
|
|
323
|
+
Scenario Outline: failing background
|
|
324
|
+
Then I should have '<count>' cukes
|
|
325
|
+
|
|
326
|
+
Examples:
|
|
327
|
+
| count |
|
|
328
|
+
| 10 |
|
|
329
|
+
|
|
330
|
+
Scenario Outline: another failing background
|
|
331
|
+
Then I should have '<count>' cukes
|
|
332
|
+
|
|
333
|
+
Examples:
|
|
334
|
+
| count |
|
|
335
|
+
| 10 |
|
|
336
|
+
|
|
337
|
+
Failing Scenarios:
|
|
338
|
+
cucumber features/scenario_outline_failing_background.feature:6
|
|
339
|
+
|
|
340
|
+
2 scenarios (1 failed, 1 skipped)
|
|
341
|
+
4 steps (1 failed, 3 skipped)
|
|
342
|
+
0m0.012s
|
|
343
|
+
|
|
344
|
+
"""
|
|
345
|
+
|
|
346
|
+
Scenario: run a feature with a background that is pending
|
|
347
|
+
When I run `cucumber -q features/pending_background.feature`
|
|
348
|
+
Then it should pass with exactly:
|
|
349
|
+
"""
|
|
350
|
+
Feature: Pending background sample
|
|
351
|
+
|
|
352
|
+
Background:
|
|
353
|
+
Given pending
|
|
354
|
+
|
|
355
|
+
Scenario: pending background
|
|
356
|
+
Then I should have '10' cukes
|
|
357
|
+
|
|
358
|
+
Scenario: another pending background
|
|
359
|
+
Then I should have '10' cukes
|
|
360
|
+
|
|
361
|
+
2 scenarios (2 undefined)
|
|
362
|
+
4 steps (2 skipped, 2 undefined)
|
|
363
|
+
0m0.012s
|
|
364
|
+
|
|
365
|
+
"""
|
|
366
|
+
|
|
367
|
+
Scenario: background passes with first scenario but fails with second
|
|
368
|
+
When I run `cucumber -q features/failing_background_after_success.feature`
|
|
369
|
+
Then it should fail with exactly:
|
|
370
|
+
"""
|
|
371
|
+
Feature: Failing background after previously successful background sample
|
|
372
|
+
|
|
373
|
+
Background:
|
|
374
|
+
Given passing without a table
|
|
375
|
+
And '10' global cukes
|
|
376
|
+
|
|
377
|
+
Scenario: passing background
|
|
378
|
+
Then I should have '10' global cukes
|
|
379
|
+
|
|
380
|
+
Scenario: failing background
|
|
381
|
+
And '10' global cukes
|
|
382
|
+
FAIL (RuntimeError)
|
|
383
|
+
./features/step_definitions/steps.rb:2:in `flunker'
|
|
384
|
+
./features/step_definitions/steps.rb:19:in `/^'(.+)' global cukes$/'
|
|
385
|
+
features/failing_background_after_success.feature:5:in `And '10' global cukes'
|
|
386
|
+
Then I should have '10' global cukes
|
|
387
|
+
|
|
388
|
+
Failing Scenarios:
|
|
389
|
+
cucumber features/failing_background_after_success.feature:10
|
|
390
|
+
|
|
391
|
+
2 scenarios (1 failed, 1 passed)
|
|
392
|
+
6 steps (1 failed, 1 skipped, 4 passed)
|
|
393
|
+
0m0.012s
|
|
394
|
+
|
|
395
|
+
"""
|
|
396
|
+
|
|
397
|
+
Scenario: background with multline args
|
|
398
|
+
Given a file named "features/step_definitions/multiline_steps.rb" with:
|
|
399
|
+
"""
|
|
400
|
+
Given /^table$/ do |table| x=1
|
|
401
|
+
@table = table
|
|
402
|
+
end
|
|
403
|
+
|
|
404
|
+
Given /^multiline string$/ do |string| x=1
|
|
405
|
+
@multiline = string
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
Then /^the table should be$/ do |table| x=1
|
|
409
|
+
@table.raw.should == table.raw
|
|
410
|
+
end
|
|
411
|
+
|
|
412
|
+
Then /^the multiline string should be$/ do |string| x=1
|
|
413
|
+
@multiline.should == string
|
|
414
|
+
end
|
|
415
|
+
"""
|
|
416
|
+
When I run `cucumber -q features/multiline_args_background.feature`
|
|
417
|
+
Then it should pass with exactly:
|
|
418
|
+
"""
|
|
419
|
+
Feature: Passing background with multiline args
|
|
420
|
+
|
|
421
|
+
Background:
|
|
422
|
+
Given table
|
|
423
|
+
| a | b |
|
|
424
|
+
| c | d |
|
|
425
|
+
And multiline string
|
|
426
|
+
\"\"\"
|
|
427
|
+
I'm a cucumber and I'm okay.
|
|
428
|
+
I sleep all night and I test all day
|
|
429
|
+
\"\"\"
|
|
430
|
+
|
|
431
|
+
Scenario: passing background
|
|
432
|
+
Then the table should be
|
|
433
|
+
| a | b |
|
|
434
|
+
| c | d |
|
|
435
|
+
Then the multiline string should be
|
|
436
|
+
\"\"\"
|
|
437
|
+
I'm a cucumber and I'm okay.
|
|
438
|
+
I sleep all night and I test all day
|
|
439
|
+
\"\"\"
|
|
440
|
+
|
|
441
|
+
Scenario: another passing background
|
|
442
|
+
Then the table should be
|
|
443
|
+
| a | b |
|
|
444
|
+
| c | d |
|
|
445
|
+
Then the multiline string should be
|
|
446
|
+
\"\"\"
|
|
447
|
+
I'm a cucumber and I'm okay.
|
|
448
|
+
I sleep all night and I test all day
|
|
449
|
+
\"\"\"
|
|
450
|
+
|
|
451
|
+
2 scenarios (2 passed)
|
|
452
|
+
8 steps (8 passed)
|
|
453
|
+
0m0.012s
|
|
454
|
+
|
|
455
|
+
"""
|
|
456
|
+
|
|
457
|
+
Scenario: https://rspec.lighthouseapp.com/projects/16211/tickets/329
|
|
458
|
+
Given a file named "features/only_background_and_hooks.feature" with:
|
|
459
|
+
"""
|
|
460
|
+
Feature: woo yeah
|
|
461
|
+
|
|
462
|
+
Background: Whatever
|
|
463
|
+
Given whatever
|
|
464
|
+
|
|
465
|
+
"""
|
|
466
|
+
And a file named "features/only_background_and_hooks_steps.rb" with:
|
|
467
|
+
"""
|
|
468
|
+
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
|
|
469
|
+
|
|
470
|
+
Before do
|
|
471
|
+
$before = true
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
After do
|
|
475
|
+
$after = true
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
Given(/^whatever$/) { $before.should == true; $step = true }
|
|
479
|
+
|
|
480
|
+
at_exit do
|
|
481
|
+
$before.should == true
|
|
482
|
+
$step.should == true
|
|
483
|
+
$after.should == true
|
|
484
|
+
end
|
|
485
|
+
"""
|
|
486
|
+
When I run `cucumber features/only_background_and_hooks.feature`
|
|
487
|
+
Then it should pass with exactly:
|
|
488
|
+
"""
|
|
489
|
+
Feature: woo yeah
|
|
490
|
+
|
|
491
|
+
Background: Whatever # features/only_background_and_hooks.feature:3
|
|
492
|
+
Given whatever # features/only_background_and_hooks_steps.rb:11
|
|
493
|
+
|
|
494
|
+
0 scenarios
|
|
495
|
+
1 step (1 passed)
|
|
496
|
+
0m0.012s
|
|
497
|
+
|
|
498
|
+
"""
|