mobiusloop 0.1.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.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.rspec +1 -0
- data/.ruby-gemset +1 -0
- data/.travis.yml +22 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +68 -0
- data/Gemfile +5 -0
- data/History.md +2280 -0
- data/LICENSE +22 -0
- data/README.md +373 -0
- data/Rakefile +22 -0
- data/bin/mobiusloop +8 -0
- data/cucumber.gemspec +47 -0
- data/cucumber.yml +20 -0
- data/examples/i18n/README.textile +3 -0
- data/examples/i18n/Rakefile +33 -0
- data/examples/i18n/ar/Rakefile +6 -0
- data/examples/i18n/ar/features/addition.feature +17 -0
- data/examples/i18n/ar/features/step_definitions/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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/bg/features/support/env.rb +5 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/ca/Rakefile +6 -0
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +21 -0
- data/examples/i18n/ca/features/suma.feature +17 -0
- data/examples/i18n/ca/lib/calculadora.rb +16 -0
- data/examples/i18n/cs/Rakefile +6 -0
- data/examples/i18n/cs/features/addition.feature +17 -0
- data/examples/i18n/cs/features/division.feature +11 -0
- data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/cs/lib/calculator.rb +14 -0
- data/examples/i18n/da/Rakefile +6 -0
- data/examples/i18n/da/features/sammenlaegning.feature +18 -0
- data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +24 -0
- data/examples/i18n/da/lib/lommeregner.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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/de/lib/calculator.rb +14 -0
- data/examples/i18n/el/Rakefile +6 -0
- data/examples/i18n/el/features/addition.feature +17 -0
- data/examples/i18n/el/features/division.feature +10 -0
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/el/lib/calculator.rb +14 -0
- data/examples/i18n/en-lol/Rakefile +4 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +7 -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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/en/lib/calculator.rb +14 -0
- data/examples/i18n/eo/Rakefile +6 -0
- data/examples/i18n/eo/features/adicio.feature +17 -0
- data/examples/i18n/eo/features/divido.feature +10 -0
- data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/eo/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_definitions/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_definitions/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 +8 -0
- data/examples/i18n/fr/features/addition.feature +18 -0
- data/examples/i18n/fr/features/addition2.feature +17 -0
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +32 -0
- data/examples/i18n/fr/features/support/env.rb +5 -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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/he/lib/calculator.rb +15 -0
- data/examples/i18n/hi/Rakefile +6 -0
- data/examples/i18n/hi/features/addition.feature +16 -0
- data/examples/i18n/hi/features/division.feature +10 -0
- data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/hi/lib/calculator.rb +15 -0
- data/examples/i18n/ht/Rakefile +6 -0
- data/examples/i18n/ht/features/adisyon.feature +17 -0
- data/examples/i18n/ht/features/divizyon.feature +10 -0
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +25 -0
- data/examples/i18n/ht/lib/kalkilatris.rb +14 -0
- data/examples/i18n/hu/Rakefile +6 -0
- data/examples/i18n/hu/features/osszeadas.feature +17 -0
- data/examples/i18n/hu/features/osztas.feature +10 -0
- data/examples/i18n/hu/features/step_definitions/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_definitions/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_definitions/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_definitions/calculator_steps.rb +19 -0
- data/examples/i18n/ja/features/support/env.rb +5 -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_definitions/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_definitions/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_definitions/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_definitions/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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/pl/features/support/env.rb +5 -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 +5 -0
- data/examples/i18n/pt/lib/calculadora.rb +10 -0
- data/examples/i18n/ro/Rakefile +6 -0
- data/examples/i18n/ro/features/adunare.feature +12 -0
- data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +21 -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_definitions/calculator_steps.rb +19 -0
- data/examples/i18n/ru/features/support/env.rb +5 -0
- data/examples/i18n/ru/features/support/world.rb +8 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -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_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/sk/lib/calculator.rb +14 -0
- data/examples/i18n/sr-Cyrl/Rakefile +6 -0
- data/examples/i18n/sr-Cyrl/features/sabiranje.feature +18 -0
- data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +20 -0
- data/examples/i18n/sr-Cyrl/features/support/env.rb +5 -0
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +12 -0
- data/examples/i18n/sr-Latn/Rakefile +6 -0
- data/examples/i18n/sr-Latn/features/sabiranje.feature +18 -0
- data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/sr-Latn/lib/calculator.rb +12 -0
- data/examples/i18n/sv/Rakefile +6 -0
- data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +24 -0
- data/examples/i18n/sv/features/summering.feature +18 -0
- data/examples/i18n/sv/lib/kalkulator.rb +11 -0
- data/examples/i18n/tr/Rakefile +6 -0
- data/examples/i18n/tr/features/bolme.feature +10 -0
- data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +24 -0
- data/examples/i18n/tr/features/toplama.feature +18 -0
- data/examples/i18n/tr/lib/hesap_makinesi.rb +15 -0
- data/examples/i18n/uk/Rakefile +6 -0
- data/examples/i18n/uk/features/addition.feature +11 -0
- data/examples/i18n/uk/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/uk/features/division.feature +16 -0
- data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +19 -0
- data/examples/i18n/uk/features/support/env.rb +5 -0
- data/examples/i18n/uk/features/support/world.rb +8 -0
- data/examples/i18n/uk/lib/calculator.rb +24 -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_definitions/calculator_steps.rb +19 -0
- data/examples/i18n/uz/features/support/env.rb +5 -0
- data/examples/i18n/uz/features/support/world.rb +8 -0
- data/examples/i18n/uz/lib/calculator.rb +24 -0
- data/examples/i18n/zh-CN/Rakefile +4 -0
- data/examples/i18n/zh-CN/features/addition.feature +18 -0
- data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +26 -0
- data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
- data/examples/i18n/zh-TW/Rakefile +4 -0
- data/examples/i18n/zh-TW/features/addition.feature +17 -0
- data/examples/i18n/zh-TW/features/division.feature +11 -0
- data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
- data/examples/mobiusloop/increase_readers.goal +13 -0
- data/examples/mobiusloop/scale_page_response.rb +20 -0
- data/examples/mobiusloop/total_articles_scale.rb +10 -0
- data/examples/mobiusloop/total_readers_scale.rb +10 -0
- data/examples/rspec_doubles/Rakefile +4 -0
- data/examples/rspec_doubles/features/mocking.feature +9 -0
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +19 -0
- data/examples/rspec_doubles/features/support/env.rb +12 -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 +10 -0
- data/examples/sinatra/views/add.erb +7 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/tcl/README.textile +11 -0
- data/examples/tcl/Rakefile +6 -0
- data/examples/tcl/features/fibonnacci.feature +17 -0
- data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
- data/examples/tcl/features/support/env.rb +6 -0
- data/examples/tcl/src/fib.tcl +3 -0
- data/examples/test_unit/Gemfile +4 -0
- data/examples/test_unit/Rakefile +6 -0
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +20 -0
- data/examples/test_unit/features/test_unit.feature +9 -0
- data/examples/watir/README.textile +16 -0
- data/examples/watir/Rakefile +12 -0
- data/examples/watir/cucumber.yml +1 -0
- data/examples/watir/features/search.feature +12 -0
- data/examples/watir/features/step_definitions/search_steps.rb +26 -0
- data/examples/watir/features/support/env.rb +35 -0
- data/examples/watir/features/support/screenshots.rb +47 -0
- data/features/docs/api/list_step_defs_as_json.feature +50 -0
- data/features/docs/api/listen_for_events.feature +58 -0
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +26 -0
- data/features/docs/cli/backtraces.feature +36 -0
- data/features/docs/cli/dry_run.feature +70 -0
- data/features/docs/cli/exclude_files.feature +18 -0
- data/features/docs/cli/execute_with_tag_filter.feature +117 -0
- data/features/docs/cli/fail_fast.feature +46 -0
- data/features/docs/cli/finding_steps.feature +28 -0
- data/features/docs/cli/randomize.feature +140 -0
- data/features/docs/cli/require.feature +27 -0
- data/features/docs/cli/retry_failing_tests.feature +32 -0
- data/features/docs/cli/run_scenarios_matching_name.feature +104 -0
- data/features/docs/cli/run_specific_scenarios.feature +77 -0
- data/features/docs/cli/showing_differences.feature +43 -0
- data/features/docs/cli/specifying_multiple_formatters.feature +65 -0
- data/features/docs/cli/strict_mode.feature +64 -0
- data/features/docs/defining_steps/nested_steps.feature +177 -0
- data/features/docs/defining_steps/nested_steps_i18n.feature +34 -0
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +54 -0
- data/features/docs/defining_steps/one_line_step_definitions.feature +65 -0
- data/features/docs/defining_steps/printing_messages.feature +148 -0
- data/features/docs/defining_steps/skip_scenario.feature +64 -0
- data/features/docs/defining_steps/snippets.feature +56 -0
- data/features/docs/defining_steps/table_diffing.feature +50 -0
- data/features/docs/exception_in_after_hook.feature +126 -0
- data/features/docs/exception_in_after_step_hook.feature +102 -0
- data/features/docs/exception_in_around_hook.feature +78 -0
- data/features/docs/exception_in_before_hook.feature +96 -0
- data/features/docs/extending_cucumber/custom_filter.feature +29 -0
- data/features/docs/extending_cucumber/custom_formatter.feature +130 -0
- data/features/docs/formatters/api_methods.feature +37 -0
- data/features/docs/formatters/debug_formatter.feature +47 -0
- data/features/docs/formatters/formatter_step_file_colon_line.feature +44 -0
- data/features/docs/formatters/html_formatter.feature +91 -0
- data/features/docs/formatters/json_formatter.feature +767 -0
- data/features/docs/formatters/junit_formatter.feature +454 -0
- data/features/docs/formatters/pretty_formatter.feature +73 -0
- data/features/docs/formatters/progress_formatter.feature +31 -0
- data/features/docs/formatters/rerun_formatter.feature +188 -0
- data/features/docs/formatters/usage_formatter.feature +98 -0
- data/features/docs/getting_started.feature +27 -0
- data/features/docs/gherkin/background.feature +548 -0
- data/features/docs/gherkin/doc_strings.feature +74 -0
- data/features/docs/gherkin/expand_option_for_outlines.feature +46 -0
- data/features/docs/gherkin/language_from_header.feature +32 -0
- data/features/docs/gherkin/language_help.feature +42 -0
- data/features/docs/gherkin/outlines.feature +156 -0
- data/features/docs/gherkin/unicode_table.feature +32 -0
- data/features/docs/gherkin/using_descriptions.feature +82 -0
- data/features/docs/gherkin/using_star_notation.feature +37 -0
- data/features/docs/iso-8859-1.feature +6 -0
- data/features/docs/post_configuration_hook.feature +49 -0
- data/features/docs/profiles.feature +120 -0
- data/features/docs/rake_task.feature +141 -0
- data/features/docs/raketask.feature +44 -0
- data/features/docs/work_in_progress.feature +154 -0
- data/features/docs/writing_support_code/after_hooks.feature +102 -0
- data/features/docs/writing_support_code/after_step_hooks.feature +53 -0
- data/features/docs/writing_support_code/around_hooks.feature +260 -0
- data/features/docs/writing_support_code/before_hook.feature +65 -0
- data/features/docs/writing_support_code/hook_order.feature +61 -0
- data/features/docs/writing_support_code/load_path.feature +17 -0
- data/features/docs/writing_support_code/state.feature +32 -0
- data/features/docs/writing_support_code/tagged_hooks.feature +95 -0
- data/features/docs/writing_support_code/transforms.feature +98 -0
- data/features/lib/step_definitions/aruba_steps.rb +26 -0
- data/features/lib/step_definitions/cucumber_steps.rb +78 -0
- data/features/lib/step_definitions/iso-8859-1_steps.rb +12 -0
- data/features/lib/step_definitions/json_steps.rb +7 -0
- data/features/lib/step_definitions/junit_steps.rb +13 -0
- data/features/lib/step_definitions/language_steps.rb +8 -0
- data/features/lib/step_definitions/profile_steps.rb +15 -0
- data/features/lib/step_definitions/retry_steps.rb +35 -0
- data/features/lib/step_definitions/ruby_steps.rb +3 -0
- data/features/lib/step_definitions/wire_steps.rb +58 -0
- data/features/lib/support/env.rb +21 -0
- data/features/lib/support/fake_wire_server.rb +80 -0
- data/features/lib/support/feature_factory.rb +67 -0
- data/features/lib/support/normalise_output.rb +50 -0
- data/gem_tasks/contributors.rake +15 -0
- data/gem_tasks/cov.rake +5 -0
- data/gem_tasks/cucumber.rake +25 -0
- data/gem_tasks/downloads.rb +7 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/examples.rake +11 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/rspec.rake +6 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/stats +16 -0
- data/gem_tasks/versions.txt +74 -0
- data/gherkin-languages.json +2972 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +135 -0
- data/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec2.rb +6 -0
- data/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/autotest/cucumber_rspec2.rb +6 -0
- data/lib/autotest/discover.rb +11 -0
- data/lib/cucumber.rb +37 -0
- data/lib/cucumber/ast.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +146 -0
- data/lib/cucumber/cli/main.rb +99 -0
- data/lib/cucumber/cli/options.rb +465 -0
- data/lib/cucumber/cli/profile_loader.rb +91 -0
- data/lib/cucumber/cli/rerun_file.rb +29 -0
- data/lib/cucumber/configuration.rb +268 -0
- data/lib/cucumber/constantize.rb +45 -0
- data/lib/cucumber/core_ext/instance_exec.rb +70 -0
- data/lib/cucumber/core_ext/string.rb +9 -0
- data/lib/cucumber/deprecate.rb +29 -0
- data/lib/cucumber/encoding.rb +5 -0
- data/lib/cucumber/errors.rb +51 -0
- data/lib/cucumber/events.rb +20 -0
- data/lib/cucumber/events/after_test_case.rb +25 -0
- data/lib/cucumber/events/after_test_step.rb +30 -0
- data/lib/cucumber/events/before_test_case.rb +18 -0
- data/lib/cucumber/events/before_test_step.rb +23 -0
- data/lib/cucumber/events/bus.rb +86 -0
- data/lib/cucumber/events/finished_testing.rb +9 -0
- data/lib/cucumber/events/step_match.rb +23 -0
- data/lib/cucumber/file_specs.rb +37 -0
- data/lib/cucumber/filters.rb +9 -0
- data/lib/cucumber/filters/activate_steps.rb +67 -0
- data/lib/cucumber/filters/apply_after_hooks.rb +9 -0
- data/lib/cucumber/filters/apply_after_step_hooks.rb +12 -0
- data/lib/cucumber/filters/apply_around_hooks.rb +12 -0
- data/lib/cucumber/filters/apply_before_hooks.rb +9 -0
- data/lib/cucumber/filters/gated_receiver.rb +25 -0
- data/lib/cucumber/filters/prepare_world.rb +45 -0
- data/lib/cucumber/filters/quit.rb +28 -0
- data/lib/cucumber/filters/randomizer.rb +45 -0
- data/lib/cucumber/filters/retry.rb +32 -0
- data/lib/cucumber/filters/tag_limits.rb +45 -0
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +31 -0
- data/lib/cucumber/filters/tag_limits/verifier.rb +59 -0
- data/lib/cucumber/formatter/ansicolor.rb +160 -0
- data/lib/cucumber/formatter/backtrace_filter.rb +41 -0
- data/lib/cucumber/formatter/console.rb +252 -0
- data/lib/cucumber/formatter/cucumber.css +286 -0
- data/lib/cucumber/formatter/cucumber.sass +247 -0
- data/lib/cucumber/formatter/debug.rb +35 -0
- data/lib/cucumber/formatter/duration.rb +13 -0
- data/lib/cucumber/formatter/duration_extractor.rb +28 -0
- data/lib/cucumber/formatter/event_bus_report.rb +38 -0
- data/lib/cucumber/formatter/fail_fast.rb +18 -0
- data/lib/cucumber/formatter/fanout.rb +27 -0
- data/lib/cucumber/formatter/hook_query_visitor.rb +40 -0
- data/lib/cucumber/formatter/html.rb +689 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +20 -0
- data/lib/cucumber/formatter/interceptor.rb +80 -0
- data/lib/cucumber/formatter/io.rb +34 -0
- data/lib/cucumber/formatter/jquery-min.js +154 -0
- data/lib/cucumber/formatter/json.rb +334 -0
- data/lib/cucumber/formatter/json_pretty.rb +10 -0
- data/lib/cucumber/formatter/junit.rb +238 -0
- data/lib/cucumber/formatter/legacy_api/adapter.rb +1016 -0
- data/lib/cucumber/formatter/legacy_api/ast.rb +389 -0
- data/lib/cucumber/formatter/legacy_api/results.rb +51 -0
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +31 -0
- data/lib/cucumber/formatter/pretty.rb +247 -0
- data/lib/cucumber/formatter/progress.rb +73 -0
- data/lib/cucumber/formatter/rerun.rb +35 -0
- data/lib/cucumber/formatter/stepdefs.rb +14 -0
- data/lib/cucumber/formatter/steps.rb +49 -0
- data/lib/cucumber/formatter/summary.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +53 -0
- data/lib/cucumber/formatter/usage.rb +136 -0
- data/lib/cucumber/gherkin/data_table_parser.rb +31 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +99 -0
- data/lib/cucumber/gherkin/formatter/escaping.rb +17 -0
- data/lib/cucumber/gherkin/i18n.rb +15 -0
- data/lib/cucumber/gherkin/steps_parser.rb +31 -0
- data/lib/cucumber/hooks.rb +99 -0
- data/lib/cucumber/load_path.rb +13 -0
- data/lib/cucumber/multiline_argument.rb +71 -0
- data/lib/cucumber/multiline_argument/data_table.rb +744 -0
- data/lib/cucumber/multiline_argument/doc_string.rb +9 -0
- data/lib/cucumber/platform.rb +27 -0
- data/lib/cucumber/project_initializer.rb +82 -0
- data/lib/cucumber/rake/task.rb +168 -0
- data/lib/cucumber/rb_support/rb_dsl.rb +119 -0
- data/lib/cucumber/rb_support/rb_hook.rb +19 -0
- data/lib/cucumber/rb_support/rb_language.rb +216 -0
- data/lib/cucumber/rb_support/rb_step_definition.rb +131 -0
- data/lib/cucumber/rb_support/rb_transform.rb +59 -0
- data/lib/cucumber/rb_support/rb_world.rb +149 -0
- data/lib/cucumber/rb_support/snippet.rb +170 -0
- data/lib/cucumber/rspec/disable_option_parser.rb +23 -0
- data/lib/cucumber/rspec/doubles.rb +19 -0
- data/lib/cucumber/running_test_case.rb +134 -0
- data/lib/cucumber/runtime.rb +266 -0
- data/lib/cucumber/runtime/after_hooks.rb +25 -0
- data/lib/cucumber/runtime/before_hooks.rb +27 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +66 -0
- data/lib/cucumber/runtime/step_hooks.rb +23 -0
- data/lib/cucumber/runtime/support_code.rb +151 -0
- data/lib/cucumber/runtime/user_interface.rb +85 -0
- data/lib/cucumber/step_argument.rb +25 -0
- data/lib/cucumber/step_definition_light.rb +20 -0
- data/lib/cucumber/step_definitions.rb +13 -0
- data/lib/cucumber/step_match.rb +141 -0
- data/lib/cucumber/step_match_search.rb +67 -0
- data/lib/cucumber/term/ansicolor.rb +110 -0
- data/lib/cucumber/unit.rb +11 -0
- data/lib/cucumber/version +1 -0
- data/lib/mobiusloop/measure.rb +19 -0
- data/lib/mobiusloop/mobius_steps.rb +36 -0
- data/lib/mobiusloop/objective.rb +10 -0
- data/lib/mobiusloop/outcome.rb +99 -0
- data/lib/mobiusloop/scale.rb +32 -0
- data/lib/simplecov_setup.rb +18 -0
- data/major_changes_to_cucumber.md +45 -0
- data/mobiusloop.gemspec +47 -0
- data/spec/cucumber/cli/configuration_spec.rb +435 -0
- data/spec/cucumber/cli/main_spec.rb +83 -0
- data/spec/cucumber/cli/options_spec.rb +410 -0
- data/spec/cucumber/cli/profile_loader_spec.rb +46 -0
- data/spec/cucumber/cli/rerun_spec.rb +85 -0
- data/spec/cucumber/configuration_spec.rb +147 -0
- data/spec/cucumber/constantize_spec.rb +19 -0
- data/spec/cucumber/core_ext/instance_exec_spec.rb +4 -0
- data/spec/cucumber/events/bus_spec.rb +94 -0
- data/spec/cucumber/file_specs_spec.rb +60 -0
- data/spec/cucumber/filters/activate_steps_spec.rb +149 -0
- data/spec/cucumber/filters/gated_receiver_spec.rb +47 -0
- data/spec/cucumber/filters/retry_spec.rb +79 -0
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +38 -0
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +57 -0
- data/spec/cucumber/filters/tag_limits_spec.rb +59 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +32 -0
- data/spec/cucumber/formatter/debug_spec.rb +64 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/event_bus_report_spec.rb +88 -0
- data/spec/cucumber/formatter/fail_fast_spec.rb +88 -0
- data/spec/cucumber/formatter/html_spec.rb +538 -0
- data/spec/cucumber/formatter/interceptor_spec.rb +136 -0
- data/spec/cucumber/formatter/json_spec.rb +841 -0
- data/spec/cucumber/formatter/junit_spec.rb +252 -0
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +2182 -0
- data/spec/cucumber/formatter/pretty_spec.rb +919 -0
- data/spec/cucumber/formatter/progress_spec.rb +169 -0
- data/spec/cucumber/formatter/rerun_spec.rb +91 -0
- data/spec/cucumber/formatter/spec_helper.rb +82 -0
- data/spec/cucumber/hooks_spec.rb +30 -0
- data/spec/cucumber/multiline_argument/data_table_spec.rb +603 -0
- data/spec/cucumber/project_initializer_spec.rb +87 -0
- data/spec/cucumber/rake/forked_spec.rb +53 -0
- data/spec/cucumber/rake/task_spec.rb +85 -0
- data/spec/cucumber/rb_support/rb_language_spec.rb +243 -0
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +199 -0
- data/spec/cucumber/rb_support/rb_transform_spec.rb +46 -0
- data/spec/cucumber/rb_support/rb_world_spec.rb +47 -0
- data/spec/cucumber/rb_support/snippet_spec.rb +137 -0
- data/spec/cucumber/running_test_case_spec.rb +139 -0
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +36 -0
- data/spec/cucumber/runtime/support_code_spec.rb +16 -0
- data/spec/cucumber/runtime_spec.rb +20 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_argument_spec.rb +18 -0
- data/spec/cucumber/step_match_search_spec.rb +122 -0
- data/spec/cucumber/step_match_spec.rb +85 -0
- data/spec/cucumber/world/pending_spec.rb +47 -0
- data/spec/cucumber_spec.rb +39 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/support/standard_step_actions.rb +18 -0
- metadata +1007 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Feature: Nested Steps in I18n
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given a scenario with a step that looks like this in japanese:
|
|
5
|
+
"""gherkin
|
|
6
|
+
前提 two turtles
|
|
7
|
+
"""
|
|
8
|
+
And a step definition that looks like this:
|
|
9
|
+
"""ruby
|
|
10
|
+
# -*- coding: utf-8 -*-
|
|
11
|
+
前提 /a turtle/ do
|
|
12
|
+
puts "turtle!"
|
|
13
|
+
end
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
Scenario: Use #steps to call several steps at once
|
|
17
|
+
Given a step definition that looks like this:
|
|
18
|
+
"""ruby
|
|
19
|
+
# -*- coding: utf-8 -*-
|
|
20
|
+
前提 /two turtles/ do
|
|
21
|
+
steps %{
|
|
22
|
+
前提 a turtle
|
|
23
|
+
かつ a turtle
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
"""
|
|
27
|
+
When I run the feature with the progress formatter
|
|
28
|
+
Then the output should contain:
|
|
29
|
+
"""
|
|
30
|
+
turtle!
|
|
31
|
+
|
|
32
|
+
turtle!
|
|
33
|
+
|
|
34
|
+
"""
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
Feature: Nested Steps with either table or doc string
|
|
2
|
+
|
|
3
|
+
Background:
|
|
4
|
+
Given a scenario with a step that looks like this:
|
|
5
|
+
"""gherkin
|
|
6
|
+
Given two turtles
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
Scenario: Use #step with table
|
|
10
|
+
Given a step definition that looks like this:
|
|
11
|
+
"""ruby
|
|
12
|
+
Given /turtles:/ do |table|
|
|
13
|
+
table.hashes.each do |row|
|
|
14
|
+
puts row[:name]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
"""
|
|
18
|
+
And a step definition that looks like this:
|
|
19
|
+
"""ruby
|
|
20
|
+
Given /two turtles/ do
|
|
21
|
+
step %{turtles:}, table(%{
|
|
22
|
+
| name |
|
|
23
|
+
| Sturm |
|
|
24
|
+
| Liouville |
|
|
25
|
+
})
|
|
26
|
+
end
|
|
27
|
+
"""
|
|
28
|
+
When I run the feature with the progress formatter
|
|
29
|
+
Then the output should contain:
|
|
30
|
+
"""
|
|
31
|
+
Sturm
|
|
32
|
+
|
|
33
|
+
Liouville
|
|
34
|
+
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
Scenario: Use #step with Doc String
|
|
38
|
+
Given a step definition that looks like this:
|
|
39
|
+
"""ruby
|
|
40
|
+
Given /two turtles/ do
|
|
41
|
+
step %{turtles:}, "Sturm and Lioville"
|
|
42
|
+
end
|
|
43
|
+
"""
|
|
44
|
+
And a step definition that looks like this:
|
|
45
|
+
"""ruby
|
|
46
|
+
Given /turtles:/ do |text|
|
|
47
|
+
puts "#{text}:#{text.class}"
|
|
48
|
+
end
|
|
49
|
+
"""
|
|
50
|
+
When I run the feature with the progress formatter
|
|
51
|
+
Then the output should contain:
|
|
52
|
+
"""
|
|
53
|
+
Sturm and Lioville:String
|
|
54
|
+
"""
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Feature: One line step definitions
|
|
2
|
+
|
|
3
|
+
Everybody knows you can do step definitions in Cucumber
|
|
4
|
+
but did you know you can do this?
|
|
5
|
+
|
|
6
|
+
Scenario: Call a method in World directly from a step def
|
|
7
|
+
Given a file named "features/step_definitions/steps.rb" with:
|
|
8
|
+
"""
|
|
9
|
+
module Driver
|
|
10
|
+
def do_action
|
|
11
|
+
@done = true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def assert_done
|
|
15
|
+
expect(@done).to be true
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
World(Driver)
|
|
19
|
+
|
|
20
|
+
When /I do the action/, :do_action
|
|
21
|
+
Then /The action should be done/, :assert_done
|
|
22
|
+
"""
|
|
23
|
+
And a file named "features/action.feature" with:
|
|
24
|
+
"""
|
|
25
|
+
Feature:
|
|
26
|
+
Scenario:
|
|
27
|
+
When I do the action
|
|
28
|
+
Then the action should be done
|
|
29
|
+
"""
|
|
30
|
+
When I run `cucumber`
|
|
31
|
+
Then it should pass
|
|
32
|
+
|
|
33
|
+
Scenario: Call a method on an actor in the World directly from a step def
|
|
34
|
+
Given a file named "features/step_definitions/steps.rb" with:
|
|
35
|
+
"""
|
|
36
|
+
class Thing
|
|
37
|
+
def do_action
|
|
38
|
+
@done = true
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def assert_done
|
|
42
|
+
expect(@done).to be true
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
module Driver
|
|
47
|
+
def thing
|
|
48
|
+
@thing ||= Thing.new
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
World(Driver)
|
|
52
|
+
|
|
53
|
+
When /I do the action to the thing/, :do_action, :on => lambda { thing }
|
|
54
|
+
Then /The thing should be done/, :assert_done, :on => lambda { thing }
|
|
55
|
+
"""
|
|
56
|
+
And a file named "features/action.feature" with:
|
|
57
|
+
"""
|
|
58
|
+
Feature:
|
|
59
|
+
Scenario:
|
|
60
|
+
When I do the action to the thing
|
|
61
|
+
Then the thing should be done
|
|
62
|
+
"""
|
|
63
|
+
When I run `cucumber`
|
|
64
|
+
Then it should pass
|
|
65
|
+
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
Feature: Pretty formatter - Printing messages
|
|
2
|
+
|
|
3
|
+
When you want to print to Cucumber's output, just call `puts` from
|
|
4
|
+
a step definition. Cucumber will grab the output and print it via
|
|
5
|
+
the formatter that you're using.
|
|
6
|
+
|
|
7
|
+
Your message will be printed out after the step has run.
|
|
8
|
+
|
|
9
|
+
Background:
|
|
10
|
+
Given the standard step definitions
|
|
11
|
+
And a file named "features/step_definitions/puts_steps.rb" with:
|
|
12
|
+
"""
|
|
13
|
+
Given /^I use puts with text "(.*)"$/ do |ann|
|
|
14
|
+
puts(ann)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Given /^I use multiple putss$/ do
|
|
18
|
+
puts("Multiple")
|
|
19
|
+
puts("Announce","Me")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Given /^I use message (.+) in line (.+) (?:with result (.+))$/ do |ann, line, result|
|
|
23
|
+
puts("Last message") if line == "3"
|
|
24
|
+
puts("Line: #{line}: #{ann}")
|
|
25
|
+
fail if result =~ /fail/i
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Given /^I use puts and step fails$/ do
|
|
29
|
+
puts("Announce with fail")
|
|
30
|
+
fail
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Given /^I puts the world$/ do
|
|
34
|
+
puts(self)
|
|
35
|
+
end
|
|
36
|
+
"""
|
|
37
|
+
And a file named "features/f.feature" with:
|
|
38
|
+
"""
|
|
39
|
+
Feature:
|
|
40
|
+
|
|
41
|
+
Scenario:
|
|
42
|
+
Given I use puts with text "Ann"
|
|
43
|
+
And this step passes
|
|
44
|
+
|
|
45
|
+
Scenario:
|
|
46
|
+
Given I use multiple putss
|
|
47
|
+
And this step passes
|
|
48
|
+
|
|
49
|
+
Scenario Outline:
|
|
50
|
+
Given I use message <ann> in line <line>
|
|
51
|
+
|
|
52
|
+
Examples:
|
|
53
|
+
| line | ann |
|
|
54
|
+
| 1 | anno1 |
|
|
55
|
+
| 2 | anno2 |
|
|
56
|
+
| 3 | anno3 |
|
|
57
|
+
|
|
58
|
+
Scenario:
|
|
59
|
+
Given I use puts and step fails
|
|
60
|
+
And this step passes
|
|
61
|
+
|
|
62
|
+
Scenario Outline:
|
|
63
|
+
Given I use message <ann> in line <line> with result <result>
|
|
64
|
+
|
|
65
|
+
Examples:
|
|
66
|
+
| line | ann | result |
|
|
67
|
+
| 1 | anno1 | fail |
|
|
68
|
+
| 2 | anno2 | pass |
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
And a file named "features/puts_world.feature" with:
|
|
72
|
+
"""
|
|
73
|
+
Feature: puts_world
|
|
74
|
+
Scenario: puts_world
|
|
75
|
+
Given I puts the world
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
# Don't know why, but we need to spawn this for JRuby otherwise it gives wierd errors
|
|
79
|
+
@spawn
|
|
80
|
+
Scenario: Delayed messages feature
|
|
81
|
+
When I run `cucumber --quiet --format pretty features/f.feature`
|
|
82
|
+
Then the stderr should not contain anything
|
|
83
|
+
And the output should contain:
|
|
84
|
+
"""
|
|
85
|
+
Feature:
|
|
86
|
+
|
|
87
|
+
Scenario:
|
|
88
|
+
Given I use puts with text "Ann"
|
|
89
|
+
Ann
|
|
90
|
+
And this step passes
|
|
91
|
+
|
|
92
|
+
Scenario:
|
|
93
|
+
Given I use multiple putss
|
|
94
|
+
Multiple
|
|
95
|
+
Announce
|
|
96
|
+
Me
|
|
97
|
+
And this step passes
|
|
98
|
+
|
|
99
|
+
Scenario Outline:
|
|
100
|
+
Given I use message <ann> in line <line>
|
|
101
|
+
|
|
102
|
+
Examples:
|
|
103
|
+
| line | ann |
|
|
104
|
+
| 1 | anno1 |
|
|
105
|
+
| 2 | anno2 |
|
|
106
|
+
| 3 | anno3 |
|
|
107
|
+
|
|
108
|
+
Scenario:
|
|
109
|
+
Given I use puts and step fails
|
|
110
|
+
Announce with fail
|
|
111
|
+
(RuntimeError)
|
|
112
|
+
./features/step_definitions/puts_steps.rb:18:in `/^I use puts and step fails$/'
|
|
113
|
+
features/f.feature:21:in `Given I use puts and step fails'
|
|
114
|
+
And this step passes
|
|
115
|
+
|
|
116
|
+
Scenario Outline:
|
|
117
|
+
Given I use message <ann> in line <line> with result <result>
|
|
118
|
+
|
|
119
|
+
Examples:
|
|
120
|
+
| line | ann | result |
|
|
121
|
+
| 1 | anno1 | fail | Line: 1: anno1
|
|
122
|
+
(RuntimeError)
|
|
123
|
+
./features/step_definitions/puts_steps.rb:13:in `/^I use message (.+) in line (.+) (?:with result (.+))$/'
|
|
124
|
+
features/f.feature:29:in `Given I use message anno1 in line 1 with result fail'
|
|
125
|
+
features/f.feature:25:in `Given I use message <ann> in line <line> with result <result>'
|
|
126
|
+
| 2 | anno2 | pass | Line: 2: anno2
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
Scenario: Non-delayed messages feature (progress formatter)
|
|
130
|
+
When I run `cucumber --format progress features/f.feature`
|
|
131
|
+
Then the output should contain:
|
|
132
|
+
"""
|
|
133
|
+
Ann
|
|
134
|
+
..
|
|
135
|
+
Multiple
|
|
136
|
+
|
|
137
|
+
Announce
|
|
138
|
+
|
|
139
|
+
Me
|
|
140
|
+
..UUU
|
|
141
|
+
Announce with fail
|
|
142
|
+
F-
|
|
143
|
+
Line: 1: anno1
|
|
144
|
+
F
|
|
145
|
+
Line: 2: anno2
|
|
146
|
+
.
|
|
147
|
+
"""
|
|
148
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Feature: Skip Scenario
|
|
2
|
+
|
|
3
|
+
Scenario: With a passing step
|
|
4
|
+
Given a file named "features/test.feature" with:
|
|
5
|
+
"""
|
|
6
|
+
Feature: test
|
|
7
|
+
Scenario: test
|
|
8
|
+
Given this step says to skip
|
|
9
|
+
And this step passes
|
|
10
|
+
"""
|
|
11
|
+
And the standard step definitions
|
|
12
|
+
And a file named "features/step_definitions/skippy.rb" with:
|
|
13
|
+
"""
|
|
14
|
+
Given /skip/ do
|
|
15
|
+
skip_this_scenario
|
|
16
|
+
end
|
|
17
|
+
"""
|
|
18
|
+
When I run `cucumber -q`
|
|
19
|
+
Then it should pass with exactly:
|
|
20
|
+
"""
|
|
21
|
+
Feature: test
|
|
22
|
+
|
|
23
|
+
Scenario: test
|
|
24
|
+
Given this step says to skip
|
|
25
|
+
And this step passes
|
|
26
|
+
|
|
27
|
+
1 scenario (1 skipped)
|
|
28
|
+
2 steps (2 skipped)
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
@spawn
|
|
33
|
+
Scenario: Use (deprecated) legacy API
|
|
34
|
+
Given a file named "features/test.feature" with:
|
|
35
|
+
"""
|
|
36
|
+
Feature: test
|
|
37
|
+
Scenario: test
|
|
38
|
+
Given this step passes
|
|
39
|
+
And this step passes
|
|
40
|
+
"""
|
|
41
|
+
And the standard step definitions
|
|
42
|
+
And a file named "features/support/hook.rb" with:
|
|
43
|
+
"""
|
|
44
|
+
Before do |scenario|
|
|
45
|
+
scenario.skip_invoke!
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
When I run `cucumber -q`
|
|
49
|
+
Then it should pass with:
|
|
50
|
+
"""
|
|
51
|
+
Feature: test
|
|
52
|
+
|
|
53
|
+
Scenario: test
|
|
54
|
+
Given this step passes
|
|
55
|
+
And this step passes
|
|
56
|
+
|
|
57
|
+
1 scenario (1 skipped)
|
|
58
|
+
2 steps (2 skipped)
|
|
59
|
+
|
|
60
|
+
"""
|
|
61
|
+
And the stderr should contain:
|
|
62
|
+
"""
|
|
63
|
+
deprecated
|
|
64
|
+
"""
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Feature: Snippets
|
|
2
|
+
|
|
3
|
+
Cucumber helpfully prints out any undefined step definitions as a code
|
|
4
|
+
snippet suggestion, which you can then paste into a step definitions
|
|
5
|
+
file of your choosing.
|
|
6
|
+
|
|
7
|
+
Scenario: Snippet for undefined step with a pystring
|
|
8
|
+
Given a file named "features/undefined_steps.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
Feature:
|
|
11
|
+
Scenario: pystring
|
|
12
|
+
Given a pystring
|
|
13
|
+
\"\"\"
|
|
14
|
+
example with <html> entities
|
|
15
|
+
\"\"\"
|
|
16
|
+
When a simple when step
|
|
17
|
+
And another when step
|
|
18
|
+
Then a simple then step
|
|
19
|
+
"""
|
|
20
|
+
When I run `cucumber features/undefined_steps.feature -s`
|
|
21
|
+
Then the output should contain:
|
|
22
|
+
"""
|
|
23
|
+
Given(/^a pystring$/) do |string|
|
|
24
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
When(/^a simple when step$/) do
|
|
28
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
When(/^another when step$/) do
|
|
32
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
Then(/^a simple then step$/) do
|
|
36
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
37
|
+
end
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
Scenario: Snippet for undefined step with a step table
|
|
41
|
+
Given a file named "features/undefined_steps.feature" with:
|
|
42
|
+
"""
|
|
43
|
+
Feature:
|
|
44
|
+
Scenario: table
|
|
45
|
+
Given a table
|
|
46
|
+
| table |
|
|
47
|
+
|example|
|
|
48
|
+
"""
|
|
49
|
+
When I run `cucumber features/undefined_steps.feature -s`
|
|
50
|
+
Then the output should contain:
|
|
51
|
+
"""
|
|
52
|
+
Given(/^a table$/) do |table|
|
|
53
|
+
# table is a Cucumber::MultilineArgument::DataTable
|
|
54
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
55
|
+
end
|
|
56
|
+
"""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Feature: Table diffing
|
|
2
|
+
|
|
3
|
+
To allow you to more easily compare data in tables, you are able
|
|
4
|
+
to easily diff a table with expected data and see the diff in your
|
|
5
|
+
output.
|
|
6
|
+
|
|
7
|
+
Scenario: Extra row
|
|
8
|
+
Given a file named "features/tables.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
Feature: Tables
|
|
11
|
+
Scenario: Extra row
|
|
12
|
+
Then the table should be:
|
|
13
|
+
| x | y |
|
|
14
|
+
| a | b |
|
|
15
|
+
"""
|
|
16
|
+
And a file named "features/step_definitions/steps.rb" with:
|
|
17
|
+
"""
|
|
18
|
+
Then /the table should be:/ do |expected| x=1
|
|
19
|
+
expected.diff!(table(%{
|
|
20
|
+
| x | y |
|
|
21
|
+
| a | c |
|
|
22
|
+
}))
|
|
23
|
+
end
|
|
24
|
+
"""
|
|
25
|
+
When I run `cucumber features/tables.feature`
|
|
26
|
+
Then it should fail with exactly:
|
|
27
|
+
"""
|
|
28
|
+
Feature: Tables
|
|
29
|
+
|
|
30
|
+
Scenario: Extra row # features/tables.feature:2
|
|
31
|
+
Then the table should be: # features/step_definitions/steps.rb:1
|
|
32
|
+
| x | y |
|
|
33
|
+
| a | b |
|
|
34
|
+
Tables were not identical:
|
|
35
|
+
|
|
36
|
+
| x | y |
|
|
37
|
+
| (-) a | (-) b |
|
|
38
|
+
| (+) a | (+) c |
|
|
39
|
+
(Cucumber::MultilineArgument::DataTable::Different)
|
|
40
|
+
./features/step_definitions/steps.rb:2:in `/the table should be:/'
|
|
41
|
+
features/tables.feature:3:in `Then the table should be:'
|
|
42
|
+
|
|
43
|
+
Failing Scenarios:
|
|
44
|
+
cucumber features/tables.feature:2 # Scenario: Extra row
|
|
45
|
+
|
|
46
|
+
1 scenario (1 failed)
|
|
47
|
+
1 step (1 failed)
|
|
48
|
+
0m0.012s
|
|
49
|
+
|
|
50
|
+
"""
|