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,30 @@
|
|
|
1
|
+
Feature: Language from header
|
|
2
|
+
In order to simplify command line and
|
|
3
|
+
settings in IDEs, Cucumber should pick
|
|
4
|
+
up parser language from a header.
|
|
5
|
+
|
|
6
|
+
Scenario: LOLCAT
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/lolcat.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
# language: en-lol
|
|
11
|
+
OH HAI: STUFFING
|
|
12
|
+
B4: HUNGRY
|
|
13
|
+
MISHUN: CUKES
|
|
14
|
+
DEN KTHXBAI
|
|
15
|
+
"""
|
|
16
|
+
When I run cucumber -i features/lolcat.feature
|
|
17
|
+
Then it should pass with
|
|
18
|
+
"""
|
|
19
|
+
# language: en-lol
|
|
20
|
+
OH HAI: STUFFING
|
|
21
|
+
|
|
22
|
+
B4: HUNGRY # features/lolcat.feature:3
|
|
23
|
+
|
|
24
|
+
MISHUN: CUKES # features/lolcat.feature:4
|
|
25
|
+
DEN KTHXBAI # features/lolcat.feature:5
|
|
26
|
+
|
|
27
|
+
1 scenario (1 undefined)
|
|
28
|
+
1 step (1 undefined)
|
|
29
|
+
|
|
30
|
+
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: Multiline description names
|
|
2
|
+
In order to accurately document feature elements
|
|
3
|
+
As a cucumberist
|
|
4
|
+
I want to have multiline names
|
|
5
|
+
|
|
6
|
+
Scenario: multiline scenario
|
|
7
|
+
When I run cucumber features/multiline_name.feature --no-snippets
|
|
8
|
+
Then it should pass with
|
|
9
|
+
"""
|
|
10
|
+
Feature: multiline
|
|
11
|
+
|
|
12
|
+
Background: I'm a multiline name # features/multiline_name.feature:3
|
|
13
|
+
which goes on and on and on for three lines
|
|
14
|
+
yawn
|
|
15
|
+
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
16
|
+
|
|
17
|
+
Scenario: I'm a multiline name # features/multiline_name.feature:8
|
|
18
|
+
which goes on and on and on for three lines
|
|
19
|
+
yawn
|
|
20
|
+
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
21
|
+
|
|
22
|
+
Scenario Outline: I'm a multiline name # features/multiline_name.feature:13
|
|
23
|
+
which goes on and on and on for three lines
|
|
24
|
+
yawn
|
|
25
|
+
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
| state |
|
|
29
|
+
| passing |
|
|
30
|
+
|
|
31
|
+
Scenario Outline: name # features/multiline_name.feature:21
|
|
32
|
+
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
33
|
+
|
|
34
|
+
Examples: I'm a multiline name
|
|
35
|
+
which goes on and on and on for three lines
|
|
36
|
+
yawn
|
|
37
|
+
| state |
|
|
38
|
+
| passing |
|
|
39
|
+
|
|
40
|
+
3 scenarios (3 passed)
|
|
41
|
+
6 steps (6 passed)
|
|
42
|
+
|
|
43
|
+
"""
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Feature: Post Configuration Hook [#423]
|
|
2
|
+
|
|
3
|
+
In order to extend Cucumber
|
|
4
|
+
As a developer
|
|
5
|
+
I want to manipulate the Cucumber configuration after it has been created
|
|
6
|
+
|
|
7
|
+
Scenario: configuration modified to use HTML formatter
|
|
8
|
+
|
|
9
|
+
Given a standard Cucumber project directory structure
|
|
10
|
+
And a file named "features/support/env.rb" with:
|
|
11
|
+
"""
|
|
12
|
+
AfterConfiguration do |config|
|
|
13
|
+
config.options[:formats] << ['html', config.out_stream]
|
|
14
|
+
end
|
|
15
|
+
"""
|
|
16
|
+
When I run cucumber features
|
|
17
|
+
Then STDERR should be empty
|
|
18
|
+
And the output should contain
|
|
19
|
+
"""
|
|
20
|
+
html
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
Scenario: feature directories read from configuration
|
|
24
|
+
|
|
25
|
+
Given a standard Cucumber project directory structure
|
|
26
|
+
And a file named "features/support/env.rb" with:
|
|
27
|
+
"""
|
|
28
|
+
AfterConfiguration do |config|
|
|
29
|
+
config.out_stream << "AfterConfiguration hook read feature directories: #{config.feature_dirs}"
|
|
30
|
+
end
|
|
31
|
+
"""
|
|
32
|
+
When I run cucumber features
|
|
33
|
+
Then STDERR should be empty
|
|
34
|
+
And the output should contain
|
|
35
|
+
"""
|
|
36
|
+
AfterConfiguration hook read feature directories: features
|
|
37
|
+
"""
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Feature: Profiles
|
|
2
|
+
In order to save time and prevent carpal tunnel syndrome
|
|
3
|
+
Cucumber users can save and reuse commonly used cucumber flags in a 'cucumber.yml' file.
|
|
4
|
+
These named arguments are called profiles and the yml file should be in the root of your project.
|
|
5
|
+
Any cucumber argument is valid in a profile. To see all the available flags type 'cucumber --help'
|
|
6
|
+
For more information about profiles please see the wiki:
|
|
7
|
+
http://wiki.github.com/aslakhellesoy/cucumber/cucumberyml
|
|
8
|
+
|
|
9
|
+
Background: Basic App
|
|
10
|
+
Given a standard Cucumber project directory structure
|
|
11
|
+
And a file named "features/sample.feature" with:
|
|
12
|
+
"""
|
|
13
|
+
Feature: Sample
|
|
14
|
+
Scenario: this is a test
|
|
15
|
+
Given I am just testing stuff
|
|
16
|
+
"""
|
|
17
|
+
And a file named "features/support/env.rb"
|
|
18
|
+
And a file named "features/support/super_env.rb"
|
|
19
|
+
And the following profiles are defined:
|
|
20
|
+
"""
|
|
21
|
+
default: features/sample.feature --require features/support/env.rb -v
|
|
22
|
+
super: features/sample.feature --require features/support/super_env.rb -v
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
Scenario: Explicitly defining a profile to run
|
|
26
|
+
When I run cucumber features/sample.feature --profile super
|
|
27
|
+
Then the output should contain
|
|
28
|
+
"""
|
|
29
|
+
Using the super profile...
|
|
30
|
+
"""
|
|
31
|
+
And exactly these files should be loaded: features/support/super_env.rb
|
|
32
|
+
|
|
33
|
+
Scenario: Explicitly defining a profile defined in an ERB formatted file
|
|
34
|
+
Given the following profiles are defined:
|
|
35
|
+
"""
|
|
36
|
+
<% requires = "--require features/support/super_env.rb" %>
|
|
37
|
+
super: <%= "features/sample.feature #{requires} -v" %>
|
|
38
|
+
"""
|
|
39
|
+
When I run cucumber features/sample.feature --profile super
|
|
40
|
+
Then the output should contain
|
|
41
|
+
"""
|
|
42
|
+
Using the super profile...
|
|
43
|
+
"""
|
|
44
|
+
And exactly these files should be loaded: features/support/super_env.rb
|
|
45
|
+
|
|
46
|
+
Scenario: Defining multiple profiles to run
|
|
47
|
+
When I run cucumber features/sample.feature --profile default --profile super
|
|
48
|
+
Then the output should contain
|
|
49
|
+
"""
|
|
50
|
+
Using the default and super profiles...
|
|
51
|
+
"""
|
|
52
|
+
And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
|
|
53
|
+
|
|
54
|
+
Scenario: Arguments passed in but no profile specified
|
|
55
|
+
When I run cucumber -v
|
|
56
|
+
Then the default profile should be used
|
|
57
|
+
And exactly these files should be loaded: features/support/env.rb
|
|
58
|
+
|
|
59
|
+
Scenario: Trying to use a missing profile
|
|
60
|
+
When I run cucumber -p foo
|
|
61
|
+
Then STDERR should be
|
|
62
|
+
"""
|
|
63
|
+
Could not find profile: 'foo'
|
|
64
|
+
|
|
65
|
+
Defined profiles in cucumber.yml:
|
|
66
|
+
* default
|
|
67
|
+
* super
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
Scenario Outline: Disabling the default profile
|
|
72
|
+
When I run cucumber -v features/ <Flag>
|
|
73
|
+
Then the output should contain
|
|
74
|
+
"""
|
|
75
|
+
Disabling profiles...
|
|
76
|
+
"""
|
|
77
|
+
And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
|
|
78
|
+
|
|
79
|
+
Examples:
|
|
80
|
+
| Flag |
|
|
81
|
+
| -P |
|
|
82
|
+
| --no-profile |
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
Scenario: Overriding the profile's features to run
|
|
86
|
+
Given a file named "features/another.feature" with:
|
|
87
|
+
"""
|
|
88
|
+
Feature: Just this one should be ran
|
|
89
|
+
"""
|
|
90
|
+
When I run cucumber -p default features/another.feature
|
|
91
|
+
Then exactly these features should be ran: features/another.feature
|
|
92
|
+
|
|
93
|
+
Scenario: Overriding the profile's formatter
|
|
94
|
+
You will most likely want to define a formatter in your default formatter.
|
|
95
|
+
However, you often want to run your features with a different formatter
|
|
96
|
+
yet still use the other the other arguments in the profile. Cucumber will
|
|
97
|
+
allow you to do this by giving precedence to the formatter specified on the
|
|
98
|
+
command line and override the one in the profile.
|
|
99
|
+
|
|
100
|
+
Given the following profiles are defined:
|
|
101
|
+
"""
|
|
102
|
+
default: features/sample.feature --require features/support/env.rb -v --format profile
|
|
103
|
+
"""
|
|
104
|
+
When I run cucumber features --format pretty
|
|
105
|
+
And the output should contain
|
|
106
|
+
"""
|
|
107
|
+
Feature: Sample
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
Feature: Rake task
|
|
2
|
+
In order to ease the development process
|
|
3
|
+
As a developer and CI server administrator
|
|
4
|
+
Cucumber features should be executable via Rake
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/missing_step_definitions.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
Feature: Sample
|
|
11
|
+
|
|
12
|
+
Scenario: Wanted
|
|
13
|
+
Given I want to run this
|
|
14
|
+
|
|
15
|
+
Scenario: Unwanted
|
|
16
|
+
Given I don't want this ran
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Scenario: rake task with a defined profile
|
|
21
|
+
Given the following profile is defined:
|
|
22
|
+
"""
|
|
23
|
+
foo: --quiet --no-color features/missing_step_definitions.feature:3
|
|
24
|
+
"""
|
|
25
|
+
And a file named "Rakefile" with:
|
|
26
|
+
"""
|
|
27
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
28
|
+
require 'cucumber/rake/task'
|
|
29
|
+
|
|
30
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
31
|
+
t.profile = "foo"
|
|
32
|
+
end
|
|
33
|
+
"""
|
|
34
|
+
When I run rake features
|
|
35
|
+
Then it should pass
|
|
36
|
+
And the output should contain
|
|
37
|
+
"""
|
|
38
|
+
Feature: Sample
|
|
39
|
+
|
|
40
|
+
Scenario: Wanted
|
|
41
|
+
Given I want to run this
|
|
42
|
+
|
|
43
|
+
1 scenario (1 undefined)
|
|
44
|
+
1 step (1 undefined)
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: rake task with a defined profile and cucumber_opts
|
|
48
|
+
Given the following profile is defined:
|
|
49
|
+
"""
|
|
50
|
+
bar: ['features/missing_step_definitions.feature:3']
|
|
51
|
+
"""
|
|
52
|
+
And a file named "Rakefile" with:
|
|
53
|
+
"""
|
|
54
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
55
|
+
require 'cucumber/rake/task'
|
|
56
|
+
|
|
57
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
58
|
+
t.profile = "bar"
|
|
59
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
60
|
+
end
|
|
61
|
+
"""
|
|
62
|
+
When I run rake features
|
|
63
|
+
Then it should pass
|
|
64
|
+
And the output should contain
|
|
65
|
+
"""
|
|
66
|
+
Feature: Sample
|
|
67
|
+
|
|
68
|
+
Scenario: Wanted
|
|
69
|
+
Given I want to run this
|
|
70
|
+
|
|
71
|
+
1 scenario (1 undefined)
|
|
72
|
+
1 step (1 undefined)
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
Scenario: rake task with a defined profile and feature list
|
|
76
|
+
Given a file named "features/the_one_i_want_to_run.feature" with:
|
|
77
|
+
"""
|
|
78
|
+
Feature: Desired
|
|
79
|
+
|
|
80
|
+
Scenario: Something
|
|
81
|
+
Given this is missing
|
|
82
|
+
"""
|
|
83
|
+
Given the following profile is defined:
|
|
84
|
+
"""
|
|
85
|
+
baz: ['--quiet', '--no-color']
|
|
86
|
+
"""
|
|
87
|
+
And a file named "Rakefile" with:
|
|
88
|
+
"""
|
|
89
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
90
|
+
require 'cucumber/rake/task'
|
|
91
|
+
|
|
92
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
93
|
+
t.profile = "baz"
|
|
94
|
+
t.feature_list = ['features/the_one_i_want_to_run.feature']
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I run rake features
|
|
98
|
+
Then it should pass
|
|
99
|
+
And the output should contain
|
|
100
|
+
"""
|
|
101
|
+
Feature: Desired
|
|
102
|
+
|
|
103
|
+
Scenario: Something
|
|
104
|
+
Given this is missing
|
|
105
|
+
|
|
106
|
+
1 scenario (1 undefined)
|
|
107
|
+
1 step (1 undefined)
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
Scenario: deprecation warnings
|
|
111
|
+
Given a file named "Rakefile" with:
|
|
112
|
+
"""
|
|
113
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
114
|
+
require 'cucumber/rake/task'
|
|
115
|
+
|
|
116
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
117
|
+
t.feature_list = ['features/missing_step_definitions.feature']
|
|
118
|
+
end
|
|
119
|
+
"""
|
|
120
|
+
When I run rake features
|
|
121
|
+
Then it should pass
|
|
122
|
+
And STDERR should match
|
|
123
|
+
"""
|
|
124
|
+
Cucumber::Rake::Task#feature_list is deprecated and will be removed in 0.4.0. Please use profiles for complex settings: http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
Scenario: respect requires
|
|
128
|
+
Given a file named "features/support/env.rb"
|
|
129
|
+
And a file named "features/support/dont_require_me.rb"
|
|
130
|
+
And the following profile is defined:
|
|
131
|
+
"""
|
|
132
|
+
no_bomb: features/missing_step_definitions.feature:3 --require features/support/env.rb --verbose
|
|
133
|
+
"""
|
|
134
|
+
And a file named "Rakefile" with:
|
|
135
|
+
"""
|
|
136
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
137
|
+
require 'cucumber/rake/task'
|
|
138
|
+
|
|
139
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
140
|
+
t.profile = "no_bomb"
|
|
141
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
142
|
+
end
|
|
143
|
+
"""
|
|
144
|
+
|
|
145
|
+
When I run rake features
|
|
146
|
+
Then it should pass
|
|
147
|
+
And the output should not contain
|
|
148
|
+
"""
|
|
149
|
+
* features/support/dont_require_me.rb
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
Scenario: feature files with spaces
|
|
153
|
+
Given a file named "features/spaces are nasty.feature" with:
|
|
154
|
+
"""
|
|
155
|
+
Feature: The futures green
|
|
156
|
+
|
|
157
|
+
Scenario: Orange
|
|
158
|
+
Given this is missing
|
|
159
|
+
"""
|
|
160
|
+
And a file named "Rakefile" with:
|
|
161
|
+
"""
|
|
162
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
163
|
+
require 'cucumber/rake/task'
|
|
164
|
+
|
|
165
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
166
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
167
|
+
end
|
|
168
|
+
"""
|
|
169
|
+
When I run rake features
|
|
170
|
+
Then it should pass
|
|
171
|
+
And the output should contain
|
|
172
|
+
"""
|
|
173
|
+
Feature: The futures green
|
|
174
|
+
|
|
175
|
+
Scenario: Orange
|
|
176
|
+
Given this is missing
|
|
177
|
+
|
|
178
|
+
"""
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Feature: Cucumber command line
|
|
2
|
+
In order to find out what step definitions need to be implemented
|
|
3
|
+
Developers should always see what step definition is missing
|
|
4
|
+
|
|
5
|
+
@mri186
|
|
6
|
+
Scenario: Get info at arbitrary levels of nesting
|
|
7
|
+
When I run cucumber features/call_undefined_step_from_step_def.feature
|
|
8
|
+
Then it should pass with
|
|
9
|
+
"""
|
|
10
|
+
Feature: Calling undefined step
|
|
11
|
+
|
|
12
|
+
Scenario: Call directly # features/call_undefined_step_from_step_def.feature:3
|
|
13
|
+
Given a step definition that calls an undefined step # features/step_definitions/sample_steps.rb:19
|
|
14
|
+
Undefined step: "this does not exist" (Cucumber::Undefined)
|
|
15
|
+
./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
|
|
16
|
+
features/call_undefined_step_from_step_def.feature:4:in `Given a step definition that calls an undefined step'
|
|
17
|
+
|
|
18
|
+
Scenario: Call via another # features/call_undefined_step_from_step_def.feature:6
|
|
19
|
+
Given call step "a step definition that calls an undefined step" # features/step_definitions/sample_steps.rb:23
|
|
20
|
+
Undefined step: "this does not exist" (Cucumber::Undefined)
|
|
21
|
+
./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
|
|
22
|
+
features/call_undefined_step_from_step_def.feature:7:in `Given call step "a step definition that calls an undefined step"'
|
|
23
|
+
|
|
24
|
+
2 scenarios (2 undefined)
|
|
25
|
+
2 steps (2 undefined)
|
|
26
|
+
|
|
27
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
28
|
+
|
|
29
|
+
Given /^this does not exist$/ do
|
|
30
|
+
pending
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
"""
|
|
35
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Feature: Snippets
|
|
2
|
+
In order to help speed up writing step definitions
|
|
3
|
+
As a feature editor
|
|
4
|
+
I want snippet suggestions for undefined step definitions
|
|
5
|
+
|
|
6
|
+
Scenario: Snippet for undefined step with a pystring
|
|
7
|
+
When I run cucumber features/undefined_multiline_args.feature:3 -s
|
|
8
|
+
Then the output should contain
|
|
9
|
+
"""
|
|
10
|
+
Given /^a pystring$/ do |string|
|
|
11
|
+
pending
|
|
12
|
+
end
|
|
13
|
+
"""
|
|
14
|
+
Scenario: Snippet for undefined step with a step table
|
|
15
|
+
When I run cucumber features/undefined_multiline_args.feature:9 -s
|
|
16
|
+
Then the output should contain
|
|
17
|
+
"""
|
|
18
|
+
Given /^a table$/ do |table|
|
|
19
|
+
# table is a Cucumber::Ast::Table
|
|
20
|
+
pending
|
|
21
|
+
end
|
|
22
|
+
"""
|