square-cucumber 0.3.12.2
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 +830 -0
- data/License.txt +20 -0
- data/Manifest.txt +410 -0
- data/README.txt +4 -0
- data/Rakefile +9 -0
- data/bin/cucumber +17 -0
- data/config/hoe.rb +76 -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 +30 -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 +16 -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/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/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 +81 -0
- data/examples/self_test/features/support/env.rb +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/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 +28 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +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 +66 -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 +22 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/after_block_exceptions.feature +102 -0
- data/features/after_step_block_exceptions.feature +104 -0
- data/features/background.feature +311 -0
- data/features/bug_371.feature +32 -0
- data/features/cucumber_cli.feature +549 -0
- data/features/cucumber_cli_diff_disabled.feature +53 -0
- data/features/cucumber_cli_outlines.feature +109 -0
- data/features/custom_formatter.feature +11 -0
- data/features/drb_server_integration.feature +115 -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 +185 -0
- data/features/junit_formatter.feature +71 -0
- data/features/language_from_header.feature +30 -0
- data/features/multiline_names.feature +43 -0
- data/features/rake_task.feature +150 -0
- data/features/report_called_undefined_steps.feature +35 -0
- data/features/snippet.feature +22 -0
- data/features/step_definitions/cucumber_steps.rb +130 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/support/env.rb +120 -0
- data/features/usage.feature +126 -0
- data/features/work_in_progress.feature +151 -0
- data/gem_tasks/deployment.rake +11 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/features.rake +10 -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/yard.rake +8 -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 +11 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/ast/background.rb +62 -0
- data/lib/cucumber/ast/comment.rb +30 -0
- data/lib/cucumber/ast/examples.rb +26 -0
- data/lib/cucumber/ast/feature.rb +58 -0
- data/lib/cucumber/ast/feature_element.rb +57 -0
- data/lib/cucumber/ast/features.rb +30 -0
- data/lib/cucumber/ast/outline_table.rb +143 -0
- data/lib/cucumber/ast/py_string.rb +57 -0
- data/lib/cucumber/ast/scenario.rb +83 -0
- data/lib/cucumber/ast/scenario_outline.rb +93 -0
- data/lib/cucumber/ast/step.rb +112 -0
- data/lib/cucumber/ast/step_collection.rb +75 -0
- data/lib/cucumber/ast/step_invocation.rb +136 -0
- data/lib/cucumber/ast/table.rb +334 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +116 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +425 -0
- data/lib/cucumber/cli/drb_client.rb +20 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +136 -0
- data/lib/cucumber/core_ext/exception.rb +53 -0
- data/lib/cucumber/core_ext/instance_exec.rb +67 -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 +47 -0
- data/lib/cucumber/filter.rb +50 -0
- data/lib/cucumber/formatter/ansicolor.rb +110 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +149 -0
- data/lib/cucumber/formatter/cucumber.css +132 -0
- data/lib/cucumber/formatter/cucumber.sass +139 -0
- data/lib/cucumber/formatter/duration.rb +10 -0
- data/lib/cucumber/formatter/html.rb +258 -0
- data/lib/cucumber/formatter/junit.rb +75 -0
- data/lib/cucumber/formatter/pretty.rb +188 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +44 -0
- data/lib/cucumber/formatter/tag_cloud.rb +28 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter/usage.rb +85 -0
- data/lib/cucumber/formatters/unicode.rb +7 -0
- data/lib/cucumber/languages.yml +532 -0
- data/lib/cucumber/parser.rb +6 -0
- data/lib/cucumber/parser/feature.rb +1787 -0
- data/lib/cucumber/parser/feature.tt +324 -0
- data/lib/cucumber/parser/i18n.tt +42 -0
- data/lib/cucumber/parser/i18n/language.rb +80 -0
- data/lib/cucumber/parser/table.rb +414 -0
- data/lib/cucumber/parser/table.tt +71 -0
- data/lib/cucumber/parser/treetop_ext.rb +52 -0
- data/lib/cucumber/platform.rb +23 -0
- data/lib/cucumber/rails/rspec.rb +10 -0
- data/lib/cucumber/rails/world.rb +99 -0
- data/lib/cucumber/rake/task.rb +233 -0
- data/lib/cucumber/rspec_neuter.rb +23 -0
- data/lib/cucumber/step_definition.rb +122 -0
- data/lib/cucumber/step_match.rb +61 -0
- data/lib/cucumber/step_mother.rb +362 -0
- data/lib/cucumber/version.rb +10 -0
- data/lib/cucumber/webrat/mechanize_world.rb +82 -0
- data/lib/cucumber/world.rb +53 -0
- data/rails_generators/cucumber/USAGE +11 -0
- data/rails_generators/cucumber/cucumber_generator.rb +66 -0
- data/rails_generators/cucumber/templates/cucumber +8 -0
- data/rails_generators/cucumber/templates/cucumber.rake +20 -0
- data/rails_generators/cucumber/templates/cucumber_environment.rb +23 -0
- data/rails_generators/cucumber/templates/env.rb +26 -0
- data/rails_generators/cucumber/templates/paths.rb +27 -0
- data/rails_generators/cucumber/templates/spork_env.rb +36 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +147 -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 +20 -0
- data/spec/cucumber/ast/background_spec.rb +50 -0
- data/spec/cucumber/ast/feature_element_spec.rb +40 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +38 -0
- data/spec/cucumber/ast/py_string_spec.rb +51 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +38 -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 +186 -0
- data/spec/cucumber/ast/visitor_spec.rb +27 -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 +43 -0
- data/spec/cucumber/cli/main_spec.rb +140 -0
- data/spec/cucumber/core_ext/proc_spec.rb +54 -0
- data/spec/cucumber/core_ext/string_spec.rb +42 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
- data/spec/cucumber/formatter/color_io_spec.rb +27 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/progress_spec.rb +36 -0
- data/spec/cucumber/parser/feature_parser_spec.rb +387 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -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 +11 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_definition_spec.rb +101 -0
- data/spec/cucumber/step_mother_spec.rb +155 -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 +10 -0
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +47 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +13 -0
- metadata +504 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Feature: Cucumber
|
|
2
|
+
In order to have a happy user base
|
|
3
|
+
As a Cucumber user
|
|
4
|
+
I don't want no stinkin bugs
|
|
5
|
+
|
|
6
|
+
Scenario: RSpec be_*
|
|
7
|
+
Given be_empty
|
|
8
|
+
|
|
9
|
+
Scenario: Call step from step
|
|
10
|
+
Given nested step is called
|
|
11
|
+
Then nested step should be executed
|
|
12
|
+
|
|
13
|
+
Scenario: Call step from step using text table
|
|
14
|
+
Given nested step is called using text table
|
|
15
|
+
Then nested step should be executed
|
|
16
|
+
|
|
17
|
+
Scenario: Reading a table
|
|
18
|
+
Given the following table
|
|
19
|
+
| born | working |
|
|
20
|
+
| Oslo | London |
|
|
21
|
+
Then I should be working in London
|
|
22
|
+
And I should be born in Oslo
|
|
23
|
+
And I should see a multiline string like
|
|
24
|
+
"""
|
|
25
|
+
A string
|
|
26
|
+
that spans
|
|
27
|
+
several lines
|
|
28
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Here you'll find examples for Watir, FireWatir, SafariWatir and Celerity.
|
|
2
|
+
All of these browser libraries have the same API, so the example code will
|
|
3
|
+
work with all of them.
|
|
4
|
+
|
|
5
|
+
Just run with:
|
|
6
|
+
|
|
7
|
+
rake features
|
|
8
|
+
|
|
9
|
+
This will use Watir/IE if you're on Windows, and SafariWatir/Safari if you're on OS X.
|
|
10
|
+
You can force the use of FireWatir/Firefox on any platform like this:
|
|
11
|
+
|
|
12
|
+
rake features FIREWATIR=true
|
|
13
|
+
|
|
14
|
+
And finally, you can use Celerity by running in JRuby:
|
|
15
|
+
|
|
16
|
+
jruby -S rake features
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: Search
|
|
2
|
+
In order to learn more
|
|
3
|
+
As an information seeker
|
|
4
|
+
I want to find more information
|
|
5
|
+
|
|
6
|
+
Scenario: Find what I'm looking for
|
|
7
|
+
Given I am on the Google search page
|
|
8
|
+
When I search for "cucumber github"
|
|
9
|
+
Then I should see
|
|
10
|
+
"""
|
|
11
|
+
BDD that talks to domain experts first and code second
|
|
12
|
+
"""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Full Watir API: http://wtr.rubyforge.org/rdoc/
|
|
2
|
+
# Full RSpec API: http://rspec.rubyforge.org/
|
|
3
|
+
|
|
4
|
+
Given 'I am on the Google search page' do
|
|
5
|
+
@browser.goto 'http://www.google.com/'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
When /I search for "(.*)"/ do |query|
|
|
9
|
+
@browser.text_field(:name, 'q').set(query)
|
|
10
|
+
@browser.button(:name, 'btnG').click
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Then /I should see/ do |text|
|
|
14
|
+
@browser.text.should =~ /#{text}/m
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# To avoid step definitions that are tightly coupled to your user interface,
|
|
18
|
+
# consider creating classes for your pages - such as this:
|
|
19
|
+
# http://github.com/aslakhellesoy/cucumber/tree/v0.1.15/examples/watir/features/step_definitons/search_steps.rb
|
|
20
|
+
#
|
|
21
|
+
# You may keep the page classes along your steps, or even better, put them in separate files, e.g.
|
|
22
|
+
# support/pages/google_search.rb
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'spec/expectations'
|
|
2
|
+
|
|
3
|
+
if ENV['FIREWATIR']
|
|
4
|
+
require 'firewatir'
|
|
5
|
+
Browser = FireWatir::Firefox
|
|
6
|
+
else
|
|
7
|
+
case RUBY_PLATFORM
|
|
8
|
+
when /darwin/
|
|
9
|
+
require 'safariwatir'
|
|
10
|
+
Browser = Watir::Safari
|
|
11
|
+
when /win32|mingw/
|
|
12
|
+
require 'watir'
|
|
13
|
+
Browser = Watir::IE
|
|
14
|
+
when /java/
|
|
15
|
+
require 'celerity'
|
|
16
|
+
Browser = Celerity::Browser
|
|
17
|
+
else
|
|
18
|
+
raise "This platform is not supported (#{PLATFORM})"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# "before all"
|
|
23
|
+
browser = Browser.new
|
|
24
|
+
|
|
25
|
+
Before do
|
|
26
|
+
@browser = browser
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# "after all"
|
|
30
|
+
at_exit do
|
|
31
|
+
browser.close
|
|
32
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Feature: After Block Exceptions
|
|
2
|
+
In order to use custom assertions at the end of each scenario
|
|
3
|
+
As a developer
|
|
4
|
+
I want exceptions raised in After blocks to be handled gracefully and reported by the formatters
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
Given /^this step does something naughty$/ do
|
|
11
|
+
@naughty = true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Given /^this step works$/ do
|
|
15
|
+
end
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/support/env.rb" with:
|
|
18
|
+
"""
|
|
19
|
+
class NaughtyScenarioException < Exception; end
|
|
20
|
+
After do
|
|
21
|
+
if @naughty
|
|
22
|
+
raise NaughtyScenarioException.new("This scenario has been very very naughty")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
@mri186
|
|
28
|
+
Scenario: Handle Exception in standard scenario step and carry on
|
|
29
|
+
Given a file named "features/naughty_step_in_scenario.feature" with:
|
|
30
|
+
"""
|
|
31
|
+
Feature: Sample
|
|
32
|
+
|
|
33
|
+
Scenario: Naughty Step
|
|
34
|
+
Given this step does something naughty
|
|
35
|
+
|
|
36
|
+
Scenario: Success
|
|
37
|
+
Given this step works
|
|
38
|
+
"""
|
|
39
|
+
When I run cucumber features
|
|
40
|
+
Then it should fail with
|
|
41
|
+
"""
|
|
42
|
+
Feature: Sample
|
|
43
|
+
|
|
44
|
+
Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
|
|
45
|
+
Given this step does something naughty # features/step_definitions/steps.rb:1
|
|
46
|
+
This scenario has been very very naughty (NaughtyScenarioException)
|
|
47
|
+
./features/support/env.rb:4:in `After'
|
|
48
|
+
|
|
49
|
+
Scenario: Success # features/naughty_step_in_scenario.feature:6
|
|
50
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
51
|
+
|
|
52
|
+
Failing Scenarios:
|
|
53
|
+
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
|
54
|
+
|
|
55
|
+
2 scenarios (1 failed, 1 passed)
|
|
56
|
+
2 steps (2 passed)
|
|
57
|
+
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
@mri186
|
|
61
|
+
Scenario: Handle Exception in scenario outline table row and carry on
|
|
62
|
+
Given a file named "features/naughty_step_in_scenario_outline.feature" with:
|
|
63
|
+
"""
|
|
64
|
+
Feature: Sample
|
|
65
|
+
|
|
66
|
+
Scenario Outline: Naughty Step
|
|
67
|
+
Given this step <Might Work>
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
| Might Work |
|
|
71
|
+
| works |
|
|
72
|
+
| does something naughty |
|
|
73
|
+
| works |
|
|
74
|
+
|
|
75
|
+
Scenario: Success
|
|
76
|
+
Given this step works
|
|
77
|
+
|
|
78
|
+
"""
|
|
79
|
+
When I run cucumber features
|
|
80
|
+
Then it should fail with
|
|
81
|
+
"""
|
|
82
|
+
Feature: Sample
|
|
83
|
+
|
|
84
|
+
Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
|
|
85
|
+
Given this step <Might Work> # features/step_definitions/steps.rb:5
|
|
86
|
+
|
|
87
|
+
Examples:
|
|
88
|
+
| Might Work |
|
|
89
|
+
| works |
|
|
90
|
+
| does something naughty |
|
|
91
|
+
This scenario has been very very naughty (NaughtyScenarioException)
|
|
92
|
+
./features/support/env.rb:4:in `After'
|
|
93
|
+
| works |
|
|
94
|
+
|
|
95
|
+
Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
|
|
96
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
97
|
+
|
|
98
|
+
4 scenarios (1 failed, 3 passed)
|
|
99
|
+
4 steps (4 passed)
|
|
100
|
+
|
|
101
|
+
"""
|
|
102
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Feature: AfterStep Block Exceptions
|
|
2
|
+
In order to use custom assertions at the end of each step
|
|
3
|
+
As a developer
|
|
4
|
+
I want exceptions raised in AfterStep blocks to be handled gracefully and reported by the formatters
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
9
|
+
"""
|
|
10
|
+
Given /^this step does something naughty$/ do
|
|
11
|
+
@naughty = true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Given /^this step works$/ do
|
|
15
|
+
end
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/support/env.rb" with:
|
|
18
|
+
"""
|
|
19
|
+
class NaughtyStepException < Exception; end
|
|
20
|
+
AfterStep do
|
|
21
|
+
if @naughty
|
|
22
|
+
raise NaughtyStepException.new("This step has been very very naughty")
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
@mri186
|
|
28
|
+
Scenario: Handle Exception in standard scenario step and carry on
|
|
29
|
+
Given a file named "features/naughty_step_in_scenario.feature" with:
|
|
30
|
+
"""
|
|
31
|
+
Feature: Sample
|
|
32
|
+
|
|
33
|
+
Scenario: Naughty Step
|
|
34
|
+
Given this step does something naughty
|
|
35
|
+
|
|
36
|
+
Scenario: Success
|
|
37
|
+
Given this step works
|
|
38
|
+
"""
|
|
39
|
+
When I run cucumber features
|
|
40
|
+
Then it should fail with
|
|
41
|
+
"""
|
|
42
|
+
Feature: Sample
|
|
43
|
+
|
|
44
|
+
Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
|
|
45
|
+
Given this step does something naughty # features/step_definitions/steps.rb:1
|
|
46
|
+
This step has been very very naughty (NaughtyStepException)
|
|
47
|
+
./features/support/env.rb:4:in `AfterStep'
|
|
48
|
+
features/naughty_step_in_scenario.feature:4:in `Given this step does something naughty'
|
|
49
|
+
|
|
50
|
+
Scenario: Success # features/naughty_step_in_scenario.feature:6
|
|
51
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
52
|
+
|
|
53
|
+
Failing Scenarios:
|
|
54
|
+
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
|
55
|
+
|
|
56
|
+
2 scenarios (1 failed, 1 passed)
|
|
57
|
+
2 steps (1 failed, 1 passed)
|
|
58
|
+
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
@mri186
|
|
62
|
+
Scenario: Handle Exception in scenario outline table row and carry on
|
|
63
|
+
Given a file named "features/naughty_step_in_scenario_outline.feature" with:
|
|
64
|
+
"""
|
|
65
|
+
Feature: Sample
|
|
66
|
+
|
|
67
|
+
Scenario Outline: Naughty Step
|
|
68
|
+
Given this step <Might Work>
|
|
69
|
+
|
|
70
|
+
Examples:
|
|
71
|
+
| Might Work |
|
|
72
|
+
| works |
|
|
73
|
+
| does something naughty |
|
|
74
|
+
| works |
|
|
75
|
+
|
|
76
|
+
Scenario: Success
|
|
77
|
+
Given this step works
|
|
78
|
+
|
|
79
|
+
"""
|
|
80
|
+
When I run cucumber features
|
|
81
|
+
Then it should fail with
|
|
82
|
+
"""
|
|
83
|
+
Feature: Sample
|
|
84
|
+
|
|
85
|
+
Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
|
|
86
|
+
Given this step <Might Work> # features/step_definitions/steps.rb:5
|
|
87
|
+
|
|
88
|
+
Examples:
|
|
89
|
+
| Might Work |
|
|
90
|
+
| works |
|
|
91
|
+
| does something naughty |
|
|
92
|
+
This step has been very very naughty (NaughtyStepException)
|
|
93
|
+
./features/support/env.rb:4:in `AfterStep'
|
|
94
|
+
features/naughty_step_in_scenario_outline.feature:4:in `Given this step <Might Work>'
|
|
95
|
+
| works |
|
|
96
|
+
|
|
97
|
+
Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
|
|
98
|
+
Given this step works # features/step_definitions/steps.rb:5
|
|
99
|
+
|
|
100
|
+
4 scenarios (1 failed, 3 passed)
|
|
101
|
+
4 steps (1 failed, 3 passed)
|
|
102
|
+
|
|
103
|
+
"""
|
|
104
|
+
|
|
@@ -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
|