jwilger-cucumber 0.3.11.200906161550
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/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/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/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/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 +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/a.html +185 -0
- data/features/html_formatter.feature +7 -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/steps_formatter.feature +25 -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/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/ast.rb +29 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +427 -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/steps.rb +49 -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/feature.rb +1787 -0
- data/lib/cucumber/parser/feature.tt +324 -0
- data/lib/cucumber/parser/i18n/language.rb +80 -0
- data/lib/cucumber/parser/i18n.tt +42 -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/parser.rb +6 -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/world.rb +53 -0
- data/lib/cucumber.rb +11 -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 +506 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
@intentional_failure
|
2
|
+
Feature: Hooks
|
3
|
+
In order to integrate with my complex environment
|
4
|
+
I need to check scenario status in an After block
|
5
|
+
|
6
|
+
@272_failed
|
7
|
+
Scenario: Failed
|
8
|
+
Given I fail
|
9
|
+
|
10
|
+
@272_undefined
|
11
|
+
Scenario: Undefined
|
12
|
+
Given I am undefined
|
13
|
+
|
14
|
+
@272_passed
|
15
|
+
Scenario: Passed
|
16
|
+
Given I pass
|
17
|
+
|
18
|
+
@272_outline
|
19
|
+
Scenario Outline: Should work too
|
20
|
+
Given <something>
|
21
|
+
|
22
|
+
Examples:
|
23
|
+
| something |
|
24
|
+
| I fail |
|
25
|
+
| I am undefined |
|
26
|
+
| I pass |
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec/expectations'
|
2
|
+
|
3
|
+
Given /^I fail$/ do
|
4
|
+
raise "BOOM (this is expected)"
|
5
|
+
end
|
6
|
+
|
7
|
+
Given /^I pass$/ do
|
8
|
+
end
|
9
|
+
|
10
|
+
module HookChecks
|
11
|
+
def check_failed(scenario)
|
12
|
+
scenario.should be_failed
|
13
|
+
scenario.should_not be_passed
|
14
|
+
scenario.exception.message.should == "BOOM (this is expected)"
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_undefined(scenario)
|
18
|
+
scenario.should_not be_failed
|
19
|
+
scenario.should_not be_passed
|
20
|
+
end
|
21
|
+
|
22
|
+
def check_passed(scenario)
|
23
|
+
scenario.should_not be_failed
|
24
|
+
scenario.should be_passed
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
World(HookChecks)
|
29
|
+
|
30
|
+
After('@272_failed') do |scenario|
|
31
|
+
check_failed(scenario)
|
32
|
+
end
|
33
|
+
|
34
|
+
After('@272_undefined') do |scenario|
|
35
|
+
check_undefined(scenario)
|
36
|
+
end
|
37
|
+
|
38
|
+
After('@272_passed') do |scenario|
|
39
|
+
check_passed(scenario)
|
40
|
+
end
|
41
|
+
|
42
|
+
counter = 0
|
43
|
+
After('@272_outline') do |scenario|
|
44
|
+
case(counter)
|
45
|
+
when 0
|
46
|
+
check_failed(scenario)
|
47
|
+
when 1
|
48
|
+
check_undefined(scenario)
|
49
|
+
when 2
|
50
|
+
check_passed(scenario)
|
51
|
+
end
|
52
|
+
counter +=1
|
53
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Feature: pystring indentaion testcase
|
2
|
+
|
3
|
+
Scenario: example of correct indentation
|
4
|
+
Given multiline string
|
5
|
+
"""
|
6
|
+
I'm a cucumber and I'm ok
|
7
|
+
I sleep all night and test all day
|
8
|
+
"""
|
9
|
+
Then string is
|
10
|
+
"""
|
11
|
+
I'm a cucumber and I'm ok
|
12
|
+
I sleep all night and test all day
|
13
|
+
"""
|
14
|
+
|
15
|
+
Scenario: example of wrong indentation
|
16
|
+
Given I am in tickets/features/279
|
17
|
+
When I run cucumber -q wrong.feature_
|
18
|
+
Then it should fail with
|
19
|
+
"""
|
20
|
+
|
21
|
+
"""
|
22
|
+
And STDERR should match
|
23
|
+
"""
|
24
|
+
wrong.feature_:8:10: Parse error
|
25
|
+
"""
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec/expectations'
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../../features/step_definitions/cucumber_steps.rb'
|
4
|
+
require File.dirname(__FILE__) + '/../../../../features/support/env.rb'
|
5
|
+
|
6
|
+
Given /^multiline string$/ do |string|
|
7
|
+
@string = string
|
8
|
+
end
|
9
|
+
|
10
|
+
Then /^string is$/ do |string|
|
11
|
+
@string.should == string
|
12
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class EattingMachine
|
2
|
+
|
3
|
+
attr_reader :fruit_total, :belly_count
|
4
|
+
attr_accessor :belly_count
|
5
|
+
|
6
|
+
def initialize(fruit_name, fruit_total)
|
7
|
+
@fruit_name = fruit_name
|
8
|
+
@fruit_total = fruit_total.to_i
|
9
|
+
@belly_count = 0
|
10
|
+
end
|
11
|
+
|
12
|
+
def eat(count)
|
13
|
+
count = count.to_i
|
14
|
+
@fruit_total = @fruit_total - count
|
15
|
+
@belly_count += count
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class Pantry
|
2
|
+
|
3
|
+
def initialize
|
4
|
+
@items = {}
|
5
|
+
end
|
6
|
+
|
7
|
+
def add(food_name, count)
|
8
|
+
@items[food_name] ||= 0
|
9
|
+
@items[food_name] += count.to_i
|
10
|
+
end
|
11
|
+
|
12
|
+
def remove(food_name, count)
|
13
|
+
@items[food_name] -= count.to_i
|
14
|
+
end
|
15
|
+
|
16
|
+
def count(food_name)
|
17
|
+
@items[food_name]
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
Feature: Outlines
|
2
|
+
In order to re-use scenario table values
|
3
|
+
As a citizen of Cucumbia
|
4
|
+
I want to explicitly mark the parameters in a scenario outline
|
5
|
+
|
6
|
+
Scenario Outline: controlling order
|
7
|
+
Given there are <start> cucumbers
|
8
|
+
When I eat <eat> cucumbers
|
9
|
+
Then I should have <left> cucumbers
|
10
|
+
|
11
|
+
Examples:
|
12
|
+
| left | start | eat |
|
13
|
+
| 7 | 12 | 5 |
|
14
|
+
| 15 | 20 | 5 |
|
15
|
+
|
16
|
+
Scenario Outline: reusing place holder
|
17
|
+
Given there are <start> cucumbers
|
18
|
+
When I eat <eat> cucumbers
|
19
|
+
Then I should have <left> cucumbers
|
20
|
+
And I should have <eat> cucumbers in my belly
|
21
|
+
|
22
|
+
Examples: Lots of cukes
|
23
|
+
| start | eat | left |
|
24
|
+
| 12 | 5 | 7 |
|
25
|
+
| 20 | 5 | 15 |
|
26
|
+
|
27
|
+
Examples: Ridiculous amounts of cukes
|
28
|
+
| start | eat | left |
|
29
|
+
| 120 | 50 | 70 |
|
30
|
+
| 200 | 50 | 150 |
|
31
|
+
|
32
|
+
Scenario Outline: no placeholders
|
33
|
+
Given there are 12 cucumbers
|
34
|
+
When I eat 5 cucumbers
|
35
|
+
Then I should have 7 cucumbers
|
36
|
+
|
37
|
+
Examples:
|
38
|
+
| start | eat | left |
|
39
|
+
| 12 | 5 | 7 |
|
40
|
+
| 20 | 5 | 15 |
|
41
|
+
|
42
|
+
Scenario Outline: using '<' and '>' not as placeholder
|
43
|
+
Given the belly space is < 12 and > 6
|
44
|
+
And there are <start> cucumbers
|
45
|
+
When I eat <eat> cucumbers
|
46
|
+
Then I should have <left> cucumbers
|
47
|
+
|
48
|
+
Examples:
|
49
|
+
| start | eat | left |
|
50
|
+
| 12 | 5 | 7 |
|
51
|
+
| 20 | 5 | 15 |
|
52
|
+
|
53
|
+
Scenario Outline: with step tables
|
54
|
+
Given I have the following fruits in my pantry
|
55
|
+
| name | quantity |
|
56
|
+
| cucumbers | 10 |
|
57
|
+
| strawberrys | 5 |
|
58
|
+
| apricots | 7 |
|
59
|
+
|
60
|
+
When I eat <number> <fruits> from the pantry
|
61
|
+
Then I should have <left> <fruits> in the pantry
|
62
|
+
|
63
|
+
Examples:
|
64
|
+
| number | fruits | left |
|
65
|
+
| 2 | cucumbers | 8 |
|
66
|
+
| 4 | strawberrys| 1 |
|
67
|
+
| 2 | apricots | 5 |
|
68
|
+
|
69
|
+
Scenario Outline: placeholder in a multiline string
|
70
|
+
Given my shopping list
|
71
|
+
"""
|
72
|
+
Must buy some <fruits>
|
73
|
+
"""
|
74
|
+
Then my shopping list should equal
|
75
|
+
"""
|
76
|
+
Must buy some cucumbers
|
77
|
+
"""
|
78
|
+
|
79
|
+
Examples:
|
80
|
+
| fruits |
|
81
|
+
| cucumbers |
|
82
|
+
|
83
|
+
Scenario Outline: placeholder in step table
|
84
|
+
Given I have the following fruits in my pantry
|
85
|
+
| name | quantity |
|
86
|
+
| cucumbers | <quant_cukes> |
|
87
|
+
| strawberrys | <quant_straw> |
|
88
|
+
|
89
|
+
When I eat <number> <fruits> from the pantry
|
90
|
+
Then I should have <left> <fruits> in the pantry
|
91
|
+
|
92
|
+
Examples:
|
93
|
+
| quant_cukes | quant_straw | number | fruits | left |
|
94
|
+
| 10 | 5 | 2 | cucumbers | 8 |
|
95
|
+
| 5 | 5 | 4 | strawberrys | 1 |
|
@@ -0,0 +1,42 @@
|
|
1
|
+
Given /^there are (\d+) (\w+)$/ do |count, fruit|
|
2
|
+
@eattingMachine = EattingMachine.new(fruit, count)
|
3
|
+
end
|
4
|
+
|
5
|
+
Given "the belly space is < 12 and > 6" do
|
6
|
+
end
|
7
|
+
|
8
|
+
Given "I have the following fruits in my pantry" do |pantry_table|
|
9
|
+
@pantry = Pantry.new
|
10
|
+
pantry_table.hashes.each do |item|
|
11
|
+
@pantry.add(item['name'].downcase, item['quantity'])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Given "my shopping list" do |list|
|
16
|
+
@shopping_list = list
|
17
|
+
end
|
18
|
+
|
19
|
+
When /^I eat (\d+) (\w+)$/ do |count, fruit|
|
20
|
+
@eattingMachine.eat(count)
|
21
|
+
@eattingMachine.belly_count = count.to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
When /^I eat (\d+) (\w+) from the pantry$/ do |count, fruit|
|
25
|
+
@pantry.remove(fruit, count.to_i)
|
26
|
+
end
|
27
|
+
|
28
|
+
Then /^I should have (\d+) (\w+)$/ do |count, fruit|
|
29
|
+
@eattingMachine.fruit_total.should == count.to_i
|
30
|
+
end
|
31
|
+
|
32
|
+
Then /^I should have (\d+) (\w+) in my belly$/ do |count, fruit|
|
33
|
+
@eattingMachine.belly_count.should == count.to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
Then /^I should have (\d+) (\w+) in the pantry$/ do |count, fruit|
|
37
|
+
@pantry.count(fruit).should == count.to_i
|
38
|
+
end
|
39
|
+
|
40
|
+
Then /^my shopping list should equal$/ do |list|
|
41
|
+
@shopping_list.should == list
|
42
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'spec/expectations'
|
2
|
+
|
3
|
+
Given "be_empty" do
|
4
|
+
[1,2].should_not be_empty
|
5
|
+
end
|
6
|
+
|
7
|
+
Given "nested step is called" do
|
8
|
+
Given "I like mushroom", Cucumber::Ast::Table.new([
|
9
|
+
%w{sponge bob},
|
10
|
+
%w{is cool}
|
11
|
+
])
|
12
|
+
end
|
13
|
+
|
14
|
+
Given 'nested step is called using text table' do
|
15
|
+
Given "I like mushroom", table(%{
|
16
|
+
| sponge | bob |
|
17
|
+
| is | cool |
|
18
|
+
})
|
19
|
+
|
20
|
+
# Alternative syntax (file and line will be reported on parse error)
|
21
|
+
# Given "I like mushroom", table(<<-EOT, __FILE__, __LINE__)
|
22
|
+
# | sponge | bob |
|
23
|
+
# | is | cool
|
24
|
+
# EOT
|
25
|
+
end
|
26
|
+
|
27
|
+
Given "I like $what" do |what, table|
|
28
|
+
@magic = what
|
29
|
+
@tool = table.raw[0][0]
|
30
|
+
end
|
31
|
+
|
32
|
+
Then "nested step should be executed" do
|
33
|
+
@magic.should == 'mushroom'
|
34
|
+
@tool.should == 'sponge'
|
35
|
+
end
|
36
|
+
|
37
|
+
Given /^the following table$/ do |table|
|
38
|
+
@table = table
|
39
|
+
end
|
40
|
+
|
41
|
+
Then /^I should be (\w+) in (\w+)$/ do |key, value|
|
42
|
+
hash = @table.hashes[0]
|
43
|
+
hash[key].should == value
|
44
|
+
end
|
45
|
+
|
46
|
+
Then /^I should see a multiline string like$/ do |s|
|
47
|
+
s.should == %{A string
|
48
|
+
that spans
|
49
|
+
several lines}
|
50
|
+
end
|
51
|
+
|
52
|
+
Given /^the following users exist in the system$/ do |table|
|
53
|
+
table.hashes[0][:role_assignments].should == 'HUMAN RESOURCE'
|
54
|
+
end
|
55
|
+
|
56
|
+
Given /^I have a pending step$/ do
|
57
|
+
pending
|
58
|
+
end
|
59
|
+
|
60
|
+
When /^I run this feature with the progress format$/ do
|
61
|
+
pending
|
62
|
+
end
|
63
|
+
|
64
|
+
Then /^I should get a no method error for 'backtrace_line'$/ do
|
65
|
+
pending
|
66
|
+
end
|
@@ -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
|
+
|