engineyard-cucumber 0.3.101
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/History.txt +1073 -0
- data/License.txt +22 -0
- data/Manifest.txt +453 -0
- data/README.txt +4 -0
- data/Rakefile +9 -0
- data/bin/cucumber +17 -0
- data/config/hoe.rb +78 -0
- data/config/requirements.rb +15 -0
- data/cucumber.yml +2 -0
- data/examples/cs/README.textile +1 -0
- data/examples/cs/Rakefile +12 -0
- data/examples/cs/compile.bat +1 -0
- data/examples/cs/features/addition.feature +16 -0
- data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/cs/src/demo/Calculator.cs +20 -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/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/da/features/summering.feature +18 -0
- data/examples/i18n/da/lib/kalkulator.rb +11 -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 +6 -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/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/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/step_definitions/calculatrice_steps.rb +25 -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/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/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/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/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/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/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/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/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 +6 -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/Rakefile +6 -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/java/README.textile +18 -0
- data/examples/java/build.xml +33 -0
- data/examples/java/features/hello.feature +11 -0
- data/examples/java/features/step_definitons/hello_steps.rb +23 -0
- data/examples/java/features/step_definitons/tree_steps.rb +14 -0
- data/examples/java/features/tree.feature +9 -0
- data/examples/java/src/cucumber/demo/Hello.java +16 -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/pure_java/README.textile +5 -0
- data/examples/python/features/fibonacci.feature +19 -0
- data/examples/python/features/step_definitions/fib_steps.py +3 -0
- data/examples/python/features/step_definitions/fib_steps.rb +7 -0
- data/examples/python/features/support/env.rb +21 -0
- data/examples/python/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/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 +93 -0
- data/examples/self_test/features/support/env.rb +24 -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/transform_sample.feature +10 -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 +32 -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/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 +16 -0
- data/examples/tickets/features/172.feature +28 -0
- data/examples/tickets/features/177/1.feature +29 -0
- data/examples/tickets/features/177/2.feature +21 -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 +13 -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 +6 -0
- data/examples/watir/features/search.feature +12 -0
- data/examples/watir/features/step_definitons/search_steps.rb +26 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/background.feature +311 -0
- data/features/bug_371.feature +32 -0
- data/features/cucumber_cli.feature +667 -0
- data/features/cucumber_cli_diff_disabled.feature +54 -0
- data/features/cucumber_cli_outlines.feature +109 -0
- data/features/custom_formatter.feature +11 -0
- data/features/drb_server_integration.feature +173 -0
- data/features/exception_in_after_block.feature +102 -0
- data/features/exception_in_after_step_block.feature +104 -0
- data/features/exception_in_before_block.feature +47 -0
- data/features/exclude_files.feature +20 -0
- data/features/expand.feature +49 -0
- data/features/html_formatter.feature +7 -0
- data/features/html_formatter/a.html +183 -0
- data/features/junit_formatter.feature +89 -0
- data/features/language_from_header.feature +30 -0
- data/features/multiline_names.feature +43 -0
- data/features/post_configuration_hook.feature +37 -0
- data/features/profiles.feature +112 -0
- data/features/rake_task.feature +178 -0
- data/features/report_called_undefined_steps.feature +35 -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/steps_formatter.feature +25 -0
- data/features/support/env.rb +139 -0
- data/features/table_diffing.feature +45 -0
- data/features/transform.feature +24 -0
- data/features/unicode_table.feature +35 -0
- data/features/usage.feature +132 -0
- data/features/work_in_progress.feature +158 -0
- data/gem_tasks/contributors.rake +12 -0
- data/gem_tasks/deployment.rake +11 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/features.rake +11 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/gemspec.rake +10 -0
- data/gem_tasks/rspec.rake +45 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/sdoc.rake +7 -0
- data/lib/README.rdoc +12 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +125 -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 +10 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/ast/background.rb +63 -0
- data/lib/cucumber/ast/comment.rb +31 -0
- data/lib/cucumber/ast/examples.rb +32 -0
- data/lib/cucumber/ast/feature.rb +81 -0
- data/lib/cucumber/ast/feature_element.rb +61 -0
- data/lib/cucumber/ast/features.rb +40 -0
- data/lib/cucumber/ast/outline_table.rb +146 -0
- data/lib/cucumber/ast/py_string.rb +57 -0
- data/lib/cucumber/ast/scenario.rb +108 -0
- data/lib/cucumber/ast/scenario_outline.rb +96 -0
- data/lib/cucumber/ast/step.rb +116 -0
- data/lib/cucumber/ast/step_collection.rb +76 -0
- data/lib/cucumber/ast/step_invocation.rb +166 -0
- data/lib/cucumber/ast/table.rb +626 -0
- data/lib/cucumber/ast/tags.rb +44 -0
- data/lib/cucumber/ast/visitor.rb +115 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +190 -0
- data/lib/cucumber/cli/drb_client.rb +26 -0
- data/lib/cucumber/cli/language_help_formatter.rb +61 -0
- data/lib/cucumber/cli/main.rb +116 -0
- data/lib/cucumber/cli/options.rb +394 -0
- data/lib/cucumber/cli/profile_loader.rb +70 -0
- data/lib/cucumber/constantize.rb +28 -0
- data/lib/cucumber/core_ext/instance_exec.rb +93 -0
- data/lib/cucumber/core_ext/proc.rb +29 -0
- data/lib/cucumber/core_ext/string.rb +48 -0
- data/lib/cucumber/feature_file.rb +54 -0
- data/lib/cucumber/filter.rb +52 -0
- data/lib/cucumber/formatter/ansicolor.rb +143 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +185 -0
- data/lib/cucumber/formatter/cucumber.css +132 -0
- data/lib/cucumber/formatter/cucumber.sass +139 -0
- data/lib/cucumber/formatter/duration.rb +13 -0
- data/lib/cucumber/formatter/html.rb +261 -0
- data/lib/cucumber/formatter/junit.rb +121 -0
- data/lib/cucumber/formatter/ordered_xml_markup.rb +24 -0
- data/lib/cucumber/formatter/pdf.rb +217 -0
- data/lib/cucumber/formatter/pretty.rb +222 -0
- data/lib/cucumber/formatter/profile.rb +78 -0
- data/lib/cucumber/formatter/progress.rb +67 -0
- data/lib/cucumber/formatter/rerun.rb +46 -0
- data/lib/cucumber/formatter/steps.rb +50 -0
- data/lib/cucumber/formatter/tag_cloud.rb +29 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter/usage.rb +86 -0
- data/lib/cucumber/formatters/unicode.rb +7 -0
- data/lib/cucumber/language_support.rb +30 -0
- data/lib/cucumber/language_support/language_methods.rb +75 -0
- data/lib/cucumber/language_support/step_definition_methods.rb +46 -0
- data/lib/cucumber/languages.yml +561 -0
- data/lib/cucumber/parser.rb +6 -0
- data/lib/cucumber/parser/feature.rb +1838 -0
- data/lib/cucumber/parser/feature.tt +351 -0
- data/lib/cucumber/parser/i18n.tt +42 -0
- data/lib/cucumber/parser/natural_language.rb +72 -0
- data/lib/cucumber/parser/table.rb +417 -0
- data/lib/cucumber/parser/table.tt +71 -0
- data/lib/cucumber/parser/treetop_ext.rb +53 -0
- data/lib/cucumber/platform.rb +27 -0
- data/lib/cucumber/py_support/py_dsl.py +8 -0
- data/lib/cucumber/py_support/py_language.py +2 -0
- data/lib/cucumber/py_support/py_language.rb +68 -0
- data/lib/cucumber/rails/rspec.rb +10 -0
- data/lib/cucumber/rails/world.rb +100 -0
- data/lib/cucumber/rake/task.rb +241 -0
- data/lib/cucumber/rb_support/rb_dsl.rb +100 -0
- data/lib/cucumber/rb_support/rb_hook.rb +18 -0
- data/lib/cucumber/rb_support/rb_language.rb +153 -0
- data/lib/cucumber/rb_support/rb_step_definition.rb +60 -0
- data/lib/cucumber/rb_support/rb_world.rb +93 -0
- data/lib/cucumber/rspec_neuter.rb +23 -0
- data/lib/cucumber/step_match.rb +61 -0
- data/lib/cucumber/step_mother.rb +307 -0
- data/lib/cucumber/version.rb +10 -0
- data/lib/cucumber/webrat/element_locator.rb +87 -0
- data/lib/cucumber/webrat/table_locator.rb +1 -0
- data/rails_generators/cucumber/USAGE +11 -0
- data/rails_generators/cucumber/cucumber_generator.rb +70 -0
- data/rails_generators/cucumber/templates/cucumber +9 -0
- data/rails_generators/cucumber/templates/cucumber.rake +36 -0
- data/rails_generators/cucumber/templates/cucumber_environment.rb +26 -0
- data/rails_generators/cucumber/templates/env.rb +27 -0
- data/rails_generators/cucumber/templates/paths.rb +27 -0
- data/rails_generators/cucumber/templates/spork_env.rb +35 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +236 -0
- data/rails_generators/feature/USAGE +12 -0
- data/rails_generators/feature/feature_generator.rb +40 -0
- data/rails_generators/feature/templates/feature.erb +31 -0
- data/rails_generators/feature/templates/steps.erb +14 -0
- data/spec/cucumber/ast/background_spec.rb +60 -0
- data/spec/cucumber/ast/feature_element_spec.rb +40 -0
- data/spec/cucumber/ast/feature_factory.rb +62 -0
- data/spec/cucumber/ast/feature_spec.rb +44 -0
- data/spec/cucumber/ast/py_string_spec.rb +51 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +72 -0
- data/spec/cucumber/ast/scenario_spec.rb +43 -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 +394 -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 +331 -0
- data/spec/cucumber/cli/profile_loader_spec.rb +10 -0
- data/spec/cucumber/core_ext/proc_spec.rb +68 -0
- data/spec/cucumber/core_ext/string_spec.rb +43 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +31 -0
- data/spec/cucumber/formatter/color_io_spec.rb +27 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/html_spec.rb +18 -0
- data/spec/cucumber/formatter/progress_spec.rb +33 -0
- data/spec/cucumber/parser/feature_parser_spec.rb +396 -0
- data/spec/cucumber/parser/table_parser_spec.rb +52 -0
- data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
- data/spec/cucumber/rails/stubs/test_help.rb +1 -0
- data/spec/cucumber/rails/world_spec.rb +16 -0
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +123 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_mother_spec.rb +282 -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/world/pending_spec.rb +46 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +18 -0
- metadata +561 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
Feature: backgrounds
|
|
2
|
+
In order to provide a context to my scenarios within a feature
|
|
3
|
+
As a feature editor
|
|
4
|
+
I want to write a background section in my features.
|
|
5
|
+
|
|
6
|
+
Scenario: run a specific scenario with a background
|
|
7
|
+
When I run cucumber -q features/background/passing_background.feature:9 --require features
|
|
8
|
+
Then it should pass with
|
|
9
|
+
"""
|
|
10
|
+
Feature: Passing background sample
|
|
11
|
+
|
|
12
|
+
Background:
|
|
13
|
+
Given '10' cukes
|
|
14
|
+
|
|
15
|
+
Scenario: another passing background
|
|
16
|
+
Then I should have '10' cukes
|
|
17
|
+
|
|
18
|
+
1 scenario (1 passed)
|
|
19
|
+
2 steps (2 passed)
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
Scenario: run a feature with a background that passes
|
|
24
|
+
When I run cucumber -q features/background/passing_background.feature --require features
|
|
25
|
+
Then it should pass with
|
|
26
|
+
"""
|
|
27
|
+
Feature: Passing background sample
|
|
28
|
+
|
|
29
|
+
Background:
|
|
30
|
+
Given '10' cukes
|
|
31
|
+
|
|
32
|
+
Scenario: passing background
|
|
33
|
+
Then I should have '10' cukes
|
|
34
|
+
|
|
35
|
+
Scenario: another passing background
|
|
36
|
+
Then I should have '10' cukes
|
|
37
|
+
|
|
38
|
+
2 scenarios (2 passed)
|
|
39
|
+
4 steps (4 passed)
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
Scenario: run a feature with scenario outlines that has a background that passes
|
|
44
|
+
When I run cucumber -q features/background/scenario_outline_passing_background.feature --require features
|
|
45
|
+
Then it should pass with
|
|
46
|
+
"""
|
|
47
|
+
Feature: Passing background with scenario outlines sample
|
|
48
|
+
|
|
49
|
+
Background:
|
|
50
|
+
Given '10' cukes
|
|
51
|
+
|
|
52
|
+
Scenario Outline: passing background
|
|
53
|
+
Then I should have '<count>' cukes
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
| count |
|
|
57
|
+
| 10 |
|
|
58
|
+
|
|
59
|
+
Scenario Outline: another passing background
|
|
60
|
+
Then I should have '<count>' cukes
|
|
61
|
+
|
|
62
|
+
Examples:
|
|
63
|
+
| count |
|
|
64
|
+
| 10 |
|
|
65
|
+
|
|
66
|
+
2 scenarios (2 passed)
|
|
67
|
+
4 steps (4 passed)
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
Scenario: run a feature with scenario outlines that has a background that passes
|
|
72
|
+
When I run cucumber -q features/background/background_tagged_before_on_outline.feature --require features
|
|
73
|
+
Then it should pass with
|
|
74
|
+
"""
|
|
75
|
+
@background_tagged_before_on_outline
|
|
76
|
+
Feature: Background tagged Before on Outline
|
|
77
|
+
|
|
78
|
+
Background:
|
|
79
|
+
Given passing without a table
|
|
80
|
+
|
|
81
|
+
Scenario Outline: passing background
|
|
82
|
+
Then I should have '<count>' cukes
|
|
83
|
+
|
|
84
|
+
Examples:
|
|
85
|
+
| count |
|
|
86
|
+
| 888 |
|
|
87
|
+
|
|
88
|
+
1 scenario (1 passed)
|
|
89
|
+
2 steps (2 passed)
|
|
90
|
+
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
@mri186
|
|
94
|
+
Scenario: run a feature with a background that fails
|
|
95
|
+
When I run cucumber -q features/background/failing_background.feature --require features
|
|
96
|
+
Then it should fail with
|
|
97
|
+
"""
|
|
98
|
+
@after_file
|
|
99
|
+
Feature: Failing background sample
|
|
100
|
+
|
|
101
|
+
Background:
|
|
102
|
+
Given failing without a table
|
|
103
|
+
FAIL (RuntimeError)
|
|
104
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
105
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
106
|
+
features/background/failing_background.feature:5:in `Given failing without a table'
|
|
107
|
+
And '10' cukes
|
|
108
|
+
|
|
109
|
+
Scenario: failing background
|
|
110
|
+
Then I should have '10' cukes
|
|
111
|
+
|
|
112
|
+
Scenario: another failing background
|
|
113
|
+
Then I should have '10' cukes
|
|
114
|
+
|
|
115
|
+
Failing Scenarios:
|
|
116
|
+
cucumber features/background/failing_background.feature:8 # Scenario: failing background
|
|
117
|
+
|
|
118
|
+
2 scenarios (1 failed, 1 skipped)
|
|
119
|
+
6 steps (1 failed, 5 skipped)
|
|
120
|
+
|
|
121
|
+
"""
|
|
122
|
+
And "examples/self_test/tmp/after.txt" should exist
|
|
123
|
+
|
|
124
|
+
@mri186
|
|
125
|
+
Scenario: run a feature with scenario outlines that has a background that fails
|
|
126
|
+
When I run cucumber -q features/background/scenario_outline_failing_background.feature --require features
|
|
127
|
+
Then it should fail with
|
|
128
|
+
"""
|
|
129
|
+
Feature: Failing background with scenario outlines sample
|
|
130
|
+
|
|
131
|
+
Background:
|
|
132
|
+
Given failing without a table
|
|
133
|
+
FAIL (RuntimeError)
|
|
134
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
135
|
+
./features/step_definitions/sample_steps.rb:16:in `/^failing without a table$/'
|
|
136
|
+
features/background/scenario_outline_failing_background.feature:4:in `Given failing without a table'
|
|
137
|
+
|
|
138
|
+
Scenario Outline: failing background
|
|
139
|
+
Then I should have '<count>' cukes
|
|
140
|
+
|
|
141
|
+
Examples:
|
|
142
|
+
| count |
|
|
143
|
+
| 10 |
|
|
144
|
+
|
|
145
|
+
Scenario Outline: another failing background
|
|
146
|
+
Then I should have '<count>' cukes
|
|
147
|
+
|
|
148
|
+
Examples:
|
|
149
|
+
| count |
|
|
150
|
+
| 10 |
|
|
151
|
+
|
|
152
|
+
2 scenarios (1 failed, 1 skipped)
|
|
153
|
+
4 steps (1 failed, 3 skipped)
|
|
154
|
+
|
|
155
|
+
"""
|
|
156
|
+
|
|
157
|
+
Scenario: run a feature with a background that is pending
|
|
158
|
+
When I run cucumber -q features/background/pending_background.feature --require features
|
|
159
|
+
Then it should pass with
|
|
160
|
+
"""
|
|
161
|
+
Feature: Pending background sample
|
|
162
|
+
|
|
163
|
+
Background:
|
|
164
|
+
Given pending
|
|
165
|
+
|
|
166
|
+
Scenario: pending background
|
|
167
|
+
Then I should have '10' cukes
|
|
168
|
+
|
|
169
|
+
Scenario: another pending background
|
|
170
|
+
Then I should have '10' cukes
|
|
171
|
+
|
|
172
|
+
2 scenarios (2 undefined)
|
|
173
|
+
4 steps (2 skipped, 2 undefined)
|
|
174
|
+
|
|
175
|
+
"""
|
|
176
|
+
|
|
177
|
+
@mri186
|
|
178
|
+
Scenario: background passes with first scenario but fails with second
|
|
179
|
+
When I run cucumber -q features/background/failing_background_after_success.feature --require features
|
|
180
|
+
Then it should fail with
|
|
181
|
+
"""
|
|
182
|
+
Feature: Failing background after previously successful background sample
|
|
183
|
+
|
|
184
|
+
Background:
|
|
185
|
+
Given passing without a table
|
|
186
|
+
And '10' global cukes
|
|
187
|
+
|
|
188
|
+
Scenario: passing background
|
|
189
|
+
Then I should have '10' global cukes
|
|
190
|
+
|
|
191
|
+
Scenario: failing background
|
|
192
|
+
And '10' global cukes
|
|
193
|
+
FAIL (RuntimeError)
|
|
194
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
195
|
+
./features/step_definitions/sample_steps.rb:37:in `/^'(.+)' global cukes$/'
|
|
196
|
+
features/background/failing_background_after_success.feature:5:in `And '10' global cukes'
|
|
197
|
+
Then I should have '10' global cukes
|
|
198
|
+
|
|
199
|
+
Failing Scenarios:
|
|
200
|
+
cucumber features/background/failing_background_after_success.feature:10 # Scenario: failing background
|
|
201
|
+
|
|
202
|
+
2 scenarios (1 failed, 1 passed)
|
|
203
|
+
6 steps (1 failed, 1 skipped, 4 passed)
|
|
204
|
+
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
Scenario: background with multline args
|
|
208
|
+
When I run cucumber -q features/background/multiline_args_background.feature --require features
|
|
209
|
+
Then it should pass with
|
|
210
|
+
"""
|
|
211
|
+
Feature: Passing background with multiline args
|
|
212
|
+
|
|
213
|
+
Background:
|
|
214
|
+
Given table
|
|
215
|
+
| a | b |
|
|
216
|
+
| c | d |
|
|
217
|
+
And multiline string
|
|
218
|
+
\"\"\"
|
|
219
|
+
I'm a cucumber and I'm okay.
|
|
220
|
+
I sleep all night and I test all day
|
|
221
|
+
\"\"\"
|
|
222
|
+
|
|
223
|
+
Scenario: passing background
|
|
224
|
+
Then the table should be
|
|
225
|
+
| a | b |
|
|
226
|
+
| c | d |
|
|
227
|
+
Then the multiline string should be
|
|
228
|
+
\"\"\"
|
|
229
|
+
I'm a cucumber and I'm okay.
|
|
230
|
+
I sleep all night and I test all day
|
|
231
|
+
\"\"\"
|
|
232
|
+
|
|
233
|
+
Scenario: another passing background
|
|
234
|
+
Then the table should be
|
|
235
|
+
| a | b |
|
|
236
|
+
| c | d |
|
|
237
|
+
Then the multiline string should be
|
|
238
|
+
\"\"\"
|
|
239
|
+
I'm a cucumber and I'm okay.
|
|
240
|
+
I sleep all night and I test all day
|
|
241
|
+
\"\"\"
|
|
242
|
+
|
|
243
|
+
2 scenarios (2 passed)
|
|
244
|
+
8 steps (8 passed)
|
|
245
|
+
|
|
246
|
+
"""
|
|
247
|
+
|
|
248
|
+
Scenario: background with name
|
|
249
|
+
When I run cucumber -q features/background/background_with_name.feature --require features
|
|
250
|
+
Then it should pass with
|
|
251
|
+
"""
|
|
252
|
+
Feature: background with name
|
|
253
|
+
|
|
254
|
+
Background: I'm a background and I'm ok
|
|
255
|
+
Given '10' cukes
|
|
256
|
+
|
|
257
|
+
Scenario: example
|
|
258
|
+
Then I should have '10' cukes
|
|
259
|
+
|
|
260
|
+
1 scenario (1 passed)
|
|
261
|
+
2 steps (2 passed)
|
|
262
|
+
|
|
263
|
+
"""
|
|
264
|
+
|
|
265
|
+
Scenario: https://rspec.lighthouseapp.com/projects/16211/tickets/329
|
|
266
|
+
Given a standard Cucumber project directory structure
|
|
267
|
+
And a file named "features/only_background_and_hooks.feature" with:
|
|
268
|
+
"""
|
|
269
|
+
Feature: woo yeah
|
|
270
|
+
|
|
271
|
+
Background:
|
|
272
|
+
Given whatever
|
|
273
|
+
|
|
274
|
+
"""
|
|
275
|
+
And a file named "features/only_background_and_hooks_steps.rb" with:
|
|
276
|
+
"""
|
|
277
|
+
require 'spec/expectations'
|
|
278
|
+
|
|
279
|
+
Before do
|
|
280
|
+
$before = true
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
After do
|
|
284
|
+
$after = true
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
Given /^whatever$/ do
|
|
288
|
+
$before.should == true
|
|
289
|
+
$step = true
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
at_exit do
|
|
293
|
+
$before.should == true
|
|
294
|
+
$step.should == true
|
|
295
|
+
$after.should == true
|
|
296
|
+
end
|
|
297
|
+
"""
|
|
298
|
+
When I run cucumber features/only_background_and_hooks.feature
|
|
299
|
+
Then it should pass
|
|
300
|
+
And the output should be
|
|
301
|
+
"""
|
|
302
|
+
Feature: woo yeah
|
|
303
|
+
|
|
304
|
+
Background: # features/only_background_and_hooks.feature:3
|
|
305
|
+
Given whatever # features/only_background_and_hooks_steps.rb:11
|
|
306
|
+
|
|
307
|
+
0 scenarios
|
|
308
|
+
1 step (1 passed)
|
|
309
|
+
|
|
310
|
+
"""
|
|
311
|
+
And STDERR should be empty
|
|
@@ -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,667 @@
|
|
|
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
|
+
@mri186
|
|
62
|
+
Scenario: Specify 2 line numbers where one is a tag
|
|
63
|
+
When I run cucumber -q features/sample.feature:5:16
|
|
64
|
+
Then it should fail with
|
|
65
|
+
"""
|
|
66
|
+
# Feature comment
|
|
67
|
+
@one
|
|
68
|
+
Feature: Sample
|
|
69
|
+
|
|
70
|
+
@two @three
|
|
71
|
+
Scenario: Missing
|
|
72
|
+
Given missing
|
|
73
|
+
|
|
74
|
+
@four
|
|
75
|
+
Scenario: Failing
|
|
76
|
+
Given failing
|
|
77
|
+
\"\"\"
|
|
78
|
+
hello
|
|
79
|
+
\"\"\"
|
|
80
|
+
FAIL (RuntimeError)
|
|
81
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
82
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
83
|
+
features/sample.feature:18:in `Given failing'
|
|
84
|
+
|
|
85
|
+
Failing Scenarios:
|
|
86
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
87
|
+
|
|
88
|
+
2 scenarios (1 failed, 1 undefined)
|
|
89
|
+
2 steps (1 failed, 1 undefined)
|
|
90
|
+
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
Scenario: Require missing step definition from elsewhere
|
|
94
|
+
When I run cucumber -q -r ../../features/step_definitions/extra_steps.rb features/sample.feature:5
|
|
95
|
+
Then it should pass with
|
|
96
|
+
"""
|
|
97
|
+
# Feature comment
|
|
98
|
+
@one
|
|
99
|
+
Feature: Sample
|
|
100
|
+
|
|
101
|
+
@two @three
|
|
102
|
+
Scenario: Missing
|
|
103
|
+
Given missing
|
|
104
|
+
|
|
105
|
+
1 scenario (1 passed)
|
|
106
|
+
1 step (1 passed)
|
|
107
|
+
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
Scenario: Specify the line number of a row
|
|
111
|
+
When I run cucumber -q features/sample.feature:12
|
|
112
|
+
Then it should pass with
|
|
113
|
+
"""
|
|
114
|
+
# Feature comment
|
|
115
|
+
@one
|
|
116
|
+
Feature: Sample
|
|
117
|
+
|
|
118
|
+
# Scenario comment
|
|
119
|
+
@three
|
|
120
|
+
Scenario: Passing
|
|
121
|
+
Given passing
|
|
122
|
+
| a | b |
|
|
123
|
+
| c | d |
|
|
124
|
+
|
|
125
|
+
1 scenario (1 passed)
|
|
126
|
+
1 step (1 passed)
|
|
127
|
+
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
Scenario: Use @-notation to specify a file containing feature file list
|
|
131
|
+
When I run cucumber -q @list-of-features.txt
|
|
132
|
+
Then it should pass with
|
|
133
|
+
"""
|
|
134
|
+
# Feature comment
|
|
135
|
+
@one
|
|
136
|
+
Feature: Sample
|
|
137
|
+
|
|
138
|
+
# Scenario comment
|
|
139
|
+
@three
|
|
140
|
+
Scenario: Passing
|
|
141
|
+
Given passing
|
|
142
|
+
| a | b |
|
|
143
|
+
| c | d |
|
|
144
|
+
|
|
145
|
+
1 scenario (1 passed)
|
|
146
|
+
1 step (1 passed)
|
|
147
|
+
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
@mri186
|
|
151
|
+
Scenario: Run all with progress formatter
|
|
152
|
+
When I run cucumber -q --format progress features/sample.feature
|
|
153
|
+
Then it should fail with
|
|
154
|
+
"""
|
|
155
|
+
U.F
|
|
156
|
+
|
|
157
|
+
(::) failed steps (::)
|
|
158
|
+
|
|
159
|
+
FAIL (RuntimeError)
|
|
160
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
161
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
162
|
+
features/sample.feature:18:in `Given failing'
|
|
163
|
+
|
|
164
|
+
Failing Scenarios:
|
|
165
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
166
|
+
|
|
167
|
+
3 scenarios (1 failed, 1 undefined, 1 passed)
|
|
168
|
+
3 steps (1 failed, 1 undefined, 1 passed)
|
|
169
|
+
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
Scenario: Run Norwegian
|
|
173
|
+
Given I am in i18n/no
|
|
174
|
+
When I run cucumber -q --language no features
|
|
175
|
+
Then STDERR should be empty
|
|
176
|
+
Then it should pass with
|
|
177
|
+
"""
|
|
178
|
+
# language: no
|
|
179
|
+
Egenskap: Summering
|
|
180
|
+
For å slippe å gjøre dumme feil
|
|
181
|
+
Som en regnskapsfører
|
|
182
|
+
Vil jeg kunne legge sammen
|
|
183
|
+
|
|
184
|
+
Scenario: to tall
|
|
185
|
+
Gitt at jeg har tastet inn 5
|
|
186
|
+
Og at jeg har tastet inn 7
|
|
187
|
+
Når jeg summerer
|
|
188
|
+
Så skal resultatet være 12
|
|
189
|
+
|
|
190
|
+
@iterasjon3
|
|
191
|
+
Scenario: tre tall
|
|
192
|
+
Gitt at jeg har tastet inn 5
|
|
193
|
+
Og at jeg har tastet inn 7
|
|
194
|
+
Og at jeg har tastet inn 1
|
|
195
|
+
Når jeg summerer
|
|
196
|
+
Så skal resultatet være 13
|
|
197
|
+
|
|
198
|
+
2 scenarios (2 passed)
|
|
199
|
+
9 steps (9 passed)
|
|
200
|
+
|
|
201
|
+
"""
|
|
202
|
+
|
|
203
|
+
Scenario: --dry-run
|
|
204
|
+
When I run cucumber --dry-run --no-snippets features/*.feature --tags ~@lots
|
|
205
|
+
Then it should pass with
|
|
206
|
+
"""
|
|
207
|
+
Feature: Calling undefined step
|
|
208
|
+
|
|
209
|
+
Scenario: Call directly
|
|
210
|
+
Given a step definition that calls an undefined step
|
|
211
|
+
|
|
212
|
+
Scenario: Call via another
|
|
213
|
+
Given call step "a step definition that calls an undefined step"
|
|
214
|
+
|
|
215
|
+
Feature: Failing expectation
|
|
216
|
+
|
|
217
|
+
Scenario: Failing expectation
|
|
218
|
+
Given failing expectation
|
|
219
|
+
|
|
220
|
+
Feature: Lots of undefined
|
|
221
|
+
|
|
222
|
+
Scenario: Implement me
|
|
223
|
+
Given it snows in Sahara
|
|
224
|
+
Given it's 40 degrees in Norway
|
|
225
|
+
And it's 40 degrees in Norway
|
|
226
|
+
When I stop procrastinating
|
|
227
|
+
And there is world peace
|
|
228
|
+
|
|
229
|
+
Feature: multiline
|
|
230
|
+
|
|
231
|
+
Background: I'm a multiline name
|
|
232
|
+
which goes on and on and on for three lines
|
|
233
|
+
yawn
|
|
234
|
+
Given passing without a table
|
|
235
|
+
|
|
236
|
+
Scenario: I'm a multiline name
|
|
237
|
+
which goes on and on and on for three lines
|
|
238
|
+
yawn
|
|
239
|
+
Given passing without a table
|
|
240
|
+
|
|
241
|
+
Scenario Outline: I'm a multiline name
|
|
242
|
+
which goes on and on and on for three lines
|
|
243
|
+
yawn
|
|
244
|
+
Given <state> without a table
|
|
245
|
+
|
|
246
|
+
Examples:
|
|
247
|
+
| state |
|
|
248
|
+
| passing |
|
|
249
|
+
|
|
250
|
+
Scenario Outline: name
|
|
251
|
+
Given <state> without a table
|
|
252
|
+
|
|
253
|
+
Examples: I'm a multiline name
|
|
254
|
+
which goes on and on and on for three lines
|
|
255
|
+
yawn
|
|
256
|
+
| state |
|
|
257
|
+
| passing |
|
|
258
|
+
|
|
259
|
+
Feature: Outline Sample
|
|
260
|
+
|
|
261
|
+
Scenario: I have no steps
|
|
262
|
+
|
|
263
|
+
Scenario Outline: Test state
|
|
264
|
+
Given <state> without a table
|
|
265
|
+
Given <other_state> without a table
|
|
266
|
+
|
|
267
|
+
Examples: Rainbow colours
|
|
268
|
+
| state | other_state |
|
|
269
|
+
| missing | passing |
|
|
270
|
+
| passing | passing |
|
|
271
|
+
| failing | passing |
|
|
272
|
+
|
|
273
|
+
Examples: Only passing
|
|
274
|
+
| state | other_state |
|
|
275
|
+
| passing | passing |
|
|
276
|
+
|
|
277
|
+
# Feature comment
|
|
278
|
+
@one
|
|
279
|
+
Feature: Sample
|
|
280
|
+
|
|
281
|
+
@two @three
|
|
282
|
+
Scenario: Missing
|
|
283
|
+
Given missing
|
|
284
|
+
|
|
285
|
+
# Scenario comment
|
|
286
|
+
@three
|
|
287
|
+
Scenario: Passing
|
|
288
|
+
Given passing
|
|
289
|
+
| a | b |
|
|
290
|
+
| c | d |
|
|
291
|
+
|
|
292
|
+
@four
|
|
293
|
+
Scenario: Failing
|
|
294
|
+
Given failing
|
|
295
|
+
\"\"\"
|
|
296
|
+
hello
|
|
297
|
+
\"\"\"
|
|
298
|
+
|
|
299
|
+
Feature: search examples
|
|
300
|
+
|
|
301
|
+
Background: Hantu Pisang background match
|
|
302
|
+
Given passing without a table
|
|
303
|
+
|
|
304
|
+
Scenario: should match Hantu Pisang
|
|
305
|
+
Given passing without a table
|
|
306
|
+
|
|
307
|
+
Scenario: Ignore me
|
|
308
|
+
Given failing without a table
|
|
309
|
+
|
|
310
|
+
Scenario Outline: Ignore me
|
|
311
|
+
Given <state> without a table
|
|
312
|
+
|
|
313
|
+
Examples:
|
|
314
|
+
| state |
|
|
315
|
+
| failing |
|
|
316
|
+
|
|
317
|
+
Scenario Outline: Hantu Pisang match
|
|
318
|
+
Given <state> without a table
|
|
319
|
+
|
|
320
|
+
Examples:
|
|
321
|
+
| state |
|
|
322
|
+
| passing |
|
|
323
|
+
|
|
324
|
+
Scenario Outline: no match in name but in examples
|
|
325
|
+
Given <state> without a table
|
|
326
|
+
|
|
327
|
+
Examples: Hantu Pisang
|
|
328
|
+
| state |
|
|
329
|
+
| passing |
|
|
330
|
+
|
|
331
|
+
Examples: Ignore me
|
|
332
|
+
| state |
|
|
333
|
+
| failing |
|
|
334
|
+
|
|
335
|
+
@sample_one
|
|
336
|
+
Feature: Tag samples
|
|
337
|
+
|
|
338
|
+
@sample_two @sample_four
|
|
339
|
+
Scenario: Passing
|
|
340
|
+
Given missing
|
|
341
|
+
|
|
342
|
+
@sample_three
|
|
343
|
+
Scenario Outline:
|
|
344
|
+
Given <state>
|
|
345
|
+
|
|
346
|
+
Examples:
|
|
347
|
+
| state |
|
|
348
|
+
| missing |
|
|
349
|
+
|
|
350
|
+
@sample_three @sample_four
|
|
351
|
+
Scenario: Skipped
|
|
352
|
+
Given missing
|
|
353
|
+
|
|
354
|
+
Feature: Step argument transformations
|
|
355
|
+
|
|
356
|
+
Scenario: transform with matches
|
|
357
|
+
Then I should transform '10' to an Integer
|
|
358
|
+
|
|
359
|
+
Scenario: transform with matches that capture
|
|
360
|
+
Then I should transform 'abc' to a Symbol
|
|
361
|
+
|
|
362
|
+
Scenario: transform without matches
|
|
363
|
+
Then I should not transform '10' to an Integer
|
|
364
|
+
|
|
365
|
+
Feature: undefined multiline args
|
|
366
|
+
|
|
367
|
+
Scenario: pystring
|
|
368
|
+
Given a pystring
|
|
369
|
+
\"\"\"
|
|
370
|
+
example
|
|
371
|
+
\"\"\"
|
|
372
|
+
|
|
373
|
+
Scenario: table
|
|
374
|
+
Given a table
|
|
375
|
+
| table |
|
|
376
|
+
| example |
|
|
377
|
+
|
|
378
|
+
29 scenarios (20 skipped, 8 undefined, 1 passed)
|
|
379
|
+
45 steps (33 skipped, 12 undefined)
|
|
380
|
+
|
|
381
|
+
"""
|
|
382
|
+
|
|
383
|
+
Scenario: Multiple formatters and outputs
|
|
384
|
+
When I run cucumber --format progress --out tmp/progress.txt --format pretty --out tmp/pretty.txt --dry-run features/lots_of_undefined.feature
|
|
385
|
+
And "examples/self_test/tmp/progress.txt" should contain
|
|
386
|
+
"""
|
|
387
|
+
UUUUU
|
|
388
|
+
|
|
389
|
+
1 scenario (1 undefined)
|
|
390
|
+
5 steps (5 undefined)
|
|
391
|
+
|
|
392
|
+
"""
|
|
393
|
+
And "examples/self_test/tmp/pretty.txt" should contain
|
|
394
|
+
"""
|
|
395
|
+
Feature: Lots of undefined
|
|
396
|
+
|
|
397
|
+
Scenario: Implement me
|
|
398
|
+
Given it snows in Sahara
|
|
399
|
+
Given it's 40 degrees in Norway
|
|
400
|
+
And it's 40 degrees in Norway
|
|
401
|
+
When I stop procrastinating
|
|
402
|
+
And there is world peace
|
|
403
|
+
|
|
404
|
+
1 scenario (1 undefined)
|
|
405
|
+
5 steps (5 undefined)
|
|
406
|
+
|
|
407
|
+
"""
|
|
408
|
+
|
|
409
|
+
Scenario: Run feature elements which matches a name using --name
|
|
410
|
+
When I run cucumber --name Pisang -q features/
|
|
411
|
+
Then it should pass with
|
|
412
|
+
"""
|
|
413
|
+
Feature: search examples
|
|
414
|
+
|
|
415
|
+
Background: Hantu Pisang background match
|
|
416
|
+
Given passing without a table
|
|
417
|
+
|
|
418
|
+
Scenario: should match Hantu Pisang
|
|
419
|
+
Given passing without a table
|
|
420
|
+
|
|
421
|
+
Scenario Outline: Hantu Pisang match
|
|
422
|
+
Given <state> without a table
|
|
423
|
+
|
|
424
|
+
Examples:
|
|
425
|
+
| state |
|
|
426
|
+
| passing |
|
|
427
|
+
|
|
428
|
+
Scenario Outline: no match in name but in examples
|
|
429
|
+
Given <state> without a table
|
|
430
|
+
|
|
431
|
+
Examples: Hantu Pisang
|
|
432
|
+
| state |
|
|
433
|
+
| passing |
|
|
434
|
+
|
|
435
|
+
3 scenarios (3 passed)
|
|
436
|
+
6 steps (6 passed)
|
|
437
|
+
|
|
438
|
+
"""
|
|
439
|
+
|
|
440
|
+
Scenario: Run a single background which matches a name using --name (Useful if there is an error in it)
|
|
441
|
+
When I run cucumber --name 'Hantu Pisang background' -q features/
|
|
442
|
+
Then it should pass with
|
|
443
|
+
"""
|
|
444
|
+
Feature: search examples
|
|
445
|
+
|
|
446
|
+
Background: Hantu Pisang background match
|
|
447
|
+
Given passing without a table
|
|
448
|
+
|
|
449
|
+
0 scenarios
|
|
450
|
+
1 step (1 passed)
|
|
451
|
+
|
|
452
|
+
"""
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
Scenario: Run with a tag that exists on 2 scenarios
|
|
456
|
+
When I run cucumber -q features --tags three
|
|
457
|
+
Then it should pass with
|
|
458
|
+
"""
|
|
459
|
+
# Feature comment
|
|
460
|
+
@one
|
|
461
|
+
Feature: Sample
|
|
462
|
+
|
|
463
|
+
@two @three
|
|
464
|
+
Scenario: Missing
|
|
465
|
+
Given missing
|
|
466
|
+
|
|
467
|
+
# Scenario comment
|
|
468
|
+
@three
|
|
469
|
+
Scenario: Passing
|
|
470
|
+
Given passing
|
|
471
|
+
| a | b |
|
|
472
|
+
| c | d |
|
|
473
|
+
|
|
474
|
+
2 scenarios (1 undefined, 1 passed)
|
|
475
|
+
2 steps (1 undefined, 1 passed)
|
|
476
|
+
|
|
477
|
+
"""
|
|
478
|
+
|
|
479
|
+
@mri186
|
|
480
|
+
Scenario: Run with a tag that exists on 1 feature
|
|
481
|
+
When I run cucumber -q features --tags one
|
|
482
|
+
Then it should fail with
|
|
483
|
+
"""
|
|
484
|
+
# Feature comment
|
|
485
|
+
@one
|
|
486
|
+
Feature: Sample
|
|
487
|
+
|
|
488
|
+
@two @three
|
|
489
|
+
Scenario: Missing
|
|
490
|
+
Given missing
|
|
491
|
+
|
|
492
|
+
# Scenario comment
|
|
493
|
+
@three
|
|
494
|
+
Scenario: Passing
|
|
495
|
+
Given passing
|
|
496
|
+
| a | b |
|
|
497
|
+
| c | d |
|
|
498
|
+
|
|
499
|
+
@four
|
|
500
|
+
Scenario: Failing
|
|
501
|
+
Given failing
|
|
502
|
+
\"\"\"
|
|
503
|
+
hello
|
|
504
|
+
\"\"\"
|
|
505
|
+
FAIL (RuntimeError)
|
|
506
|
+
./features/step_definitions/sample_steps.rb:2:in `flunker'
|
|
507
|
+
./features/step_definitions/sample_steps.rb:9:in `/^failing$/'
|
|
508
|
+
features/sample.feature:18:in `Given failing'
|
|
509
|
+
|
|
510
|
+
Failing Scenarios:
|
|
511
|
+
cucumber features/sample.feature:17 # Scenario: Failing
|
|
512
|
+
|
|
513
|
+
3 scenarios (1 failed, 1 undefined, 1 passed)
|
|
514
|
+
3 steps (1 failed, 1 undefined, 1 passed)
|
|
515
|
+
|
|
516
|
+
"""
|
|
517
|
+
|
|
518
|
+
Scenario: Run with a negative tag
|
|
519
|
+
When I run cucumber -q features/sample.feature --dry-run -t ~four
|
|
520
|
+
Then it should pass with
|
|
521
|
+
"""
|
|
522
|
+
# Feature comment
|
|
523
|
+
@one
|
|
524
|
+
Feature: Sample
|
|
525
|
+
|
|
526
|
+
@two @three
|
|
527
|
+
Scenario: Missing
|
|
528
|
+
Given missing
|
|
529
|
+
|
|
530
|
+
# Scenario comment
|
|
531
|
+
@three
|
|
532
|
+
Scenario: Passing
|
|
533
|
+
Given passing
|
|
534
|
+
| a | b |
|
|
535
|
+
| c | d |
|
|
536
|
+
|
|
537
|
+
2 scenarios (1 skipped, 1 undefined)
|
|
538
|
+
2 steps (1 skipped, 1 undefined)
|
|
539
|
+
|
|
540
|
+
"""
|
|
541
|
+
|
|
542
|
+
Scenario: Run with limited tag number
|
|
543
|
+
When I run cucumber -q features/tags_sample.feature --dry-run -t sample_three:1
|
|
544
|
+
Then it should fail with
|
|
545
|
+
"""
|
|
546
|
+
@sample_one
|
|
547
|
+
Feature: Tag samples
|
|
548
|
+
|
|
549
|
+
@sample_three
|
|
550
|
+
Scenario Outline:
|
|
551
|
+
Given <state>
|
|
552
|
+
|
|
553
|
+
Examples:
|
|
554
|
+
| state |
|
|
555
|
+
| missing |
|
|
556
|
+
|
|
557
|
+
@sample_three @sample_four
|
|
558
|
+
Scenario: Skipped
|
|
559
|
+
Given missing
|
|
560
|
+
|
|
561
|
+
2 scenarios (2 undefined)
|
|
562
|
+
2 steps (2 undefined)
|
|
563
|
+
|
|
564
|
+
Failed due to exceeding the tag limit
|
|
565
|
+
@sample_three occurred:2 limit:1
|
|
566
|
+
features/tags_sample.feature:9
|
|
567
|
+
features/tags_sample.feature:16
|
|
568
|
+
|
|
569
|
+
"""
|
|
570
|
+
|
|
571
|
+
Scenario: Run with a feature tag which has a limit
|
|
572
|
+
When I run cucumber -q features/tags_sample.feature --dry-run -t sample_one:1
|
|
573
|
+
Then it should fail with
|
|
574
|
+
"""
|
|
575
|
+
@sample_one
|
|
576
|
+
Feature: Tag samples
|
|
577
|
+
|
|
578
|
+
@sample_two @sample_four
|
|
579
|
+
Scenario: Passing
|
|
580
|
+
Given missing
|
|
581
|
+
|
|
582
|
+
@sample_three
|
|
583
|
+
Scenario Outline:
|
|
584
|
+
Given <state>
|
|
585
|
+
|
|
586
|
+
Examples:
|
|
587
|
+
| state |
|
|
588
|
+
| missing |
|
|
589
|
+
|
|
590
|
+
@sample_three @sample_four
|
|
591
|
+
Scenario: Skipped
|
|
592
|
+
Given missing
|
|
593
|
+
|
|
594
|
+
3 scenarios (3 undefined)
|
|
595
|
+
3 steps (3 undefined)
|
|
596
|
+
|
|
597
|
+
Failed due to exceeding the tag limit
|
|
598
|
+
@sample_one occurred:3 limit:1
|
|
599
|
+
features/tags_sample.feature:5
|
|
600
|
+
features/tags_sample.feature:9
|
|
601
|
+
features/tags_sample.feature:16
|
|
602
|
+
|
|
603
|
+
"""
|
|
604
|
+
|
|
605
|
+
Scenario: Reformat files with --autoformat
|
|
606
|
+
When I run cucumber --autoformat tmp/formatted features
|
|
607
|
+
Then "examples/self_test/tmp/formatted/features/sample.feature" should contain
|
|
608
|
+
"""
|
|
609
|
+
# Feature comment
|
|
610
|
+
@one
|
|
611
|
+
Feature: Sample
|
|
612
|
+
|
|
613
|
+
@two @three
|
|
614
|
+
Scenario: Missing
|
|
615
|
+
Given missing
|
|
616
|
+
|
|
617
|
+
# Scenario comment
|
|
618
|
+
@three
|
|
619
|
+
Scenario: Passing
|
|
620
|
+
Given passing
|
|
621
|
+
| a | b |
|
|
622
|
+
| c | d |
|
|
623
|
+
|
|
624
|
+
@four
|
|
625
|
+
Scenario: Failing
|
|
626
|
+
Given failing
|
|
627
|
+
\"\"\"
|
|
628
|
+
hello
|
|
629
|
+
\"\"\"
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
"""
|
|
633
|
+
|
|
634
|
+
Scenario: Generate PDF with pdf formatter
|
|
635
|
+
When I run cucumber --format pdf --out tmp/sample.pdf --dry-run features/sample.feature
|
|
636
|
+
Then "examples/self_test/tmp/sample.pdf" should match "Pages 2"
|
|
637
|
+
|
|
638
|
+
Scenario: Run feature elements which match a name using -n
|
|
639
|
+
When I run cucumber -n Pisang -q features/
|
|
640
|
+
Then it should pass with
|
|
641
|
+
"""
|
|
642
|
+
Feature: search examples
|
|
643
|
+
|
|
644
|
+
Background: Hantu Pisang background match
|
|
645
|
+
Given passing without a table
|
|
646
|
+
|
|
647
|
+
Scenario: should match Hantu Pisang
|
|
648
|
+
Given passing without a table
|
|
649
|
+
|
|
650
|
+
Scenario Outline: Hantu Pisang match
|
|
651
|
+
Given <state> without a table
|
|
652
|
+
|
|
653
|
+
Examples:
|
|
654
|
+
| state |
|
|
655
|
+
| passing |
|
|
656
|
+
|
|
657
|
+
Scenario Outline: no match in name but in examples
|
|
658
|
+
Given <state> without a table
|
|
659
|
+
|
|
660
|
+
Examples: Hantu Pisang
|
|
661
|
+
| state |
|
|
662
|
+
| passing |
|
|
663
|
+
|
|
664
|
+
3 scenarios (3 passed)
|
|
665
|
+
6 steps (6 passed)
|
|
666
|
+
|
|
667
|
+
"""
|