kbaum-cucumber 0.4.5.pre
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 +18 -0
- data/Caliper.yml +5 -0
- data/History.txt +1292 -0
- data/LICENSE +22 -0
- data/README.rdoc +26 -0
- data/Rakefile +63 -0
- data/VERSION.yml +5 -0
- data/bin/cucumber +16 -0
- data/cucumber.gemspec +741 -0
- data/cucumber.yml +10 -0
- data/examples/dos_line_endings/Rakefile +6 -0
- data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
- data/examples/i18n/README.textile +18 -0
- data/examples/i18n/Rakefile +32 -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 +6 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/cat/Rakefile +6 -0
- data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
- data/examples/i18n/cat/features/suma.feature +17 -0
- data/examples/i18n/cat/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 +8 -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/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 +38 -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 +14 -0
- data/examples/i18n/hu/.gitignore +1 -0
- data/examples/i18n/hu/Rakefile +6 -0
- data/examples/i18n/hu/features/addition.feature +17 -0
- data/examples/i18n/hu/features/division.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 +24 -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 +6 -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 +6 -0
- data/examples/i18n/pt/lib/calculadora.rb +10 -0
- data/examples/i18n/ro/Rakefile +6 -0
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ro/features/suma.feature +11 -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 +6 -0
- data/examples/i18n/ru/features/support/world.rb +8 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/Rakefile +6 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/se/features/summering.feature +18 -0
- data/examples/i18n/se/lib/kalkulator.rb +11 -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-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/sr/Rakefile +6 -0
- data/examples/i18n/sr/features/sabiranje.feature +18 -0
- data/examples/i18n/sr/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sr/lib/calculator.rb +12 -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/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 +6 -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/junit/features/one_passing_one_failing.feature +8 -0
- data/examples/junit/features/pending.feature +5 -0
- data/examples/junit/features/step_definitions/steps.rb +11 -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/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/selenium/Rakefile +6 -0
- data/examples/selenium/features/search.feature +9 -0
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/Rakefile +6 -0
- data/examples/selenium_webrat/config.ru +0 -0
- data/examples/selenium_webrat/features/search.feature +9 -0
- data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium_webrat/features/support/env.rb +45 -0
- data/examples/self_test/.gitignore +1 -0
- data/examples/self_test/README.textile +6 -0
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
- data/examples/self_test/features/background/background_with_name.feature +7 -0
- data/examples/self_test/features/background/failing_background.feature +12 -0
- data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
- data/examples/self_test/features/background/multiline_args_background.feature +32 -0
- data/examples/self_test/features/background/passing_background.feature +10 -0
- data/examples/self_test/features/background/pending_background.feature +10 -0
- data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
- data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
- data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
- data/examples/self_test/features/failing_expectation.feature +4 -0
- data/examples/self_test/features/lots_of_undefined.feature +8 -0
- data/examples/self_test/features/multiline_name.feature +27 -0
- data/examples/self_test/features/outline_sample.feature +15 -0
- data/examples/self_test/features/sample.feature +21 -0
- data/examples/self_test/features/search_sample.feature +32 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +81 -0
- data/examples/self_test/features/support/env.rb +18 -0
- data/examples/self_test/features/tags_sample.feature +17 -0
- data/examples/self_test/features/tons_of_cukes.feature +52 -0
- data/examples/self_test/features/undefined_multiline_args.feature +12 -0
- data/examples/self_test/list-of-features.txt +1 -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 +30 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
- data/examples/steps_library/features/step_definitions/steps_lib2.rb +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/tickets/Rakefile +20 -0
- data/examples/tickets/features.html +138 -0
- data/examples/tickets/features/172.feature +28 -0
- data/examples/tickets/features/177/1.feature +28 -0
- data/examples/tickets/features/177/2.feature +20 -0
- data/examples/tickets/features/177/3.feature +18 -0
- data/examples/tickets/features/180.feature +7 -0
- data/examples/tickets/features/229/tagged_hooks.feature +8 -0
- data/examples/tickets/features/229/tagged_hooks.rb +14 -0
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +12 -0
- data/examples/tickets/features/246.feature +4 -0
- data/examples/tickets/features/248.feature +11 -0
- data/examples/tickets/features/270/back.feature +14 -0
- data/examples/tickets/features/270/back.steps.rb +14 -0
- data/examples/tickets/features/272/hooks.feature +26 -0
- data/examples/tickets/features/272/hooks_steps.rb +53 -0
- data/examples/tickets/features/279/py_string_indent.feature +25 -0
- data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
- data/examples/tickets/features/279/wrong.feature_ +11 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
- data/examples/tickets/features/306/only_background.feature +4 -0
- data/examples/tickets/features/lib/eatting_machine.rb +18 -0
- data/examples/tickets/features/lib/pantry.rb +20 -0
- data/examples/tickets/features/scenario_outline.feature +95 -0
- data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
- data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +81 -0
- data/examples/tickets/features/table_diffing.feature +13 -0
- data/examples/tickets/features/tickets.feature +28 -0
- data/examples/watir/README.textile +16 -0
- data/examples/watir/Rakefile +10 -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 +44 -0
- data/examples/webrat/features/search.feature +12 -0
- data/examples/webrat/features/step_definitions/kvasir_steps.rb +14 -0
- data/examples/webrat/features/support/env.rb +17 -0
- data/features/announce.feature +122 -0
- data/features/background.feature +308 -0
- data/features/bug_371.feature +32 -0
- data/features/bug_464.feature +16 -0
- data/features/bug_475.feature +43 -0
- data/features/call_many_steps.feature +124 -0
- data/features/cucumber_cli.feature +654 -0
- data/features/cucumber_cli_diff_disabled.feature +52 -0
- data/features/cucumber_cli_outlines.feature +105 -0
- data/features/custom_formatter.feature +47 -0
- data/features/default_snippets.feature +42 -0
- data/features/drb_server_integration.feature +174 -0
- data/features/exception_in_after_block.feature +100 -0
- data/features/exception_in_after_step_block.feature +102 -0
- data/features/exception_in_before_block.feature +78 -0
- data/features/exclude_files.feature +20 -0
- data/features/expand.feature +60 -0
- data/features/html_formatter.feature +7 -0
- data/features/html_formatter/a.html +400 -0
- data/features/junit_formatter.feature +88 -0
- data/features/language_from_header.feature +30 -0
- data/features/language_help.feature +68 -0
- data/features/listener_debugger_formatter.feature +41 -0
- data/features/multiline_names.feature +43 -0
- data/features/negative_tagged_hooks.feature +61 -0
- data/features/post_configuration_hook.feature +37 -0
- data/features/profiles.feature +112 -0
- data/features/rake_task.feature +152 -0
- data/features/report_called_undefined_steps.feature +34 -0
- data/features/simplest.feature +11 -0
- data/features/snippet.feature +22 -0
- data/features/step_definitions/cucumber_steps.rb +154 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/step_definitions/simplest_steps.rb +3 -0
- data/features/step_definitions/wire_steps.rb +14 -0
- data/features/support/env.rb +141 -0
- data/features/support/env.rb.simplest +7 -0
- data/features/support/fake_wire_server.rb +63 -0
- data/features/table_diffing.feature +45 -0
- data/features/table_mapping.feature +35 -0
- data/features/tag_logic.feature +258 -0
- data/features/transform.feature +245 -0
- data/features/unicode_table.feature +35 -0
- data/features/usage_and_stepdefs_formatter.feature +169 -0
- data/features/wire_protocol.feature +177 -0
- data/features/work_in_progress.feature +156 -0
- data/gem_tasks/contributors.rake +13 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/features.rake +18 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/rspec.rake +15 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/sdoc.rake +12 -0
- data/lib/README.rdoc +12 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +131 -0
- data/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/autotest/discover.rb +9 -0
- data/lib/cucumber.rb +15 -0
- data/lib/cucumber/ast.rb +30 -0
- data/lib/cucumber/ast/background.rb +75 -0
- data/lib/cucumber/ast/comment.rb +31 -0
- data/lib/cucumber/ast/examples.rb +36 -0
- data/lib/cucumber/ast/feature.rb +85 -0
- data/lib/cucumber/ast/feature_element.rb +68 -0
- data/lib/cucumber/ast/features.rb +40 -0
- data/lib/cucumber/ast/outline_table.rb +166 -0
- data/lib/cucumber/ast/py_string.rb +59 -0
- data/lib/cucumber/ast/scenario.rb +111 -0
- data/lib/cucumber/ast/scenario_outline.rb +100 -0
- data/lib/cucumber/ast/step.rb +121 -0
- data/lib/cucumber/ast/step_collection.rb +76 -0
- data/lib/cucumber/ast/step_invocation.rb +190 -0
- data/lib/cucumber/ast/table.rb +655 -0
- data/lib/cucumber/ast/tags.rb +122 -0
- data/lib/cucumber/ast/tree_walker.rb +201 -0
- data/lib/cucumber/ast/visitor.rb +11 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +180 -0
- data/lib/cucumber/cli/drb_client.rb +32 -0
- data/lib/cucumber/cli/language_help_formatter.rb +72 -0
- data/lib/cucumber/cli/main.rb +121 -0
- data/lib/cucumber/cli/options.rb +404 -0
- data/lib/cucumber/cli/profile_loader.rb +82 -0
- data/lib/cucumber/constantize.rb +34 -0
- data/lib/cucumber/core_ext/instance_exec.rb +98 -0
- data/lib/cucumber/core_ext/proc.rb +30 -0
- data/lib/cucumber/core_ext/string.rb +16 -0
- data/lib/cucumber/feature_file.rb +54 -0
- data/lib/cucumber/filter.rb +41 -0
- data/lib/cucumber/formatter/ansicolor.rb +157 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +205 -0
- data/lib/cucumber/formatter/cucumber.css +248 -0
- data/lib/cucumber/formatter/cucumber.sass +241 -0
- data/lib/cucumber/formatter/debug.rb +33 -0
- data/lib/cucumber/formatter/duration.rb +13 -0
- data/lib/cucumber/formatter/html.rb +545 -0
- data/lib/cucumber/formatter/io.rb +33 -0
- data/lib/cucumber/formatter/junit.rb +149 -0
- data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
- data/lib/cucumber/formatter/pdf.rb +234 -0
- data/lib/cucumber/formatter/pretty.rb +237 -0
- data/lib/cucumber/formatter/progress.rb +75 -0
- data/lib/cucumber/formatter/rerun.rb +50 -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/tag_cloud.rb +34 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter/usage.rb +127 -0
- data/lib/cucumber/language_support.rb +30 -0
- data/lib/cucumber/language_support/language_methods.rb +110 -0
- data/lib/cucumber/languages.yml +535 -0
- data/lib/cucumber/parser.rb +8 -0
- data/lib/cucumber/parser/common.rb +170 -0
- data/lib/cucumber/parser/common.tt +21 -0
- data/lib/cucumber/parser/feature.rb +1783 -0
- data/lib/cucumber/parser/feature.tt +317 -0
- data/lib/cucumber/parser/i18n.tt +34 -0
- data/lib/cucumber/parser/natural_language.rb +108 -0
- data/lib/cucumber/parser/py_string.rb +276 -0
- data/lib/cucumber/parser/py_string.tt +45 -0
- data/lib/cucumber/parser/table.rb +305 -0
- data/lib/cucumber/parser/table.tt +60 -0
- data/lib/cucumber/parser/treetop_ext.rb +53 -0
- data/lib/cucumber/platform.rb +31 -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 +81 -0
- data/lib/cucumber/rake/task.rb +166 -0
- data/lib/cucumber/rb_support/rb_dsl.rb +102 -0
- data/lib/cucumber/rb_support/rb_hook.rb +19 -0
- data/lib/cucumber/rb_support/rb_language.rb +179 -0
- data/lib/cucumber/rb_support/rb_step_definition.rb +75 -0
- data/lib/cucumber/rb_support/rb_transform.rb +37 -0
- data/lib/cucumber/rb_support/rb_world.rb +81 -0
- data/lib/cucumber/rb_support/regexp_argument_matcher.rb +21 -0
- data/lib/cucumber/rspec_neuter.rb +23 -0
- data/lib/cucumber/step_argument.rb +9 -0
- data/lib/cucumber/step_definition_light.rb +20 -0
- data/lib/cucumber/step_match.rb +107 -0
- data/lib/cucumber/step_mother.rb +350 -0
- data/lib/cucumber/webrat/element_locator.rb +93 -0
- data/lib/cucumber/webrat/table_locator.rb +1 -0
- data/lib/cucumber/wire_support/connection.rb +42 -0
- data/lib/cucumber/wire_support/request_handler.rb +19 -0
- data/lib/cucumber/wire_support/wire_exception.rb +10 -0
- data/lib/cucumber/wire_support/wire_language.rb +52 -0
- data/lib/cucumber/wire_support/wire_packet.rb +34 -0
- data/lib/cucumber/wire_support/wire_protocol.rb +64 -0
- data/lib/cucumber/wire_support/wire_step_definition.rb +21 -0
- data/spec/cucumber/ast/background_spec.rb +54 -0
- data/spec/cucumber/ast/feature_element_spec.rb +41 -0
- data/spec/cucumber/ast/feature_factory.rb +62 -0
- data/spec/cucumber/ast/feature_spec.rb +44 -0
- data/spec/cucumber/ast/outline_table_spec.rb +21 -0
- data/spec/cucumber/ast/py_string_spec.rb +51 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +73 -0
- data/spec/cucumber/ast/scenario_spec.rb +45 -0
- data/spec/cucumber/ast/step_collection_spec.rb +17 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +422 -0
- data/spec/cucumber/ast/tags_spec.rb +29 -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 +396 -0
- data/spec/cucumber/cli/drb_client_spec.rb +77 -0
- data/spec/cucumber/cli/main_spec.rb +172 -0
- data/spec/cucumber/cli/options_spec.rb +335 -0
- data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
- data/spec/cucumber/core_ext/proc_spec.rb +68 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
- data/spec/cucumber/formatter/color_io_spec.rb +27 -0
- data/spec/cucumber/formatter/console_spec.rb +20 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/html_spec.rb +213 -0
- data/spec/cucumber/formatter/junit_spec.rb +110 -0
- data/spec/cucumber/formatter/progress_spec.rb +38 -0
- data/spec/cucumber/formatter/spec_helper.rb +50 -0
- data/spec/cucumber/parser/feature_parser_spec.rb +400 -0
- data/spec/cucumber/parser/table_parser_spec.rb +52 -0
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +132 -0
- data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +18 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_match_spec.rb +56 -0
- data/spec/cucumber/step_mother_spec.rb +270 -0
- data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
- data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
- data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
- data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
- data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
- data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
- data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
- data/spec/cucumber/treetop_parser/spaces.feature +12 -0
- data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
- data/spec/cucumber/treetop_parser/with_comments.feature +23 -0
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/wire_support/wire_language_spec.rb +47 -0
- data/spec/cucumber/wire_support/wire_packet_spec.rb +26 -0
- data/spec/cucumber/world/pending_spec.rb +46 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +18 -0
- metadata +813 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Feature: https://rspec.lighthouseapp.com/projects/16211/tickets/371
|
|
2
|
+
Scenario: Before runs once
|
|
3
|
+
Given a standard Cucumber project directory structure
|
|
4
|
+
And a file named "features/f.feature" with:
|
|
5
|
+
"""
|
|
6
|
+
Feature: F
|
|
7
|
+
Scenario: S
|
|
8
|
+
Given G
|
|
9
|
+
"""
|
|
10
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
11
|
+
"""
|
|
12
|
+
Before do
|
|
13
|
+
puts "B"
|
|
14
|
+
end
|
|
15
|
+
Given /G/ do
|
|
16
|
+
puts "G"
|
|
17
|
+
end
|
|
18
|
+
"""
|
|
19
|
+
When I run cucumber -q --format pretty --format progress --out progress.txt features/f.feature
|
|
20
|
+
Then it should pass with
|
|
21
|
+
"""
|
|
22
|
+
Feature: F
|
|
23
|
+
|
|
24
|
+
Scenario: S
|
|
25
|
+
B
|
|
26
|
+
G
|
|
27
|
+
Given G
|
|
28
|
+
|
|
29
|
+
1 scenario (1 passed)
|
|
30
|
+
1 step (1 passed)
|
|
31
|
+
|
|
32
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Feature: https://rspec.lighthouseapp.com/projects/16211/tickets/464
|
|
2
|
+
Scenario: Limiting with tags which do not exist in the features
|
|
3
|
+
Given a standard Cucumber project directory structure
|
|
4
|
+
And a file named "features/f.feature" with:
|
|
5
|
+
"""
|
|
6
|
+
Feature: Test
|
|
7
|
+
In order to test
|
|
8
|
+
As a tester
|
|
9
|
+
I want to test
|
|
10
|
+
|
|
11
|
+
@tag
|
|
12
|
+
Scenario: Testing
|
|
13
|
+
Given I'm a test
|
|
14
|
+
"""
|
|
15
|
+
When I run cucumber -q features/f.feature --tag @i_dont_exist
|
|
16
|
+
Then it should pass
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: https://rspec.lighthouseapp.com/projects/16211/tickets/475
|
|
2
|
+
Scenario: error on pystring in scenario outline with pretty formatter
|
|
3
|
+
Given a standard Cucumber project directory structure
|
|
4
|
+
And a file named "features/f.feature" with:
|
|
5
|
+
"""
|
|
6
|
+
Feature: F
|
|
7
|
+
Scenario Outline: S
|
|
8
|
+
Given a multiline string:
|
|
9
|
+
\"\"\"
|
|
10
|
+
hello <who>
|
|
11
|
+
\"\"\"
|
|
12
|
+
Examples:
|
|
13
|
+
| who |
|
|
14
|
+
| aslak |
|
|
15
|
+
| david |
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
18
|
+
"""
|
|
19
|
+
Given /a multiline string:/ do |s|
|
|
20
|
+
s.should =~ /hello (\w+)/
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
23
|
+
When I run cucumber features/f.feature
|
|
24
|
+
Then STDERR should be empty
|
|
25
|
+
And it should pass with
|
|
26
|
+
"""
|
|
27
|
+
Feature: F
|
|
28
|
+
|
|
29
|
+
Scenario Outline: S # features/f.feature:2
|
|
30
|
+
Given a multiline string: # features/step_definitions/steps.rb:1
|
|
31
|
+
\"\"\"
|
|
32
|
+
hello <who>
|
|
33
|
+
\"\"\"
|
|
34
|
+
|
|
35
|
+
Examples:
|
|
36
|
+
| who |
|
|
37
|
+
| aslak |
|
|
38
|
+
| david |
|
|
39
|
+
|
|
40
|
+
2 scenarios (2 passed)
|
|
41
|
+
2 steps (2 passed)
|
|
42
|
+
|
|
43
|
+
"""
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
Feature: http://gist.github.com/221223
|
|
2
|
+
In order to make it easier to extract several steps from
|
|
3
|
+
a feature file to a step definition I want to be able to
|
|
4
|
+
copy and paste.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/f.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
Feature: Test
|
|
11
|
+
|
|
12
|
+
Scenario: Multiline string
|
|
13
|
+
Given a multiline string:
|
|
14
|
+
\"\"\"
|
|
15
|
+
hello
|
|
16
|
+
world
|
|
17
|
+
\"\"\"
|
|
18
|
+
|
|
19
|
+
Scenario: Call a multiline string
|
|
20
|
+
Given I call a multiline string with MAMA
|
|
21
|
+
|
|
22
|
+
Scenario: Call a table
|
|
23
|
+
Given I call a table with MAMA
|
|
24
|
+
"""
|
|
25
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
26
|
+
"""
|
|
27
|
+
Given /^a multiline string:$/ do |s|
|
|
28
|
+
raise "I got multiline:\n#{s}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Given /^a table:$/ do |t|
|
|
32
|
+
raise "I got table:\n#{t.raw.inspect}"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
Given /^I call a multiline string with (.*)$/ do |s|
|
|
36
|
+
steps %Q{
|
|
37
|
+
Given a multiline string:
|
|
38
|
+
\"\"\"
|
|
39
|
+
hello
|
|
40
|
+
#{s}
|
|
41
|
+
\"\"\"
|
|
42
|
+
}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
Given /^I call a table with (.*)$/ do |s|
|
|
46
|
+
steps %Q{
|
|
47
|
+
Given a table:
|
|
48
|
+
|a|b|
|
|
49
|
+
|c|#{s}|
|
|
50
|
+
}
|
|
51
|
+
end
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
Scenario: Multiline string
|
|
55
|
+
When I run cucumber features/f.feature:6
|
|
56
|
+
Then STDERR should be empty
|
|
57
|
+
And it should fail with
|
|
58
|
+
"""
|
|
59
|
+
Feature: Test
|
|
60
|
+
|
|
61
|
+
Scenario: Multiline string # features/f.feature:3
|
|
62
|
+
Given a multiline string: # features/step_definitions/steps.rb:1
|
|
63
|
+
\"\"\"
|
|
64
|
+
hello
|
|
65
|
+
world
|
|
66
|
+
\"\"\"
|
|
67
|
+
I got multiline:
|
|
68
|
+
hello
|
|
69
|
+
world (RuntimeError)
|
|
70
|
+
./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
|
|
71
|
+
features/f.feature:4:in `Given a multiline string:'
|
|
72
|
+
|
|
73
|
+
Failing Scenarios:
|
|
74
|
+
cucumber features/f.feature:3 # Scenario: Multiline string
|
|
75
|
+
|
|
76
|
+
1 scenario (1 failed)
|
|
77
|
+
1 step (1 failed)
|
|
78
|
+
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
Scenario: Call multiline string
|
|
82
|
+
When I run cucumber features/f.feature:10
|
|
83
|
+
Then STDERR should be empty
|
|
84
|
+
And it should fail with
|
|
85
|
+
"""
|
|
86
|
+
Feature: Test
|
|
87
|
+
|
|
88
|
+
Scenario: Call a multiline string # features/f.feature:10
|
|
89
|
+
Given I call a multiline string with MAMA # features/step_definitions/steps.rb:9
|
|
90
|
+
I got multiline:
|
|
91
|
+
hello
|
|
92
|
+
MAMA (RuntimeError)
|
|
93
|
+
./features/step_definitions/steps.rb:2:in `/^a multiline string:$/'
|
|
94
|
+
features/f.feature:11:in `Given I call a multiline string with MAMA'
|
|
95
|
+
|
|
96
|
+
Failing Scenarios:
|
|
97
|
+
cucumber features/f.feature:10 # Scenario: Call a multiline string
|
|
98
|
+
|
|
99
|
+
1 scenario (1 failed)
|
|
100
|
+
1 step (1 failed)
|
|
101
|
+
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
Scenario: Call table
|
|
105
|
+
When I run cucumber features/f.feature:13
|
|
106
|
+
Then STDERR should be empty
|
|
107
|
+
And it should fail with
|
|
108
|
+
"""
|
|
109
|
+
Feature: Test
|
|
110
|
+
|
|
111
|
+
Scenario: Call a table # features/f.feature:13
|
|
112
|
+
Given I call a table with MAMA # features/step_definitions/steps.rb:19
|
|
113
|
+
I got table:
|
|
114
|
+
[["a", "b"], ["c", "MAMA"]] (RuntimeError)
|
|
115
|
+
./features/step_definitions/steps.rb:6:in `/^a table:$/'
|
|
116
|
+
features/f.feature:14:in `Given I call a table with MAMA'
|
|
117
|
+
|
|
118
|
+
Failing Scenarios:
|
|
119
|
+
cucumber features/f.feature:13 # Scenario: Call a table
|
|
120
|
+
|
|
121
|
+
1 scenario (1 failed)
|
|
122
|
+
1 step (1 failed)
|
|
123
|
+
|
|
124
|
+
"""
|
|
@@ -0,0 +1,654 @@
|
|
|
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 single scenario with missing step definition
|
|
6
|
+
When I run cucumber -q features/sample.feature:5
|
|
7
|
+
Then it should pass with
|
|
8
|
+
"""
|
|
9
|
+
# Feature comment
|
|
10
|
+
@one
|
|
11
|
+
Feature: Sample
|
|
12
|
+
|
|
13
|
+
@two @three
|
|
14
|
+
Scenario: Missing
|
|
15
|
+
Given missing
|
|
16
|
+
|
|
17
|
+
1 scenario (1 undefined)
|
|
18
|
+
1 step (1 undefined)
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
Scenario: Fail with --strict
|
|
23
|
+
When I run cucumber -q features/sample.feature:5 --strict
|
|
24
|
+
Then it should fail with
|
|
25
|
+
"""
|
|
26
|
+
# Feature comment
|
|
27
|
+
@one
|
|
28
|
+
Feature: Sample
|
|
29
|
+
|
|
30
|
+
@two @three
|
|
31
|
+
Scenario: Missing
|
|
32
|
+
Given missing
|
|
33
|
+
Undefined step: "missing" (Cucumber::Undefined)
|
|
34
|
+
features/sample.feature:7:in `Given missing'
|
|
35
|
+
|
|
36
|
+
1 scenario (1 undefined)
|
|
37
|
+
1 step (1 undefined)
|
|
38
|
+
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
Scenario: Succeed with --strict
|
|
42
|
+
When I run cucumber -q features/sample.feature:10 --strict
|
|
43
|
+
Then it should pass with
|
|
44
|
+
"""
|
|
45
|
+
# Feature comment
|
|
46
|
+
@one
|
|
47
|
+
Feature: Sample
|
|
48
|
+
|
|
49
|
+
# Scenario comment
|
|
50
|
+
@three
|
|
51
|
+
Scenario: Passing
|
|
52
|
+
Given passing
|
|
53
|
+
| a | b |
|
|
54
|
+
| c | d |
|
|
55
|
+
|
|
56
|
+
1 scenario (1 passed)
|
|
57
|
+
1 step (1 passed)
|
|
58
|
+
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
Scenario: Specify 2 line numbers where one is a tag
|
|
62
|
+
When I run cucumber -q features/sample.feature:5:16
|
|
63
|
+
Then it should fail with
|
|
64
|
+
"""
|
|
65
|
+
# Feature comment
|
|
66
|
+
@one
|
|
67
|
+
Feature: Sample
|
|
68
|
+
|
|
69
|
+
@two @three
|
|
70
|
+
Scenario: Missing
|
|
71
|
+
Given missing
|
|
72
|
+
|
|
73
|
+
@four
|
|
74
|
+
Scenario: Failing
|
|
75
|
+
Given failing
|
|
76
|
+
\"\"\"
|
|
77
|
+
hello
|
|
78
|
+
\"\"\"
|
|
79
|
+
FAIL (RuntimeError)
|
|
80
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
81
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
82
|
+
features/sample.feature:18:in `Given failing'
|
|
83
|
+
|
|
84
|
+
Failing Scenarios:
|
|
85
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
86
|
+
|
|
87
|
+
2 scenarios (1 failed, 1 undefined)
|
|
88
|
+
2 steps (1 failed, 1 undefined)
|
|
89
|
+
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
Scenario: Require missing step definition from elsewhere
|
|
93
|
+
When I run cucumber -q -r ../../features/step_definitions/extra_steps.rb features/sample.feature:5
|
|
94
|
+
Then it should pass with
|
|
95
|
+
"""
|
|
96
|
+
# Feature comment
|
|
97
|
+
@one
|
|
98
|
+
Feature: Sample
|
|
99
|
+
|
|
100
|
+
@two @three
|
|
101
|
+
Scenario: Missing
|
|
102
|
+
Given missing
|
|
103
|
+
|
|
104
|
+
1 scenario (1 passed)
|
|
105
|
+
1 step (1 passed)
|
|
106
|
+
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
Scenario: Specify the line number of a row
|
|
110
|
+
When I run cucumber -q features/sample.feature:12
|
|
111
|
+
Then it should pass with
|
|
112
|
+
"""
|
|
113
|
+
# Feature comment
|
|
114
|
+
@one
|
|
115
|
+
Feature: Sample
|
|
116
|
+
|
|
117
|
+
# Scenario comment
|
|
118
|
+
@three
|
|
119
|
+
Scenario: Passing
|
|
120
|
+
Given passing
|
|
121
|
+
| a | b |
|
|
122
|
+
| c | d |
|
|
123
|
+
|
|
124
|
+
1 scenario (1 passed)
|
|
125
|
+
1 step (1 passed)
|
|
126
|
+
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
Scenario: Use @-notation to specify a file containing feature file list
|
|
130
|
+
When I run cucumber -q @list-of-features.txt
|
|
131
|
+
Then it should pass with
|
|
132
|
+
"""
|
|
133
|
+
# Feature comment
|
|
134
|
+
@one
|
|
135
|
+
Feature: Sample
|
|
136
|
+
|
|
137
|
+
# Scenario comment
|
|
138
|
+
@three
|
|
139
|
+
Scenario: Passing
|
|
140
|
+
Given passing
|
|
141
|
+
| a | b |
|
|
142
|
+
| c | d |
|
|
143
|
+
|
|
144
|
+
1 scenario (1 passed)
|
|
145
|
+
1 step (1 passed)
|
|
146
|
+
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
Scenario: Run all with progress formatter
|
|
150
|
+
When I run cucumber -q --format progress features/sample.feature
|
|
151
|
+
Then it should fail with
|
|
152
|
+
"""
|
|
153
|
+
U.F
|
|
154
|
+
|
|
155
|
+
(::) failed steps (::)
|
|
156
|
+
|
|
157
|
+
FAIL (RuntimeError)
|
|
158
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
159
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
160
|
+
features/sample.feature:18:in `Given failing'
|
|
161
|
+
|
|
162
|
+
Failing Scenarios:
|
|
163
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
164
|
+
|
|
165
|
+
3 scenarios (1 failed, 1 undefined, 1 passed)
|
|
166
|
+
3 steps (1 failed, 1 undefined, 1 passed)
|
|
167
|
+
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
Scenario: Run Norwegian
|
|
171
|
+
Given I am in i18n/no
|
|
172
|
+
When I run cucumber -q features
|
|
173
|
+
Then STDERR should be empty
|
|
174
|
+
Then it should pass with
|
|
175
|
+
"""
|
|
176
|
+
# language: no
|
|
177
|
+
Egenskap: Summering
|
|
178
|
+
For å slippe å gjøre dumme feil
|
|
179
|
+
Som en regnskapsfører
|
|
180
|
+
Vil jeg kunne legge sammen
|
|
181
|
+
|
|
182
|
+
Scenario: to tall
|
|
183
|
+
Gitt at jeg har tastet inn 5
|
|
184
|
+
Og at jeg har tastet inn 7
|
|
185
|
+
Når jeg summerer
|
|
186
|
+
Så skal resultatet være 12
|
|
187
|
+
|
|
188
|
+
@iterasjon3
|
|
189
|
+
Scenario: tre tall
|
|
190
|
+
Gitt at jeg har tastet inn 5
|
|
191
|
+
Og at jeg har tastet inn 7
|
|
192
|
+
Og at jeg har tastet inn 1
|
|
193
|
+
Når jeg summerer
|
|
194
|
+
Så skal resultatet være 13
|
|
195
|
+
|
|
196
|
+
2 scenarios (2 passed)
|
|
197
|
+
9 steps (9 passed)
|
|
198
|
+
|
|
199
|
+
"""
|
|
200
|
+
|
|
201
|
+
Scenario: --dry-run
|
|
202
|
+
When I run cucumber --dry-run --no-source features/*.feature --tags ~@lots
|
|
203
|
+
Then it should pass with
|
|
204
|
+
"""
|
|
205
|
+
Feature: Calling undefined step
|
|
206
|
+
|
|
207
|
+
Scenario: Call directly
|
|
208
|
+
Given a step definition that calls an undefined step
|
|
209
|
+
|
|
210
|
+
Scenario: Call via another
|
|
211
|
+
Given call step "a step definition that calls an undefined step"
|
|
212
|
+
|
|
213
|
+
Feature: Failing expectation
|
|
214
|
+
|
|
215
|
+
Scenario: Failing expectation
|
|
216
|
+
Given failing expectation
|
|
217
|
+
|
|
218
|
+
Feature: Lots of undefined
|
|
219
|
+
|
|
220
|
+
Scenario: Implement me
|
|
221
|
+
Given it snows in Sahara
|
|
222
|
+
Given it's 40 degrees in Norway
|
|
223
|
+
And it's 40 degrees in Norway
|
|
224
|
+
When I stop procrastinating
|
|
225
|
+
And there is world peace
|
|
226
|
+
|
|
227
|
+
Feature: multiline
|
|
228
|
+
|
|
229
|
+
Background: I'm a multiline name
|
|
230
|
+
which goes on and on and on for three lines
|
|
231
|
+
yawn
|
|
232
|
+
Given passing without a table
|
|
233
|
+
|
|
234
|
+
Scenario: I'm a multiline name
|
|
235
|
+
which goes on and on and on for three lines
|
|
236
|
+
yawn
|
|
237
|
+
Given passing without a table
|
|
238
|
+
|
|
239
|
+
Scenario Outline: I'm a multiline name
|
|
240
|
+
which goes on and on and on for three lines
|
|
241
|
+
yawn
|
|
242
|
+
Given <state> without a table
|
|
243
|
+
|
|
244
|
+
Examples:
|
|
245
|
+
| state |
|
|
246
|
+
| passing |
|
|
247
|
+
|
|
248
|
+
Scenario Outline: name
|
|
249
|
+
Given <state> without a table
|
|
250
|
+
|
|
251
|
+
Examples: I'm a multiline name
|
|
252
|
+
which goes on and on and on for three lines
|
|
253
|
+
yawn
|
|
254
|
+
| state |
|
|
255
|
+
| passing |
|
|
256
|
+
|
|
257
|
+
Feature: Outline Sample
|
|
258
|
+
|
|
259
|
+
Scenario: I have no steps
|
|
260
|
+
|
|
261
|
+
Scenario Outline: Test state
|
|
262
|
+
Given <state> without a table
|
|
263
|
+
Given <other_state> without a table
|
|
264
|
+
|
|
265
|
+
Examples: Rainbow colours
|
|
266
|
+
| state | other_state |
|
|
267
|
+
| missing | passing |
|
|
268
|
+
| passing | passing |
|
|
269
|
+
| failing | passing |
|
|
270
|
+
|
|
271
|
+
Examples: Only passing
|
|
272
|
+
| state | other_state |
|
|
273
|
+
| passing | passing |
|
|
274
|
+
|
|
275
|
+
# Feature comment
|
|
276
|
+
@one
|
|
277
|
+
Feature: Sample
|
|
278
|
+
|
|
279
|
+
@two @three
|
|
280
|
+
Scenario: Missing
|
|
281
|
+
Given missing
|
|
282
|
+
|
|
283
|
+
# Scenario comment
|
|
284
|
+
@three
|
|
285
|
+
Scenario: Passing
|
|
286
|
+
Given passing
|
|
287
|
+
| a | b |
|
|
288
|
+
| c | d |
|
|
289
|
+
|
|
290
|
+
@four
|
|
291
|
+
Scenario: Failing
|
|
292
|
+
Given failing
|
|
293
|
+
\"\"\"
|
|
294
|
+
hello
|
|
295
|
+
\"\"\"
|
|
296
|
+
|
|
297
|
+
Feature: search examples
|
|
298
|
+
|
|
299
|
+
Background: Hantu Pisang background match
|
|
300
|
+
Given passing without a table
|
|
301
|
+
|
|
302
|
+
Scenario: should match Hantu Pisang
|
|
303
|
+
Given passing without a table
|
|
304
|
+
|
|
305
|
+
Scenario: Ignore me
|
|
306
|
+
Given failing without a table
|
|
307
|
+
|
|
308
|
+
Scenario Outline: Ignore me
|
|
309
|
+
Given <state> without a table
|
|
310
|
+
|
|
311
|
+
Examples:
|
|
312
|
+
| state |
|
|
313
|
+
| failing |
|
|
314
|
+
|
|
315
|
+
Scenario Outline: Hantu Pisang match
|
|
316
|
+
Given <state> without a table
|
|
317
|
+
|
|
318
|
+
Examples:
|
|
319
|
+
| state |
|
|
320
|
+
| passing |
|
|
321
|
+
|
|
322
|
+
Scenario Outline: no match in name but in examples
|
|
323
|
+
Given <state> without a table
|
|
324
|
+
|
|
325
|
+
Examples: Hantu Pisang
|
|
326
|
+
| state |
|
|
327
|
+
| passing |
|
|
328
|
+
|
|
329
|
+
Examples: Ignore me
|
|
330
|
+
| state |
|
|
331
|
+
| failing |
|
|
332
|
+
|
|
333
|
+
@sample_one
|
|
334
|
+
Feature: Tag samples
|
|
335
|
+
|
|
336
|
+
@sample_two @sample_four
|
|
337
|
+
Scenario: Passing
|
|
338
|
+
Given missing
|
|
339
|
+
|
|
340
|
+
@sample_three
|
|
341
|
+
Scenario Outline:
|
|
342
|
+
Given <state>
|
|
343
|
+
|
|
344
|
+
Examples:
|
|
345
|
+
| state |
|
|
346
|
+
| missing |
|
|
347
|
+
|
|
348
|
+
@sample_three @sample_four
|
|
349
|
+
Scenario: Skipped
|
|
350
|
+
Given missing
|
|
351
|
+
|
|
352
|
+
Feature: undefined multiline args
|
|
353
|
+
|
|
354
|
+
Scenario: pystring
|
|
355
|
+
Given a pystring
|
|
356
|
+
\"\"\"
|
|
357
|
+
example
|
|
358
|
+
\"\"\"
|
|
359
|
+
|
|
360
|
+
Scenario: table
|
|
361
|
+
Given a table
|
|
362
|
+
| table |
|
|
363
|
+
| example |
|
|
364
|
+
|
|
365
|
+
26 scenarios (17 skipped, 8 undefined, 1 passed)
|
|
366
|
+
42 steps (30 skipped, 12 undefined)
|
|
367
|
+
|
|
368
|
+
"""
|
|
369
|
+
|
|
370
|
+
Scenario: Multiple formatters and outputs
|
|
371
|
+
When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --no-source --dry-run features/lots_of_undefined.feature
|
|
372
|
+
Then STDERR should be empty
|
|
373
|
+
Then "examples/self_test/tmp/progress.txt" should contain
|
|
374
|
+
"""
|
|
375
|
+
UUUUU
|
|
376
|
+
|
|
377
|
+
1 scenario (1 undefined)
|
|
378
|
+
5 steps (5 undefined)
|
|
379
|
+
|
|
380
|
+
"""
|
|
381
|
+
And "examples/self_test/tmp/pretty.txt" should contain
|
|
382
|
+
"""
|
|
383
|
+
Feature: Lots of undefined
|
|
384
|
+
|
|
385
|
+
Scenario: Implement me
|
|
386
|
+
Given it snows in Sahara
|
|
387
|
+
Given it's 40 degrees in Norway
|
|
388
|
+
And it's 40 degrees in Norway
|
|
389
|
+
When I stop procrastinating
|
|
390
|
+
And there is world peace
|
|
391
|
+
|
|
392
|
+
1 scenario (1 undefined)
|
|
393
|
+
5 steps (5 undefined)
|
|
394
|
+
|
|
395
|
+
"""
|
|
396
|
+
|
|
397
|
+
Scenario: Run feature elements which matches a name using --name
|
|
398
|
+
When I run cucumber --name Pisang -q features/
|
|
399
|
+
Then it should pass with
|
|
400
|
+
"""
|
|
401
|
+
Feature: search examples
|
|
402
|
+
|
|
403
|
+
Background: Hantu Pisang background match
|
|
404
|
+
Given passing without a table
|
|
405
|
+
|
|
406
|
+
Scenario: should match Hantu Pisang
|
|
407
|
+
Given passing without a table
|
|
408
|
+
|
|
409
|
+
Scenario Outline: Hantu Pisang match
|
|
410
|
+
Given <state> without a table
|
|
411
|
+
|
|
412
|
+
Examples:
|
|
413
|
+
| state |
|
|
414
|
+
| passing |
|
|
415
|
+
|
|
416
|
+
Scenario Outline: no match in name but in examples
|
|
417
|
+
Given <state> without a table
|
|
418
|
+
|
|
419
|
+
Examples: Hantu Pisang
|
|
420
|
+
| state |
|
|
421
|
+
| passing |
|
|
422
|
+
|
|
423
|
+
3 scenarios (3 passed)
|
|
424
|
+
6 steps (6 passed)
|
|
425
|
+
|
|
426
|
+
"""
|
|
427
|
+
|
|
428
|
+
Scenario: Run a single background which matches a name using --name (Useful if there is an error in it)
|
|
429
|
+
When I run cucumber --name 'Hantu Pisang background' -q features/
|
|
430
|
+
Then it should pass with
|
|
431
|
+
"""
|
|
432
|
+
Feature: search examples
|
|
433
|
+
|
|
434
|
+
Background: Hantu Pisang background match
|
|
435
|
+
Given passing without a table
|
|
436
|
+
|
|
437
|
+
0 scenarios
|
|
438
|
+
1 step (1 passed)
|
|
439
|
+
|
|
440
|
+
"""
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
Scenario: Run with a tag that exists on 2 scenarios
|
|
444
|
+
When I run cucumber -q features --tags @three
|
|
445
|
+
Then it should pass with
|
|
446
|
+
"""
|
|
447
|
+
# Feature comment
|
|
448
|
+
@one
|
|
449
|
+
Feature: Sample
|
|
450
|
+
|
|
451
|
+
@two @three
|
|
452
|
+
Scenario: Missing
|
|
453
|
+
Given missing
|
|
454
|
+
|
|
455
|
+
# Scenario comment
|
|
456
|
+
@three
|
|
457
|
+
Scenario: Passing
|
|
458
|
+
Given passing
|
|
459
|
+
| a | b |
|
|
460
|
+
| c | d |
|
|
461
|
+
|
|
462
|
+
2 scenarios (1 undefined, 1 passed)
|
|
463
|
+
2 steps (1 undefined, 1 passed)
|
|
464
|
+
|
|
465
|
+
"""
|
|
466
|
+
|
|
467
|
+
Scenario: Run with a tag that exists on 1 feature
|
|
468
|
+
When I run cucumber -q features --tags @one
|
|
469
|
+
Then it should fail with
|
|
470
|
+
"""
|
|
471
|
+
# Feature comment
|
|
472
|
+
@one
|
|
473
|
+
Feature: Sample
|
|
474
|
+
|
|
475
|
+
@two @three
|
|
476
|
+
Scenario: Missing
|
|
477
|
+
Given missing
|
|
478
|
+
|
|
479
|
+
# Scenario comment
|
|
480
|
+
@three
|
|
481
|
+
Scenario: Passing
|
|
482
|
+
Given passing
|
|
483
|
+
| a | b |
|
|
484
|
+
| c | d |
|
|
485
|
+
|
|
486
|
+
@four
|
|
487
|
+
Scenario: Failing
|
|
488
|
+
Given failing
|
|
489
|
+
\"\"\"
|
|
490
|
+
hello
|
|
491
|
+
\"\"\"
|
|
492
|
+
FAIL (RuntimeError)
|
|
493
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
494
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
495
|
+
features/sample.feature:18:in `Given failing'
|
|
496
|
+
|
|
497
|
+
Failing Scenarios:
|
|
498
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
499
|
+
|
|
500
|
+
3 scenarios (1 failed, 1 undefined, 1 passed)
|
|
501
|
+
3 steps (1 failed, 1 undefined, 1 passed)
|
|
502
|
+
|
|
503
|
+
"""
|
|
504
|
+
|
|
505
|
+
Scenario: Run with a negative tag
|
|
506
|
+
When I run cucumber -q features/sample.feature --no-source --dry-run --tags ~@four
|
|
507
|
+
Then it should pass with
|
|
508
|
+
"""
|
|
509
|
+
# Feature comment
|
|
510
|
+
@one
|
|
511
|
+
Feature: Sample
|
|
512
|
+
|
|
513
|
+
@two @three
|
|
514
|
+
Scenario: Missing
|
|
515
|
+
Given missing
|
|
516
|
+
|
|
517
|
+
# Scenario comment
|
|
518
|
+
@three
|
|
519
|
+
Scenario: Passing
|
|
520
|
+
Given passing
|
|
521
|
+
| a | b |
|
|
522
|
+
| c | d |
|
|
523
|
+
|
|
524
|
+
2 scenarios (1 skipped, 1 undefined)
|
|
525
|
+
2 steps (1 skipped, 1 undefined)
|
|
526
|
+
|
|
527
|
+
"""
|
|
528
|
+
|
|
529
|
+
Scenario: Run with limited tag count, blowing it on scenario
|
|
530
|
+
When I run cucumber -q features/tags_sample.feature --no-source --dry-run --tags @sample_three:1
|
|
531
|
+
Then it should fail with
|
|
532
|
+
"""
|
|
533
|
+
@sample_one
|
|
534
|
+
Feature: Tag samples
|
|
535
|
+
|
|
536
|
+
@sample_three
|
|
537
|
+
Scenario Outline:
|
|
538
|
+
Given <state>
|
|
539
|
+
|
|
540
|
+
Examples:
|
|
541
|
+
| state |
|
|
542
|
+
| missing |
|
|
543
|
+
|
|
544
|
+
@sample_three @sample_four
|
|
545
|
+
Scenario: Skipped
|
|
546
|
+
Given missing
|
|
547
|
+
|
|
548
|
+
2 scenarios (2 undefined)
|
|
549
|
+
2 steps (2 undefined)
|
|
550
|
+
|
|
551
|
+
@sample_three occurred 2 times, but the limit was set to 1
|
|
552
|
+
features/tags_sample.feature:9
|
|
553
|
+
features/tags_sample.feature:16
|
|
554
|
+
|
|
555
|
+
"""
|
|
556
|
+
|
|
557
|
+
Scenario: Run with limited tag count, blowing it via feature inheritance
|
|
558
|
+
When I run cucumber -q features/tags_sample.feature --no-source --dry-run --tags @sample_one:1
|
|
559
|
+
Then it should fail with
|
|
560
|
+
"""
|
|
561
|
+
@sample_one
|
|
562
|
+
Feature: Tag samples
|
|
563
|
+
|
|
564
|
+
@sample_two @sample_four
|
|
565
|
+
Scenario: Passing
|
|
566
|
+
Given missing
|
|
567
|
+
|
|
568
|
+
@sample_three
|
|
569
|
+
Scenario Outline:
|
|
570
|
+
Given <state>
|
|
571
|
+
|
|
572
|
+
Examples:
|
|
573
|
+
| state |
|
|
574
|
+
| missing |
|
|
575
|
+
|
|
576
|
+
@sample_three @sample_four
|
|
577
|
+
Scenario: Skipped
|
|
578
|
+
Given missing
|
|
579
|
+
|
|
580
|
+
3 scenarios (3 undefined)
|
|
581
|
+
3 steps (3 undefined)
|
|
582
|
+
|
|
583
|
+
@sample_one occurred 3 times, but the limit was set to 1
|
|
584
|
+
features/tags_sample.feature:5
|
|
585
|
+
features/tags_sample.feature:9
|
|
586
|
+
features/tags_sample.feature:16
|
|
587
|
+
|
|
588
|
+
"""
|
|
589
|
+
|
|
590
|
+
Scenario: Reformat files with --autoformat
|
|
591
|
+
When I run cucumber --autoformat tmp/formatted features
|
|
592
|
+
Then STDERR should be empty
|
|
593
|
+
Then "examples/self_test/tmp/formatted/features/sample.feature" should contain
|
|
594
|
+
"""
|
|
595
|
+
# Feature comment
|
|
596
|
+
@one
|
|
597
|
+
Feature: Sample
|
|
598
|
+
|
|
599
|
+
@two @three
|
|
600
|
+
Scenario: Missing
|
|
601
|
+
Given missing
|
|
602
|
+
|
|
603
|
+
# Scenario comment
|
|
604
|
+
@three
|
|
605
|
+
Scenario: Passing
|
|
606
|
+
Given passing
|
|
607
|
+
| a | b |
|
|
608
|
+
| c | d |
|
|
609
|
+
|
|
610
|
+
@four
|
|
611
|
+
Scenario: Failing
|
|
612
|
+
Given failing
|
|
613
|
+
\"\"\"
|
|
614
|
+
hello
|
|
615
|
+
\"\"\"
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
"""
|
|
619
|
+
|
|
620
|
+
Scenario: Generate PDF with pdf formatter
|
|
621
|
+
When I run cucumber --format pdf --out tmp/sample.pdf --dry-run features/sample.feature
|
|
622
|
+
Then STDERR should be empty
|
|
623
|
+
Then "examples/self_test/tmp/sample.pdf" should match "Pages 2"
|
|
624
|
+
|
|
625
|
+
Scenario: Run feature elements which match a name using -n
|
|
626
|
+
When I run cucumber -n Pisang -q features/
|
|
627
|
+
Then it should pass with
|
|
628
|
+
"""
|
|
629
|
+
Feature: search examples
|
|
630
|
+
|
|
631
|
+
Background: Hantu Pisang background match
|
|
632
|
+
Given passing without a table
|
|
633
|
+
|
|
634
|
+
Scenario: should match Hantu Pisang
|
|
635
|
+
Given passing without a table
|
|
636
|
+
|
|
637
|
+
Scenario Outline: Hantu Pisang match
|
|
638
|
+
Given <state> without a table
|
|
639
|
+
|
|
640
|
+
Examples:
|
|
641
|
+
| state |
|
|
642
|
+
| passing |
|
|
643
|
+
|
|
644
|
+
Scenario Outline: no match in name but in examples
|
|
645
|
+
Given <state> without a table
|
|
646
|
+
|
|
647
|
+
Examples: Hantu Pisang
|
|
648
|
+
| state |
|
|
649
|
+
| passing |
|
|
650
|
+
|
|
651
|
+
3 scenarios (3 passed)
|
|
652
|
+
6 steps (6 passed)
|
|
653
|
+
|
|
654
|
+
"""
|