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,117 @@
|
|
|
1
|
+
Feature: Cucumber command line
|
|
2
|
+
In order to write better software
|
|
3
|
+
Developers should be able to execute requirements as tests
|
|
4
|
+
|
|
5
|
+
Scenario: Run scenario outline with filtering on outline name
|
|
6
|
+
When I run cucumber -q features --name "Test state"
|
|
7
|
+
Then it should fail with
|
|
8
|
+
"""
|
|
9
|
+
Feature: Outline Sample
|
|
10
|
+
|
|
11
|
+
Scenario Outline: Test state
|
|
12
|
+
Given <state> without a table
|
|
13
|
+
Given <other_state> without a table
|
|
14
|
+
|
|
15
|
+
Examples: Rainbow colours
|
|
16
|
+
| state | other_state |
|
|
17
|
+
| missing | passing |
|
|
18
|
+
| passing | passing |
|
|
19
|
+
| failing | passing |
|
|
20
|
+
FAIL (RuntimeError)
|
|
21
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
22
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
23
|
+
features/outline_sample.feature:6:in `Given <state> without a table'
|
|
24
|
+
|
|
25
|
+
Examples: Only passing
|
|
26
|
+
| state | other_state |
|
|
27
|
+
| passing | passing |
|
|
28
|
+
|
|
29
|
+
Failing Scenarios:
|
|
30
|
+
cucumber features/outline_sample.feature:5
|
|
31
|
+
|
|
32
|
+
4 scenarios (1 failed, 1 undefined, 2 passed)
|
|
33
|
+
8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
|
|
34
|
+
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
Scenario: Run scenario outline steps only
|
|
38
|
+
When I run cucumber -q features/outline_sample.feature:7
|
|
39
|
+
Then it should fail with
|
|
40
|
+
"""
|
|
41
|
+
Feature: Outline Sample
|
|
42
|
+
|
|
43
|
+
Scenario Outline: Test state
|
|
44
|
+
Given <state> without a table
|
|
45
|
+
Given <other_state> without a table
|
|
46
|
+
|
|
47
|
+
Examples: Rainbow colours
|
|
48
|
+
| state | other_state |
|
|
49
|
+
| missing | passing |
|
|
50
|
+
| passing | passing |
|
|
51
|
+
| failing | passing |
|
|
52
|
+
FAIL (RuntimeError)
|
|
53
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
54
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
55
|
+
features/outline_sample.feature:6:in `Given <state> without a table'
|
|
56
|
+
|
|
57
|
+
Examples: Only passing
|
|
58
|
+
| state | other_state |
|
|
59
|
+
| passing | passing |
|
|
60
|
+
|
|
61
|
+
Failing Scenarios:
|
|
62
|
+
cucumber features/outline_sample.feature:5
|
|
63
|
+
|
|
64
|
+
4 scenarios (1 failed, 1 undefined, 2 passed)
|
|
65
|
+
8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
|
|
66
|
+
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
Scenario: Run single failing scenario outline table row
|
|
70
|
+
When I run cucumber features/outline_sample.feature:12
|
|
71
|
+
Then it should fail with
|
|
72
|
+
"""
|
|
73
|
+
Feature: Outline Sample
|
|
74
|
+
|
|
75
|
+
Scenario Outline: Test state # features/outline_sample.feature:5
|
|
76
|
+
Given <state> without a table # features/step_definitions/sample_steps.rb:15
|
|
77
|
+
Given <other_state> without a table # features/step_definitions/sample_steps.rb:12
|
|
78
|
+
|
|
79
|
+
Examples: Rainbow colours
|
|
80
|
+
| state | other_state |
|
|
81
|
+
| failing | passing |
|
|
82
|
+
FAIL (RuntimeError)
|
|
83
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
84
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
85
|
+
features/outline_sample.feature:6:in `Given <state> without a table'
|
|
86
|
+
|
|
87
|
+
Failing Scenarios:
|
|
88
|
+
cucumber features/outline_sample.feature:5 # Scenario: Test state
|
|
89
|
+
|
|
90
|
+
1 scenario (1 failed)
|
|
91
|
+
2 steps (1 failed, 1 skipped)
|
|
92
|
+
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
# There are 10 characters in the progress, but only 8 reported steps. Needs investigation.
|
|
96
|
+
# Looks like we're outputting too many characters.
|
|
97
|
+
Scenario: Run all with progress formatter
|
|
98
|
+
When I run cucumber -q --format progress features/outline_sample.feature
|
|
99
|
+
Then it should fail with
|
|
100
|
+
"""
|
|
101
|
+
--U-..F-..
|
|
102
|
+
|
|
103
|
+
(::) failed steps (::)
|
|
104
|
+
|
|
105
|
+
FAIL (RuntimeError)
|
|
106
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
107
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
108
|
+
features/outline_sample.feature:6:in `Given <state> without a table'
|
|
109
|
+
|
|
110
|
+
Failing Scenarios:
|
|
111
|
+
cucumber features/outline_sample.feature:5
|
|
112
|
+
|
|
113
|
+
5 scenarios (1 failed, 1 undefined, 3 passed)
|
|
114
|
+
8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
|
|
115
|
+
|
|
116
|
+
"""
|
|
117
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Feature: Print snippets
|
|
2
|
+
In order to make it easier to implement step definitions
|
|
3
|
+
Developers should get a scaffolding for undefined step definitions
|
|
4
|
+
|
|
5
|
+
Scenario: Cucumber doesn't know what language, and defaults to Ruby
|
|
6
|
+
Given a standard Cucumber project directory structure
|
|
7
|
+
And a file named "features/x.feature" with:
|
|
8
|
+
"""
|
|
9
|
+
Feature: X
|
|
10
|
+
Scenario: Y
|
|
11
|
+
Given Z
|
|
12
|
+
Given Q
|
|
13
|
+
"""
|
|
14
|
+
When I run cucumber features
|
|
15
|
+
Then STDERR should be empty
|
|
16
|
+
And it should pass with
|
|
17
|
+
"""
|
|
18
|
+
Feature: X
|
|
19
|
+
|
|
20
|
+
Scenario: Y # features/x.feature:2
|
|
21
|
+
Given Z # features/x.feature:3
|
|
22
|
+
Given Q # features/x.feature:4
|
|
23
|
+
|
|
24
|
+
1 scenario (1 undefined)
|
|
25
|
+
2 steps (2 undefined)
|
|
26
|
+
|
|
27
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
28
|
+
|
|
29
|
+
Given /^Z$/ do
|
|
30
|
+
pending # express the regexp above with the code you wish you had
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Given /^Q$/ do
|
|
34
|
+
pending # express the regexp above with the code you wish you had
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
If you want snippets in a different programming language, just make sure a file
|
|
38
|
+
with the appropriate file extension exists where cucumber looks for step definitions.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Feature: Cucumber command line
|
|
2
|
+
In order to write better software
|
|
3
|
+
Developers should be able to execute requirements as tests
|
|
4
|
+
|
|
5
|
+
@rspec2
|
|
6
|
+
Scenario: Run single failing scenario with default diff enabled
|
|
7
|
+
When I run cucumber -q features/failing_expectation.feature
|
|
8
|
+
Then it should fail with
|
|
9
|
+
"""
|
|
10
|
+
Feature: Failing expectation
|
|
11
|
+
|
|
12
|
+
Scenario: Failing expectation
|
|
13
|
+
Given failing expectation
|
|
14
|
+
expected: "that"
|
|
15
|
+
got: "this" (using ==) (RSpec::Expectations::ExpectationNotMetError)
|
|
16
|
+
./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
|
|
17
|
+
features/failing_expectation.feature:4:in `Given failing expectation'
|
|
18
|
+
|
|
19
|
+
Failing Scenarios:
|
|
20
|
+
cucumber features/failing_expectation.feature:3
|
|
21
|
+
|
|
22
|
+
1 scenario (1 failed)
|
|
23
|
+
1 step (1 failed)
|
|
24
|
+
|
|
25
|
+
"""
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
@spork
|
|
2
|
+
Feature: DRb Server Integration
|
|
3
|
+
To prevent waiting for Rails and other large Ruby applications to load their environments
|
|
4
|
+
for each feature run Cucumber ships with a DRb client that can speak to a server which
|
|
5
|
+
loads up the environment only once.
|
|
6
|
+
|
|
7
|
+
Background: App with Spork support
|
|
8
|
+
Spork is a gem that has a DRb server and the scenarios below illustrate how to use it.
|
|
9
|
+
However, any DRb server that adheres to the protocol that the client expects would work.
|
|
10
|
+
|
|
11
|
+
Given a standard Cucumber project directory structure
|
|
12
|
+
And a file named "features/support/env.rb" with:
|
|
13
|
+
"""
|
|
14
|
+
require 'rubygems'
|
|
15
|
+
require 'spork'
|
|
16
|
+
|
|
17
|
+
Spork.prefork do
|
|
18
|
+
puts "I'm loading all the heavy stuff..."
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
Spork.each_run do
|
|
22
|
+
puts "I'm loading the stuff just for this run..."
|
|
23
|
+
end
|
|
24
|
+
"""
|
|
25
|
+
And a file named "features/sample.feature" with:
|
|
26
|
+
"""
|
|
27
|
+
# language: en
|
|
28
|
+
Feature: Sample
|
|
29
|
+
Scenario: this is a test
|
|
30
|
+
Given I am just testing stuff
|
|
31
|
+
"""
|
|
32
|
+
And a file named "features/essai.feature" with:
|
|
33
|
+
"""
|
|
34
|
+
# language: fr
|
|
35
|
+
Fonctionnalité: Essai
|
|
36
|
+
Scenario: ceci est un test
|
|
37
|
+
Soit je teste
|
|
38
|
+
"""
|
|
39
|
+
And a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
|
|
40
|
+
"""
|
|
41
|
+
Given /^I am just testing stuff$/ do
|
|
42
|
+
# no-op
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
Soit /^je teste$/ do
|
|
46
|
+
# no-op
|
|
47
|
+
end
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
Scenario: Feature Passing with --drb flag
|
|
51
|
+
Given I am running spork in the background
|
|
52
|
+
|
|
53
|
+
When I run cucumber features --drb
|
|
54
|
+
Then it should pass
|
|
55
|
+
And STDERR should be empty
|
|
56
|
+
And the output should contain
|
|
57
|
+
"""
|
|
58
|
+
1 step (1 passed)
|
|
59
|
+
"""
|
|
60
|
+
And the output should contain
|
|
61
|
+
"""
|
|
62
|
+
I'm loading the stuff just for this run...
|
|
63
|
+
"""
|
|
64
|
+
And the output should not contain
|
|
65
|
+
"""
|
|
66
|
+
I'm loading all the heavy stuff...
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
Scenario: Feature Failing with --drb flag
|
|
70
|
+
Given a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
|
|
71
|
+
"""
|
|
72
|
+
Given /^I am just testing stuff$/ do
|
|
73
|
+
raise "Oh noes!"
|
|
74
|
+
end
|
|
75
|
+
"""
|
|
76
|
+
And I am running spork in the background
|
|
77
|
+
|
|
78
|
+
When I run cucumber features --drb
|
|
79
|
+
Then it should fail
|
|
80
|
+
And the output should contain
|
|
81
|
+
"""
|
|
82
|
+
1 step (1 failed)
|
|
83
|
+
"""
|
|
84
|
+
And the output should contain
|
|
85
|
+
"""
|
|
86
|
+
I'm loading the stuff just for this run...
|
|
87
|
+
"""
|
|
88
|
+
And the output should not contain
|
|
89
|
+
"""
|
|
90
|
+
I'm loading all the heavy stuff...
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
Scenario: Feature Run with --drb flag with no DRb server running
|
|
94
|
+
Cucumber will fall back on running the features locally in this case.
|
|
95
|
+
|
|
96
|
+
Given I am not running a DRb server in the background
|
|
97
|
+
|
|
98
|
+
When I run cucumber features --drb
|
|
99
|
+
Then it should pass
|
|
100
|
+
And STDERR should match
|
|
101
|
+
"""
|
|
102
|
+
No DRb server is running. Running features locally:
|
|
103
|
+
"""
|
|
104
|
+
And the output should contain
|
|
105
|
+
"""
|
|
106
|
+
I'm loading all the heavy stuff...
|
|
107
|
+
I'm loading the stuff just for this run...
|
|
108
|
+
"""
|
|
109
|
+
And the output should contain
|
|
110
|
+
"""
|
|
111
|
+
1 step (1 passed)
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
Scenario: Feature Run with --drb flag *defined in a profile* with no DRb server running
|
|
116
|
+
|
|
117
|
+
Given I am not running a DRb server in the background
|
|
118
|
+
And the following profile is defined:
|
|
119
|
+
"""
|
|
120
|
+
server: --drb features
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
When I run cucumber --profile server
|
|
124
|
+
Then it should pass
|
|
125
|
+
And STDERR should match
|
|
126
|
+
"""
|
|
127
|
+
No DRb server is running. Running features locally:
|
|
128
|
+
"""
|
|
129
|
+
And the output should contain
|
|
130
|
+
"""
|
|
131
|
+
I'm loading all the heavy stuff...
|
|
132
|
+
I'm loading the stuff just for this run...
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
Scenario: Feature Run with --drb specifying a non-standard port
|
|
136
|
+
|
|
137
|
+
Given I am running spork in the background on port 9000
|
|
138
|
+
|
|
139
|
+
When I run cucumber features --drb --port 9000
|
|
140
|
+
Then it should pass
|
|
141
|
+
And STDERR should be empty
|
|
142
|
+
And the output should contain
|
|
143
|
+
"""
|
|
144
|
+
1 step (1 passed)
|
|
145
|
+
"""
|
|
146
|
+
And the output should contain
|
|
147
|
+
"""
|
|
148
|
+
I'm loading the stuff just for this run...
|
|
149
|
+
"""
|
|
150
|
+
And the output should not contain
|
|
151
|
+
"""
|
|
152
|
+
I'm loading all the heavy stuff...
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
Scenario: Feature Run with $CUCUMBER_DRB environment variable
|
|
156
|
+
|
|
157
|
+
Given I have environment variable CUCUMBER_DRB set to "9000"
|
|
158
|
+
And I am running spork in the background on port 9000
|
|
159
|
+
|
|
160
|
+
When I run cucumber features/ --drb
|
|
161
|
+
Then it should pass
|
|
162
|
+
And STDERR should be empty
|
|
163
|
+
And the output should contain
|
|
164
|
+
"""
|
|
165
|
+
1 step (1 passed)
|
|
166
|
+
"""
|
|
167
|
+
And the output should contain
|
|
168
|
+
"""
|
|
169
|
+
I'm loading the stuff just for this run...
|
|
170
|
+
"""
|
|
171
|
+
And the output should not contain
|
|
172
|
+
"""
|
|
173
|
+
I'm loading all the heavy stuff...
|
|
174
|
+
"""
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Feature: Exception in After Block
|
|
2
|
+
In order to use custom assertions at the end of each scenario
|
|
3
|
+
As a developer
|
|
4
|
+
I want exceptions raised in After blocks to be handled gracefully and reported by the formatters
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
Given /^this step does something naughty$/ do x=1
|
|
11
|
+
@naughty = true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Given(/^this step works$/) do; end
|
|
15
|
+
"""
|
|
16
|
+
And a file named "features/support/env.rb" with:
|
|
17
|
+
"""
|
|
18
|
+
class NaughtyScenarioException < Exception; end
|
|
19
|
+
After do
|
|
20
|
+
if @naughty
|
|
21
|
+
raise NaughtyScenarioException.new("This scenario has been very very naughty")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
Scenario: Handle Exception in standard scenario step and carry on
|
|
27
|
+
Given a file named "features/naughty_step_in_scenario.feature" with:
|
|
28
|
+
"""
|
|
29
|
+
Feature: Sample
|
|
30
|
+
|
|
31
|
+
Scenario: Naughty Step
|
|
32
|
+
Given this step does something naughty
|
|
33
|
+
|
|
34
|
+
Scenario: Success
|
|
35
|
+
Given this step works
|
|
36
|
+
"""
|
|
37
|
+
When I run cucumber features
|
|
38
|
+
Then it should fail with
|
|
39
|
+
"""
|
|
40
|
+
Feature: Sample
|
|
41
|
+
|
|
42
|
+
Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
|
|
43
|
+
Given this step does something naughty # features/step_definitions/steps.rb:1
|
|
44
|
+
This scenario has been very very naughty (NaughtyScenarioException)
|
|
45
|
+
./features/support/env.rb:4:in `After'
|
|
46
|
+
|
|
47
|
+
Scenario: Success # features/naughty_step_in_scenario.feature:6
|
|
48
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
49
|
+
|
|
50
|
+
Failing Scenarios:
|
|
51
|
+
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
|
52
|
+
|
|
53
|
+
2 scenarios (1 failed, 1 passed)
|
|
54
|
+
2 steps (2 passed)
|
|
55
|
+
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
Scenario: Handle Exception in scenario outline table row and carry on
|
|
59
|
+
Given a file named "features/naughty_step_in_scenario_outline.feature" with:
|
|
60
|
+
"""
|
|
61
|
+
Feature: Sample
|
|
62
|
+
|
|
63
|
+
Scenario Outline: Naughty Step
|
|
64
|
+
Given this step <Might Work>
|
|
65
|
+
|
|
66
|
+
Examples:
|
|
67
|
+
| Might Work |
|
|
68
|
+
| works |
|
|
69
|
+
| does something naughty |
|
|
70
|
+
| works |
|
|
71
|
+
|
|
72
|
+
Scenario: Success
|
|
73
|
+
Given this step works
|
|
74
|
+
|
|
75
|
+
"""
|
|
76
|
+
When I run cucumber features
|
|
77
|
+
Then it should fail with
|
|
78
|
+
"""
|
|
79
|
+
Feature: Sample
|
|
80
|
+
|
|
81
|
+
Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
|
|
82
|
+
Given this step <Might Work> # features/step_definitions/steps.rb:5
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
| Might Work |
|
|
86
|
+
| works |
|
|
87
|
+
| does something naughty |
|
|
88
|
+
This scenario has been very very naughty (NaughtyScenarioException)
|
|
89
|
+
./features/support/env.rb:4:in `After'
|
|
90
|
+
| works |
|
|
91
|
+
|
|
92
|
+
Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
|
|
93
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
94
|
+
|
|
95
|
+
Failing Scenarios:
|
|
96
|
+
cucumber features/naughty_step_in_scenario_outline.feature:3 # Scenario: Naughty Step
|
|
97
|
+
|
|
98
|
+
4 scenarios (1 failed, 3 passed)
|
|
99
|
+
4 steps (4 passed)
|
|
100
|
+
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
Scenario: Handle Exception using the progress format
|
|
104
|
+
Given a file named "features/naughty_step_in_scenario.feature" with:
|
|
105
|
+
"""
|
|
106
|
+
Feature: Sample
|
|
107
|
+
|
|
108
|
+
Scenario: Naughty Step
|
|
109
|
+
Given this step does something naughty
|
|
110
|
+
|
|
111
|
+
Scenario: Success
|
|
112
|
+
Given this step works
|
|
113
|
+
"""
|
|
114
|
+
When I run cucumber features --format progress
|
|
115
|
+
Then it should fail with
|
|
116
|
+
"""
|
|
117
|
+
.F.
|
|
118
|
+
|
|
119
|
+
Failing Scenarios:
|
|
120
|
+
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
|
121
|
+
|
|
122
|
+
2 scenarios (1 failed, 1 passed)
|
|
123
|
+
2 steps (2 passed)
|
|
124
|
+
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
|