cucumber 2.99.0 → 3.0.0
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 +4 -4
- data/.cucumberproignore +6 -0
- data/.gitattributes +32 -0
- data/.github/ISSUE_TEMPLATE.md +1 -1
- data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +991 -0
- data/.travis.yml +56 -10
- data/{History.md → CHANGELOG.md} +166 -32
- data/CONTRIBUTING.md +21 -1
- data/Gemfile +18 -5
- data/README.md +13 -4
- data/Rakefile +12 -2
- data/appveyor.yml +27 -0
- data/bin/cucumber +2 -1
- data/cucumber.gemspec +15 -10
- data/cucumber.yml +10 -11
- data/examples/i18n/Rakefile +1 -1
- data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +8 -3
- data/examples/i18n/ar/lib/calculator.rb +2 -2
- data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +6 -6
- data/examples/i18n/bg/features/support/env.rb +6 -1
- data/examples/i18n/bg/lib/calculator.rb +2 -1
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/ca/lib/calculadora.rb +2 -2
- data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/cs/lib/calculator.rb +3 -3
- data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +10 -5
- data/examples/i18n/da/lib/lommeregner.rb +2 -2
- data/examples/i18n/de/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/de/lib/calculator.rb +2 -2
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/el/lib/calculator.rb +2 -2
- data/examples/i18n/en/features/step_definitions/calculator_steps.rb +9 -4
- data/examples/i18n/en/lib/calculator.rb +2 -2
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +4 -4
- data/examples/i18n/en-lol/features/support/env.rb +6 -2
- data/examples/i18n/en-lol/lib/basket.rb +2 -2
- data/examples/i18n/en-lol/lib/belly.rb +2 -2
- data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +9 -4
- data/examples/i18n/eo/lib/calculator.rb +2 -2
- data/examples/i18n/es/features/step_definitions/calculador_steps.rb +10 -5
- data/examples/i18n/es/lib/calculador.rb +2 -2
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +10 -5
- data/examples/i18n/et/lib/kalkulaator.rb +3 -3
- data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +9 -4
- data/examples/i18n/fi/lib/laskin.rb +1 -1
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +8 -8
- data/examples/i18n/fr/features/support/env.rb +7 -2
- data/examples/i18n/fr/lib/calculatrice.rb +2 -2
- data/examples/i18n/he/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/he/lib/calculator.rb +1 -1
- data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +9 -4
- data/examples/i18n/hi/lib/calculator.rb +1 -1
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +9 -5
- data/examples/i18n/ht/lib/kalkilatris.rb +2 -2
- data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/hu/lib/calculator.rb +1 -1
- data/examples/i18n/id/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/id/lib/calculator.rb +2 -2
- data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +10 -5
- data/examples/i18n/it/lib/calcolatrice.rb +3 -3
- data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +3 -3
- data/examples/i18n/ja/features/support/env.rb +7 -2
- data/examples/i18n/ja/lib/calculator.rb +2 -2
- data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/ko/lib/calculator.rb +2 -2
- data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/lt/lib/calculator.rb +2 -2
- data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/lv/lib/calculator.rb +2 -2
- data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +3 -3
- data/examples/i18n/no/features/support/env.rb +7 -2
- data/examples/i18n/no/lib/kalkulator.rb +2 -2
- data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/pl/features/support/env.rb +6 -1
- data/examples/i18n/pl/lib/calculator.rb +2 -2
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +3 -3
- data/examples/i18n/pt/features/support/env.rb +7 -2
- data/examples/i18n/pt/lib/calculadora.rb +1 -1
- data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +11 -6
- data/examples/i18n/ro/lib/calculator.rb +1 -1
- data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +5 -5
- data/examples/i18n/ru/features/support/env.rb +6 -1
- data/examples/i18n/ru/lib/calculator.rb +2 -1
- data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/sk/lib/calculator.rb +2 -2
- data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +3 -3
- data/examples/i18n/sr-Cyrl/features/support/env.rb +7 -2
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +2 -2
- data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/sr-Latn/lib/calculator.rb +2 -2
- data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +9 -4
- data/examples/i18n/sv/lib/kalkulator.rb +2 -2
- data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +10 -5
- data/examples/i18n/tr/lib/hesap_makinesi.rb +2 -2
- data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/uk/features/support/env.rb +6 -1
- data/examples/i18n/uk/lib/calculator.rb +2 -1
- data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/uz/features/support/env.rb +6 -1
- data/examples/i18n/uz/lib/calculator.rb +2 -1
- data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +11 -6
- data/examples/i18n/zh-CN/lib/calculator.rb +2 -2
- data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +10 -5
- data/examples/i18n/zh-TW/lib/calculator.rb +2 -2
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +3 -3
- data/examples/sinatra/features/step_definitions/add_steps.rb +4 -4
- data/examples/sinatra/features/support/env.rb +6 -1
- data/examples/tcl/features/step_definitions/fib_steps.rb +2 -2
- data/examples/tcl/features/support/env.rb +2 -1
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +4 -4
- data/examples/watir/features/step_definitions/search_steps.rb +6 -5
- data/examples/watir/features/support/env.rb +5 -1
- data/examples/watir/features/support/screenshots.rb +5 -5
- data/features/docs/api/list_step_defs_as_json.feature +21 -7
- data/features/docs/api/listen_for_events.feature +9 -8
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +1 -0
- data/features/docs/cli/dry_run.feature +3 -0
- data/features/docs/cli/execute_with_tag_filter.feature +8 -6
- data/features/docs/cli/fail_fast.feature +2 -0
- data/features/docs/cli/help.feature +8 -0
- data/features/docs/{gherkin/language_help.feature → cli/i18n.feature} +6 -6
- data/features/docs/cli/randomize.feature +2 -2
- data/features/docs/cli/retry_failing_tests.feature +75 -15
- data/features/docs/cli/run_scenarios_matching_name.feature +1 -0
- data/features/docs/cli/specifying_multiple_formatters.feature +3 -0
- data/features/docs/cli/strict_mode.feature +6 -0
- data/features/docs/defining_steps/ambiguous_steps.feature +89 -0
- data/features/docs/defining_steps/nested_steps.feature +5 -1
- data/features/docs/defining_steps/nested_steps_i18n.feature +3 -0
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +2 -0
- data/features/docs/defining_steps/printing_messages.feature +1 -2
- data/features/docs/defining_steps/skip_scenario.feature +1 -34
- data/features/docs/defining_steps/snippets.feature +18 -18
- data/features/docs/events/gherkin_source_read_event.feature +43 -0
- data/features/docs/events/step_activated_event.feature +36 -0
- data/features/docs/events/step_definition_registered_event.feature +29 -0
- data/features/docs/events/test_case_finished_event.feature +35 -0
- data/features/docs/events/test_case_started_event.feature +54 -0
- data/features/docs/events/test_run_finished_event.feature +40 -0
- data/features/docs/events/test_run_started_event.feature +41 -0
- data/features/docs/events/test_step_finished_event.feature +47 -0
- data/features/docs/events/test_step_started_event.feature +43 -0
- data/features/docs/exception_in_after_hook.feature +3 -2
- data/features/docs/exception_in_after_step_hook.feature +2 -0
- data/features/docs/exception_in_around_hook.feature +2 -0
- data/features/docs/exception_in_before_hook.feature +3 -1
- data/features/docs/extending_cucumber/custom_formatter.feature +12 -48
- data/features/docs/formatters/json_formatter.feature +4 -4
- data/features/docs/formatters/junit_formatter.feature +7 -6
- data/features/docs/formatters/pretty_formatter.feature +1 -0
- data/features/docs/formatters/progress_formatter.feature +1 -0
- data/features/docs/formatters/rerun_formatter.feature +2 -0
- data/features/docs/formatters/summary_formatter.feature +35 -0
- data/features/docs/formatters/usage_formatter.feature +3 -0
- data/features/docs/getting_started.feature +2 -1
- data/features/docs/gherkin/background.feature +5 -5
- data/features/docs/gherkin/doc_strings.feature +2 -0
- data/features/docs/gherkin/expand_option_for_outlines.feature +1 -0
- data/features/docs/gherkin/outlines.feature +6 -4
- data/features/docs/gherkin/unicode_table.feature +2 -1
- data/features/docs/gherkin/using_descriptions.feature +1 -0
- data/features/docs/gherkin/using_star_notation.feature +1 -1
- data/features/docs/post_configuration_hook.feature +1 -17
- data/features/docs/rake_task.feature +5 -0
- data/features/docs/raketask.feature +3 -1
- data/features/docs/work_in_progress.feature +5 -2
- data/features/docs/writing_support_code/after_step_hooks.feature +3 -1
- data/features/docs/writing_support_code/around_hooks.feature +6 -0
- data/features/docs/writing_support_code/before_hook.feature +1 -0
- data/features/docs/writing_support_code/hook_order.feature +3 -1
- data/features/docs/writing_support_code/parameter_types.feature +53 -0
- data/features/docs/writing_support_code/tagged_hooks.feature +1 -1
- data/features/docs/writing_support_code/world.feature +129 -0
- data/features/lib/step_definitions/aruba_steps.rb +5 -10
- data/features/lib/step_definitions/cli_steps.rb +4 -0
- data/features/lib/step_definitions/cucumber_steps.rb +9 -12
- data/features/lib/step_definitions/iso-8859-1_steps.rb +9 -5
- data/features/lib/step_definitions/json_steps.rb +2 -1
- data/features/lib/step_definitions/junit_steps.rb +2 -1
- data/features/lib/step_definitions/language_steps.rb +3 -2
- data/features/lib/step_definitions/profile_steps.rb +7 -6
- data/features/lib/step_definitions/retry_steps.rb +33 -13
- data/features/lib/step_definitions/ruby_steps.rb +2 -1
- data/features/lib/support/env.rb +3 -2
- data/features/lib/support/fake_wire_server.rb +17 -3
- data/features/lib/support/feature_factory.rb +2 -1
- data/features/lib/support/normalise_output.rb +14 -12
- data/features/lib/support/parameter_types.rb +5 -0
- data/gem_tasks/contributors.rake +10 -6
- data/gem_tasks/cov.rake +1 -0
- data/gem_tasks/downloads.rb +1 -0
- data/gem_tasks/environment.rake +2 -5
- data/gem_tasks/examples.rake +3 -2
- data/gem_tasks/fix_cr_lf.rake +19 -7
- data/gem_tasks/flog.rake +4 -3
- data/gem_tasks/rspec.rake +2 -1
- data/gem_tasks/sass.rake +2 -1
- data/lib/autotest/cucumber.rb +1 -0
- data/lib/autotest/cucumber_mixin.rb +17 -16
- data/lib/autotest/cucumber_rails.rb +1 -0
- data/lib/autotest/cucumber_rails_rspec.rb +1 -0
- data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
- data/lib/autotest/cucumber_rspec.rb +1 -0
- data/lib/autotest/cucumber_rspec2.rb +1 -0
- data/lib/autotest/discover.rb +3 -2
- data/lib/cucumber/cli/configuration.rb +12 -21
- data/lib/cucumber/cli/main.rb +8 -7
- data/lib/cucumber/cli/options.rb +341 -217
- data/lib/cucumber/cli/profile_loader.rb +26 -21
- data/lib/cucumber/cli/rerun_file.rb +1 -0
- data/lib/cucumber/configuration.rb +54 -37
- data/lib/cucumber/constantize.rb +2 -1
- data/lib/cucumber/core_ext/string.rb +2 -1
- data/lib/cucumber/deprecate.rb +4 -3
- data/lib/cucumber/encoding.rb +1 -0
- data/lib/cucumber/errors.rb +3 -1
- data/lib/cucumber/events/gherkin_source_read.rb +17 -0
- data/lib/cucumber/events/{step_match.rb → step_activated.rb} +5 -2
- data/lib/cucumber/events/step_definition_registered.rb +24 -0
- data/lib/cucumber/events/test_case_finished.rb +18 -0
- data/lib/cucumber/events/test_case_started.rb +15 -0
- data/lib/cucumber/events/test_run_finished.rb +12 -0
- data/lib/cucumber/events/test_run_started.rb +16 -0
- data/lib/cucumber/events/test_step_finished.rb +20 -0
- data/lib/cucumber/events/test_step_started.rb +17 -0
- data/lib/cucumber/events.rb +23 -3
- data/lib/cucumber/file_specs.rb +1 -0
- data/lib/cucumber/filters/activate_steps.rb +8 -3
- data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
- data/lib/cucumber/filters/broadcast_test_run_started_event.rb +27 -0
- data/lib/cucumber/filters/gated_receiver.rb +1 -0
- data/lib/cucumber/filters/prepare_world.rb +1 -0
- data/lib/cucumber/filters/quit.rb +1 -0
- data/lib/cucumber/filters/randomizer.rb +1 -0
- data/lib/cucumber/filters/retry.rb +4 -4
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -0
- data/lib/cucumber/filters/tag_limits/verifier.rb +2 -1
- data/lib/cucumber/filters/tag_limits.rb +4 -3
- data/lib/cucumber/filters.rb +3 -0
- data/lib/cucumber/formatter/ansicolor.rb +9 -11
- data/lib/cucumber/formatter/backtrace_filter.rb +21 -8
- data/lib/cucumber/formatter/console.rb +72 -66
- data/lib/cucumber/formatter/console_counts.rb +44 -0
- data/lib/cucumber/formatter/console_issues.rb +58 -0
- data/lib/cucumber/formatter/duration.rb +2 -1
- data/lib/cucumber/formatter/duration_extractor.rb +1 -0
- data/lib/cucumber/formatter/fail_fast.rb +4 -2
- data/lib/cucumber/formatter/fanout.rb +1 -0
- data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
- data/lib/cucumber/formatter/html.rb +175 -249
- data/lib/cucumber/formatter/html_builder.rb +120 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -0
- data/lib/cucumber/formatter/inline-js.js +30 -0
- data/lib/cucumber/formatter/interceptor.rb +3 -2
- data/lib/cucumber/formatter/io.rb +2 -1
- data/lib/cucumber/formatter/json.rb +33 -30
- data/lib/cucumber/formatter/json_pretty.rb +1 -0
- data/lib/cucumber/formatter/junit.rb +26 -24
- data/lib/cucumber/formatter/legacy_api/adapter.rb +81 -69
- data/lib/cucumber/formatter/legacy_api/ast.rb +27 -22
- data/lib/cucumber/formatter/legacy_api/results.rb +7 -8
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +1 -0
- data/lib/cucumber/formatter/pretty.rb +24 -18
- data/lib/cucumber/formatter/progress.rb +55 -13
- data/lib/cucumber/formatter/rerun.rb +15 -18
- data/lib/cucumber/formatter/stepdefs.rb +1 -0
- data/lib/cucumber/formatter/steps.rb +2 -1
- data/lib/cucumber/formatter/summary.rb +43 -20
- data/lib/cucumber/formatter/unicode.rb +2 -1
- data/lib/cucumber/formatter/usage.rb +33 -28
- data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +2 -1
- data/lib/cucumber/gherkin/formatter/escaping.rb +2 -1
- data/lib/cucumber/gherkin/i18n.rb +1 -0
- data/lib/cucumber/gherkin/steps_parser.rb +1 -0
- data/lib/cucumber/{rb_support/rb_dsl.rb → glue/dsl.rb} +41 -30
- data/lib/cucumber/glue/hook.rb +43 -0
- data/lib/cucumber/glue/invoke_in_world.rb +70 -0
- data/lib/cucumber/glue/proto_world.rb +220 -0
- data/lib/cucumber/{rb_support/rb_language.rb → glue/registry_and_more.rb} +60 -90
- data/lib/cucumber/{rb_support → glue}/snippet.rb +64 -26
- data/lib/cucumber/glue/step_definition.rb +143 -0
- data/lib/cucumber/glue/world_factory.rb +23 -0
- data/lib/cucumber/hooks.rb +9 -8
- data/lib/cucumber/load_path.rb +1 -0
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +158 -0
- data/lib/cucumber/multiline_argument/data_table.rb +47 -181
- data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
- data/lib/cucumber/multiline_argument.rb +6 -15
- data/lib/cucumber/platform.rb +4 -5
- data/lib/cucumber/project_initializer.rb +3 -2
- data/lib/cucumber/rake/task.rb +19 -14
- data/lib/cucumber/rspec/disable_option_parser.rb +2 -1
- data/lib/cucumber/rspec/doubles.rb +2 -1
- data/lib/cucumber/running_test_case.rb +3 -27
- data/lib/cucumber/runtime/after_hooks.rb +2 -1
- data/lib/cucumber/runtime/before_hooks.rb +1 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +2 -36
- data/lib/cucumber/runtime/step_hooks.rb +1 -0
- data/lib/cucumber/runtime/support_code.rb +21 -16
- data/lib/cucumber/runtime/user_interface.rb +10 -16
- data/lib/cucumber/runtime.rb +49 -32
- data/lib/cucumber/step_argument.rb +1 -2
- data/lib/cucumber/step_definition_light.rb +2 -0
- data/lib/cucumber/step_definitions.rb +1 -0
- data/lib/cucumber/step_match.rb +30 -15
- data/lib/cucumber/step_match_search.rb +3 -3
- data/lib/cucumber/term/ansicolor.rb +2 -1
- data/lib/cucumber/unit.rb +1 -0
- data/lib/cucumber/version +1 -1
- data/lib/cucumber.rb +1 -13
- data/lib/simplecov_setup.rb +2 -1
- data/scripts/invite-collaborator +40 -0
- data/scripts/update-changelog +86 -0
- data/spec/cucumber/cli/configuration_spec.rb +109 -98
- data/spec/cucumber/cli/main_spec.rb +8 -7
- data/spec/cucumber/cli/options_spec.rb +114 -79
- data/spec/cucumber/cli/profile_loader_spec.rb +25 -5
- data/spec/cucumber/cli/rerun_spec.rb +21 -20
- data/spec/cucumber/configuration_spec.rb +48 -47
- data/spec/cucumber/constantize_spec.rb +3 -2
- data/spec/cucumber/events_spec.rb +9 -0
- data/spec/cucumber/file_specs_spec.rb +26 -25
- data/spec/cucumber/filters/activate_steps_spec.rb +25 -22
- data/spec/cucumber/filters/gated_receiver_spec.rb +7 -6
- data/spec/cucumber/filters/retry_spec.rb +42 -23
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +12 -11
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +15 -14
- data/spec/cucumber/filters/tag_limits_spec.rb +9 -8
- data/spec/cucumber/formatter/ansicolor_spec.rb +10 -9
- data/spec/cucumber/formatter/backtrace_filter_spec.rb +32 -0
- data/spec/cucumber/formatter/console_counts_spec.rb +14 -0
- data/spec/cucumber/formatter/duration_spec.rb +4 -3
- data/spec/cucumber/formatter/fail_fast_spec.rb +27 -27
- data/spec/cucumber/formatter/html_spec.rb +65 -60
- data/spec/cucumber/formatter/interceptor_spec.rb +1 -0
- data/spec/cucumber/formatter/json_spec.rb +71 -97
- data/spec/cucumber/formatter/junit_spec.rb +46 -47
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +134 -141
- data/spec/cucumber/formatter/pretty_spec.rb +105 -117
- data/spec/cucumber/formatter/progress_spec.rb +22 -21
- data/spec/cucumber/formatter/rerun_spec.rb +70 -64
- data/spec/cucumber/formatter/spec_helper.rb +14 -12
- data/spec/cucumber/{rb_support/rb_world_spec.rb → glue/proto_world_spec.rb} +22 -6
- data/spec/cucumber/glue/registry_and_more_spec.rb +213 -0
- data/spec/cucumber/{rb_support → glue}/snippet_spec.rb +62 -25
- data/spec/cucumber/glue/step_definition_spec.rb +207 -0
- data/spec/cucumber/hooks_spec.rb +5 -4
- data/spec/cucumber/multiline_argument/data_table_spec.rb +179 -129
- data/spec/cucumber/project_initializer_spec.rb +12 -11
- data/spec/cucumber/rake/forked_spec.rb +22 -17
- data/spec/cucumber/rake/task_spec.rb +21 -20
- data/spec/cucumber/running_test_case_spec.rb +36 -35
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +2 -30
- data/spec/cucumber/runtime/support_code_spec.rb +1 -0
- data/spec/cucumber/runtime_spec.rb +3 -2
- data/spec/cucumber/step_argument_spec.rb +6 -5
- data/spec/cucumber/step_match_search_spec.rb +32 -41
- data/spec/cucumber/step_match_spec.rb +34 -33
- data/spec/cucumber/world/pending_spec.rb +12 -11
- data/spec/spec_helper.rb +1 -0
- data/spec/support/standard_step_actions.rb +2 -1
- metadata +132 -61
- data/features/docs/formatters/debug_formatter.feature +0 -47
- data/features/docs/formatters/formatter_step_file_colon_line.feature +0 -44
- data/features/docs/writing_support_code/transforms.feature +0 -98
- data/features/lib/step_definitions/wire_steps.rb +0 -58
- data/gem_tasks/cucumber.rake +0 -25
- data/lib/cucumber/ast.rb +0 -13
- data/lib/cucumber/core_ext/instance_exec.rb +0 -70
- data/lib/cucumber/events/after_test_case.rb +0 -25
- data/lib/cucumber/events/after_test_step.rb +0 -30
- data/lib/cucumber/events/before_test_case.rb +0 -18
- data/lib/cucumber/events/before_test_step.rb +0 -23
- data/lib/cucumber/events/bus.rb +0 -86
- data/lib/cucumber/events/finished_testing.rb +0 -9
- data/lib/cucumber/formatter/debug.rb +0 -35
- data/lib/cucumber/formatter/event_bus_report.rb +0 -38
- data/lib/cucumber/rb_support/rb_hook.rb +0 -19
- data/lib/cucumber/rb_support/rb_step_definition.rb +0 -131
- data/lib/cucumber/rb_support/rb_transform.rb +0 -59
- data/lib/cucumber/rb_support/rb_world.rb +0 -149
- data/spec/cucumber/core_ext/instance_exec_spec.rb +0 -4
- data/spec/cucumber/events/bus_spec.rb +0 -94
- data/spec/cucumber/formatter/debug_spec.rb +0 -64
- data/spec/cucumber/formatter/event_bus_report_spec.rb +0 -88
- data/spec/cucumber/rb_support/rb_language_spec.rb +0 -243
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -199
- data/spec/cucumber/rb_support/rb_transform_spec.rb +0 -46
- data/spec/cucumber_spec.rb +0 -39
|
@@ -19,7 +19,7 @@ Feature: Custom Formatter
|
|
|
19
19
|
class Formatter
|
|
20
20
|
def initialize(config)
|
|
21
21
|
@io = config.out_stream
|
|
22
|
-
config.on_event
|
|
22
|
+
config.on_event :test_case_started do |event|
|
|
23
23
|
print_test_case_name(event.test_case)
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -41,33 +41,25 @@ Feature: Custom Formatter
|
|
|
41
41
|
|
|
42
42
|
"""
|
|
43
43
|
|
|
44
|
-
Scenario:
|
|
45
|
-
Note that this method is likely to be deprecated in favour of events - see above.
|
|
46
|
-
|
|
44
|
+
Scenario: Pass custom config to your formatter from the CLI
|
|
47
45
|
Given a file named "features/support/custom_formatter.rb" with:
|
|
48
46
|
"""
|
|
49
47
|
module MyCustom
|
|
50
48
|
class Formatter
|
|
51
|
-
def initialize(config)
|
|
49
|
+
def initialize(config, options)
|
|
52
50
|
@io = config.out_stream
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
feature = test_case.source.first
|
|
57
|
-
scenario = test_case.source.last
|
|
58
|
-
@io.puts feature.short_name.upcase
|
|
59
|
-
@io.puts " #{scenario.name.upcase}"
|
|
51
|
+
config.on_event :test_run_finished do |event|
|
|
52
|
+
@io.print options.inspect
|
|
53
|
+
end
|
|
60
54
|
end
|
|
61
55
|
end
|
|
62
56
|
end
|
|
63
57
|
"""
|
|
64
|
-
When I run `cucumber features/f.feature --format MyCustom::Formatter`
|
|
58
|
+
When I run `cucumber features/f.feature --format MyCustom::Formatter,foo=bar,one=two`
|
|
65
59
|
Then it should pass with exactly:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"""
|
|
60
|
+
"""
|
|
61
|
+
{"foo"=>"bar", "one"=>"two"}
|
|
62
|
+
"""
|
|
71
63
|
|
|
72
64
|
Scenario: Use the legacy API
|
|
73
65
|
This is deprecated and should no longer be used.
|
|
@@ -93,38 +85,10 @@ Feature: Custom Formatter
|
|
|
93
85
|
When I run `cucumber features/f.feature --format MyCustom::LegacyFormatter`
|
|
94
86
|
Then it should pass with exactly:
|
|
95
87
|
"""
|
|
96
|
-
|
|
97
|
-
JUST PRINT ME
|
|
98
|
-
|
|
99
|
-
"""
|
|
100
|
-
|
|
101
|
-
Scenario: Use both old and new
|
|
102
|
-
You can use a specific shim to opt-in to both APIs at once.
|
|
103
|
-
|
|
104
|
-
Given a file named "features/support/custom_mixed_formatter.rb" with:
|
|
105
|
-
"""
|
|
106
|
-
module MyCustom
|
|
107
|
-
class MixedFormatter
|
|
108
|
-
|
|
109
|
-
def initialize(runtime, io, options)
|
|
110
|
-
@io = io
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def before_test_case(test_case)
|
|
114
|
-
feature = test_case.source.first
|
|
115
|
-
@io.puts feature.short_name.upcase
|
|
116
|
-
end
|
|
88
|
+
WARNING: The formatter MyCustom::LegacyFormatter is using the deprecated formatter API which will be removed in v4.0 of Cucumber.
|
|
117
89
|
|
|
118
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
|
119
|
-
@io.puts " #{name.upcase}"
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
"""
|
|
124
|
-
When I run `cucumber features/f.feature --format MyCustom::MixedFormatter`
|
|
125
|
-
Then it should pass with exactly:
|
|
126
|
-
"""
|
|
127
90
|
I'LL USE MY OWN
|
|
128
91
|
JUST PRINT ME
|
|
129
92
|
|
|
130
93
|
"""
|
|
94
|
+
|
|
@@ -104,7 +104,7 @@ Feature: JSON output formatter
|
|
|
104
104
|
"""
|
|
105
105
|
|
|
106
106
|
# Need to investigate why this won't pass in-process. error_message doesn't get det?
|
|
107
|
-
@spawn
|
|
107
|
+
@spawn @todo-windows
|
|
108
108
|
Scenario: one feature, one passing scenario, one failing scenario
|
|
109
109
|
When I run `cucumber --format json features/one_passing_one_failing.feature`
|
|
110
110
|
Then it should fail with JSON:
|
|
@@ -195,7 +195,7 @@ Feature: JSON output formatter
|
|
|
195
195
|
|
|
196
196
|
"""
|
|
197
197
|
|
|
198
|
-
@spawn
|
|
198
|
+
@spawn @todo-windows
|
|
199
199
|
Scenario: one feature, one passing scenario, one failing scenario with prettyfied json
|
|
200
200
|
When I run `cucumber --format json_pretty features/one_passing_one_failing.feature`
|
|
201
201
|
Then it should fail with JSON:
|
|
@@ -395,7 +395,7 @@ Feature: JSON output formatter
|
|
|
395
395
|
|
|
396
396
|
"""
|
|
397
397
|
|
|
398
|
-
@spawn
|
|
398
|
+
@spawn @todo-windows
|
|
399
399
|
Scenario: scenario outline
|
|
400
400
|
When I run `cucumber --format json features/outline.feature`
|
|
401
401
|
Then it should fail with JSON:
|
|
@@ -541,7 +541,7 @@ Feature: JSON output formatter
|
|
|
541
541
|
|
|
542
542
|
"""
|
|
543
543
|
|
|
544
|
-
@spawn
|
|
544
|
+
@spawn @todo-windows
|
|
545
545
|
Scenario: scenario outline expanded
|
|
546
546
|
When I run `cucumber --expand --format json features/outline.feature`
|
|
547
547
|
Then it should fail with JSON:
|
|
@@ -59,7 +59,7 @@ Feature: JUnit output formatter
|
|
|
59
59
|
| is undefined |
|
|
60
60
|
"""
|
|
61
61
|
|
|
62
|
-
@spawn
|
|
62
|
+
@spawn @todo-windows
|
|
63
63
|
Scenario: one feature, one passing scenario, one failing scenario
|
|
64
64
|
When I run `cucumber --format junit --out tmp/ features/one_passing_one_failing.feature`
|
|
65
65
|
Then it should fail with:
|
|
@@ -101,7 +101,7 @@ Feature: JUnit output formatter
|
|
|
101
101
|
|
|
102
102
|
"""
|
|
103
103
|
|
|
104
|
-
@spawn
|
|
104
|
+
@spawn @todo-windows
|
|
105
105
|
Scenario: one feature in a subdirectory, one passing scenario, one failing scenario
|
|
106
106
|
When I run `cucumber --format junit --out tmp/ features/some_subdirectory/one_passing_one_failing.feature --require features`
|
|
107
107
|
Then it should fail with:
|
|
@@ -225,7 +225,8 @@ Feature: JUnit output formatter
|
|
|
225
225
|
</testsuite>
|
|
226
226
|
|
|
227
227
|
"""
|
|
228
|
-
|
|
228
|
+
|
|
229
|
+
@todo-windows
|
|
229
230
|
Scenario: run all features
|
|
230
231
|
When I run `cucumber --format junit --out tmp/ features`
|
|
231
232
|
Then it should fail with:
|
|
@@ -246,7 +247,7 @@ can't convert .* into String \(TypeError\)
|
|
|
246
247
|
You *must* specify --out DIR for the junit formatter
|
|
247
248
|
"""
|
|
248
249
|
|
|
249
|
-
@spawn
|
|
250
|
+
@spawn @todo-windows
|
|
250
251
|
Scenario: strict mode, one feature, one scenario outline, four examples: one passing, one failing, one pending, one undefined
|
|
251
252
|
When I run `cucumber --strict --format junit --out tmp/ features/scenario_outline.feature`
|
|
252
253
|
Then it should fail with:
|
|
@@ -328,7 +329,7 @@ You *must* specify --out DIR for the junit formatter
|
|
|
328
329
|
|
|
329
330
|
"""
|
|
330
331
|
|
|
331
|
-
@spawn
|
|
332
|
+
@spawn @todo-windows
|
|
332
333
|
Scenario: strict mode with --expand option, one feature, one scenario outline, four examples: one passing, one failing, one pending, one undefined
|
|
333
334
|
When I run `cucumber --strict --expand --format junit --out tmp/ features/scenario_outline.feature`
|
|
334
335
|
Then it should fail with exactly:
|
|
@@ -410,7 +411,7 @@ You *must* specify --out DIR for the junit formatter
|
|
|
410
411
|
|
|
411
412
|
"""
|
|
412
413
|
|
|
413
|
-
@spawn
|
|
414
|
+
@spawn @todo-windows
|
|
414
415
|
Scenario: run test cases from different features interweaved
|
|
415
416
|
When I run `cucumber --format junit --out tmp/ features/one_passing_one_failing.feature:3 features/pending.feature:3 features/one_passing_one_failing.feature:6`
|
|
416
417
|
Then it should fail with:
|
|
@@ -17,6 +17,7 @@ Feature: Pretty output formatter
|
|
|
17
17
|
When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format pretty --expand `
|
|
18
18
|
Then it should pass
|
|
19
19
|
|
|
20
|
+
@todo-windows
|
|
20
21
|
Scenario: when using a profile the output should include 'Using the default profile...'
|
|
21
22
|
And a file named "cucumber.yml" with:
|
|
22
23
|
"""
|
|
@@ -17,6 +17,7 @@ Feature: Progress output formatter
|
|
|
17
17
|
When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format progress --expand `
|
|
18
18
|
Then it should pass
|
|
19
19
|
|
|
20
|
+
@todo-windows
|
|
20
21
|
Scenario: when using a profile the output should include 'Using the default profile...'
|
|
21
22
|
And a file named "cucumber.yml" with:
|
|
22
23
|
"""
|
|
@@ -18,6 +18,7 @@ Feature: Rerun formatter
|
|
|
18
18
|
Background:
|
|
19
19
|
Given the standard step definitions
|
|
20
20
|
|
|
21
|
+
@todo-windows
|
|
21
22
|
Scenario: Exit code is zero
|
|
22
23
|
Given a file named "features/mixed.feature" with:
|
|
23
24
|
"""
|
|
@@ -70,6 +71,7 @@ Feature: Rerun formatter
|
|
|
70
71
|
"""
|
|
71
72
|
"""
|
|
72
73
|
|
|
74
|
+
@todo-windows
|
|
73
75
|
Scenario: Exit code is not zero, regular scenario
|
|
74
76
|
Given a file named "features/mixed.feature" with:
|
|
75
77
|
"""
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Feature: Spec formatter
|
|
2
|
+
|
|
3
|
+
This formatter mimics the output from tools like RSpec or Mocha, giving an
|
|
4
|
+
overview of each feature and scenario but omitting the steps.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given the standard step definitions
|
|
8
|
+
|
|
9
|
+
@todo-windows
|
|
10
|
+
Scenario: A couple of scenarios
|
|
11
|
+
Given a file named "features/test.feature" with:
|
|
12
|
+
"""
|
|
13
|
+
Feature: Test
|
|
14
|
+
Scenario: Passing
|
|
15
|
+
Given this step passes
|
|
16
|
+
|
|
17
|
+
Scenario: Failing
|
|
18
|
+
Given this step fails
|
|
19
|
+
"""
|
|
20
|
+
When I run `cucumber --format summary`
|
|
21
|
+
Then it should fail with exactly:
|
|
22
|
+
"""
|
|
23
|
+
Test
|
|
24
|
+
Passing ✓
|
|
25
|
+
Failing ✗
|
|
26
|
+
|
|
27
|
+
Failing Scenarios:
|
|
28
|
+
cucumber features/test.feature:5 # Scenario: Failing
|
|
29
|
+
|
|
30
|
+
2 scenarios (1 failed, 1 passed)
|
|
31
|
+
2 steps (1 failed, 1 passed)
|
|
32
|
+
0m0.012s
|
|
33
|
+
|
|
34
|
+
"""
|
|
35
|
+
|
|
@@ -30,6 +30,7 @@ Feature: Usage formatter
|
|
|
30
30
|
Given(/D/) { }
|
|
31
31
|
"""
|
|
32
32
|
|
|
33
|
+
@todo-windows
|
|
33
34
|
Scenario: Run with --format usage
|
|
34
35
|
When I run `cucumber -f usage --dry-run`
|
|
35
36
|
Then it should pass with exactly:
|
|
@@ -55,6 +56,7 @@ Feature: Usage formatter
|
|
|
55
56
|
|
|
56
57
|
"""
|
|
57
58
|
|
|
59
|
+
@todo-windows
|
|
58
60
|
Scenario: Run with --expand --format usage
|
|
59
61
|
When I run `cucumber -x -f usage --dry-run`
|
|
60
62
|
Then it should pass with exactly:
|
|
@@ -80,6 +82,7 @@ Feature: Usage formatter
|
|
|
80
82
|
|
|
81
83
|
"""
|
|
82
84
|
|
|
85
|
+
@todo-windows
|
|
83
86
|
Scenario: Run with --format stepdefs
|
|
84
87
|
When I run `cucumber -f stepdefs --dry-run`
|
|
85
88
|
Then it should pass with exactly:
|
|
@@ -3,7 +3,7 @@ Feature: Getting started
|
|
|
3
3
|
To get started, just open a command prompt in an empty directory and run
|
|
4
4
|
`cucumber`. You'll be prompted for what to do next.
|
|
5
5
|
|
|
6
|
-
@spawn
|
|
6
|
+
@spawn @todo-windows
|
|
7
7
|
Scenario: Run Cucumber in an empty directory
|
|
8
8
|
Given a directory without standard Cucumber project directory structure
|
|
9
9
|
When I run `cucumber`
|
|
@@ -12,6 +12,7 @@ Feature: Getting started
|
|
|
12
12
|
No such file or directory - features. You can use `cucumber --init` to get started.
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
+
@todo-windows
|
|
15
16
|
Scenario: Accidentally run Cucumber in a folder with Ruby files in it.
|
|
16
17
|
Given a directory without standard Cucumber project directory structure
|
|
17
18
|
And a file named "should_not_load.rb" with:
|
|
@@ -295,7 +295,7 @@ Feature: Background
|
|
|
295
295
|
|
|
296
296
|
"""
|
|
297
297
|
|
|
298
|
-
@spawn
|
|
298
|
+
@spawn @todo-windows
|
|
299
299
|
Scenario: run a feature with a background that fails
|
|
300
300
|
When I run `cucumber -q features/failing_background.feature`
|
|
301
301
|
Then it should fail with exactly:
|
|
@@ -324,7 +324,7 @@ Feature: Background
|
|
|
324
324
|
|
|
325
325
|
"""
|
|
326
326
|
|
|
327
|
-
@spawn
|
|
327
|
+
@spawn @todo-windows
|
|
328
328
|
Scenario: run a feature with scenario outlines that has a background that fails
|
|
329
329
|
When I run `cucumber -q features/scenario_outline_failing_background.feature`
|
|
330
330
|
Then it should fail with exactly:
|
|
@@ -383,7 +383,7 @@ Feature: Background
|
|
|
383
383
|
|
|
384
384
|
"""
|
|
385
385
|
|
|
386
|
-
@spawn
|
|
386
|
+
@spawn @todo-windows
|
|
387
387
|
Scenario: background passes with first scenario but fails with second
|
|
388
388
|
When I run `cucumber -q features/failing_background_after_success.feature`
|
|
389
389
|
Then it should fail with exactly:
|
|
@@ -412,7 +412,7 @@ Feature: Background
|
|
|
412
412
|
|
|
413
413
|
"""
|
|
414
414
|
|
|
415
|
-
@spawn
|
|
415
|
+
@spawn @todo-windows
|
|
416
416
|
Scenario: background passes with first outline scenario but fails with second
|
|
417
417
|
When I run `cucumber -q features/failing_background_after_success_outline.feature`
|
|
418
418
|
Then it should fail with exactly:
|
|
@@ -448,7 +448,7 @@ Feature: Background
|
|
|
448
448
|
|
|
449
449
|
"""
|
|
450
450
|
|
|
451
|
-
@spawn
|
|
451
|
+
@spawn @todo-windows
|
|
452
452
|
Scenario: background passes with first outline scenario but fails with second (--expand)
|
|
453
453
|
When I run `cucumber -x -q features/failing_background_after_success_outline.feature`
|
|
454
454
|
Then it should fail with exactly:
|
|
@@ -29,6 +29,7 @@ Feature: Doc strings
|
|
|
29
29
|
You can read the content type from the argument passed into your step definition, as shown
|
|
30
30
|
in the example below.
|
|
31
31
|
|
|
32
|
+
@todo-windows
|
|
32
33
|
Scenario: Plain text Docstring
|
|
33
34
|
Given a scenario with a step that looks like this:
|
|
34
35
|
"""gherkin
|
|
@@ -53,6 +54,7 @@ Feature: Doc strings
|
|
|
53
54
|
Three
|
|
54
55
|
"""
|
|
55
56
|
|
|
57
|
+
@todo-windows
|
|
56
58
|
Scenario: DocString passed as String
|
|
57
59
|
Given a scenario with a step that looks like this:
|
|
58
60
|
"""gherkin
|
|
@@ -43,14 +43,13 @@ Feature: Scenario outlines
|
|
|
43
43
|
Given(/^failing without a table$/) { raise RuntimeError }
|
|
44
44
|
"""
|
|
45
45
|
|
|
46
|
+
@todo-windows
|
|
46
47
|
Scenario: Run scenario outline with filtering on outline name
|
|
47
48
|
When I run `cucumber -q features/outline_sample.feature`
|
|
48
49
|
Then it should fail with:
|
|
49
50
|
"""
|
|
50
51
|
Feature: Outline Sample
|
|
51
52
|
|
|
52
|
-
Scenario: I have no steps
|
|
53
|
-
|
|
54
53
|
Scenario Outline: Test state
|
|
55
54
|
Given <state> without a table
|
|
56
55
|
Given <other_state> without a table
|
|
@@ -72,10 +71,11 @@ Feature: Scenario outlines
|
|
|
72
71
|
Failing Scenarios:
|
|
73
72
|
cucumber features/outline_sample.feature:12
|
|
74
73
|
|
|
75
|
-
|
|
74
|
+
4 scenarios (1 failed, 1 undefined, 2 passed)
|
|
76
75
|
8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
|
|
77
76
|
"""
|
|
78
77
|
|
|
78
|
+
@todo-windows
|
|
79
79
|
Scenario: Run scenario outline steps only
|
|
80
80
|
When I run `cucumber -q features/outline_sample.feature:7`
|
|
81
81
|
Then it should fail with:
|
|
@@ -108,6 +108,7 @@ Feature: Scenario outlines
|
|
|
108
108
|
|
|
109
109
|
"""
|
|
110
110
|
|
|
111
|
+
@todo-windows
|
|
111
112
|
Scenario: Run single failing scenario outline table row
|
|
112
113
|
When I run `cucumber -q features/outline_sample.feature:12`
|
|
113
114
|
Then it should fail with:
|
|
@@ -134,6 +135,7 @@ Feature: Scenario outlines
|
|
|
134
135
|
|
|
135
136
|
"""
|
|
136
137
|
|
|
138
|
+
@todo-windows
|
|
137
139
|
Scenario: Run all with progress formatter
|
|
138
140
|
When I run `cucumber -q --format progress features/outline_sample.feature`
|
|
139
141
|
Then it should fail with exactly:
|
|
@@ -150,7 +152,7 @@ Feature: Scenario outlines
|
|
|
150
152
|
Failing Scenarios:
|
|
151
153
|
cucumber features/outline_sample.feature:12
|
|
152
154
|
|
|
153
|
-
|
|
155
|
+
4 scenarios (1 failed, 1 undefined, 2 passed)
|
|
154
156
|
8 steps (1 failed, 2 skipped, 1 undefined, 4 passed)
|
|
155
157
|
|
|
156
158
|
"""
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
@spawn
|
|
1
|
+
@spawn @wip-jruby
|
|
2
2
|
Feature: Unicode in tables
|
|
3
3
|
|
|
4
4
|
You are free to use unicode in your tables: we've taken care to
|
|
5
5
|
ensure that the tables are properly aligned so that your output is as
|
|
6
6
|
readable as possible.
|
|
7
7
|
|
|
8
|
+
@todo-windows
|
|
8
9
|
Scenario:
|
|
9
10
|
Given a file named "features/unicode.feature" with:
|
|
10
11
|
"""
|
|
@@ -31,7 +31,7 @@ Feature: Using star notation instead of Given/When/Then
|
|
|
31
31
|
"""
|
|
32
32
|
You can implement step definitions for undefined steps with these snippets:
|
|
33
33
|
|
|
34
|
-
Given(
|
|
34
|
+
Given("I have some cukes") do
|
|
35
35
|
pending # Write code here that turns the phrase above into concrete actions
|
|
36
36
|
end
|
|
37
37
|
"""
|
|
@@ -4,27 +4,11 @@ Feature: Post Configuration Hook [#423]
|
|
|
4
4
|
As a developer
|
|
5
5
|
I want to manipulate the Cucumber configuration after it has been created
|
|
6
6
|
|
|
7
|
-
# Fails on Travis under JRuby
|
|
8
|
-
@spawn
|
|
9
|
-
@wip-jruby
|
|
10
|
-
Scenario: Using options directly gets a deprecation warning
|
|
11
|
-
Given a file named "features/support/env.rb" with:
|
|
12
|
-
"""
|
|
13
|
-
AfterConfiguration do |config|
|
|
14
|
-
config.options[:blah]
|
|
15
|
-
end
|
|
16
|
-
"""
|
|
17
|
-
When I run `cucumber features`
|
|
18
|
-
Then the stderr should contain:
|
|
19
|
-
"""
|
|
20
|
-
Deprecated
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
7
|
Scenario: Changing the output format
|
|
24
8
|
Given a file named "features/support/env.rb" with:
|
|
25
9
|
"""
|
|
26
10
|
AfterConfiguration do |config|
|
|
27
|
-
config.formats << ['html', config.out_stream]
|
|
11
|
+
config.formats << ['html', {}, config.out_stream]
|
|
28
12
|
end
|
|
29
13
|
"""
|
|
30
14
|
When I run `cucumber features`
|
|
@@ -16,6 +16,7 @@ Feature: Rake task
|
|
|
16
16
|
Given I don't want this ran
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
+
@todo-windows
|
|
19
20
|
Scenario: rake task with a defined profile
|
|
20
21
|
Given the following profile is defined:
|
|
21
22
|
"""
|
|
@@ -41,6 +42,7 @@ Feature: Rake task
|
|
|
41
42
|
1 step (1 undefined)
|
|
42
43
|
"""
|
|
43
44
|
|
|
45
|
+
@todo-windows
|
|
44
46
|
Scenario: rake task without a profile
|
|
45
47
|
Given a file named "Rakefile" with:
|
|
46
48
|
"""
|
|
@@ -65,6 +67,7 @@ Feature: Rake task
|
|
|
65
67
|
2 steps (2 undefined)
|
|
66
68
|
"""
|
|
67
69
|
|
|
70
|
+
@todo-windows
|
|
68
71
|
Scenario: rake task with a defined profile and cucumber_opts
|
|
69
72
|
Given the following profile is defined:
|
|
70
73
|
"""
|
|
@@ -91,6 +94,7 @@ Feature: Rake task
|
|
|
91
94
|
1 step (1 undefined)
|
|
92
95
|
"""
|
|
93
96
|
|
|
97
|
+
@todo-windows
|
|
94
98
|
Scenario: respect requires
|
|
95
99
|
Given an empty file named "features/support/env.rb"
|
|
96
100
|
And an empty file named "features/support/dont_require_me.rb"
|
|
@@ -114,6 +118,7 @@ Feature: Rake task
|
|
|
114
118
|
* features/support/dont_require_me.rb
|
|
115
119
|
"""
|
|
116
120
|
|
|
121
|
+
@todo-windows
|
|
117
122
|
Scenario: feature files with spaces
|
|
118
123
|
Given a file named "features/spaces are nasty.feature" with:
|
|
119
124
|
"""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@spawn
|
|
1
|
+
@spawn @wip-jruby
|
|
2
2
|
Feature: Raketask
|
|
3
3
|
|
|
4
4
|
In order to use cucumber's rake task
|
|
@@ -34,10 +34,12 @@ Feature: Raketask
|
|
|
34
34
|
end
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
|
+
@todo-windows
|
|
37
38
|
Scenario: Passing feature
|
|
38
39
|
When I run `bundle exec rake pass`
|
|
39
40
|
Then the exit status should be 0
|
|
40
41
|
|
|
42
|
+
@todo-windows
|
|
41
43
|
Scenario: Failing feature
|
|
42
44
|
When I run `bundle exec rake fail`
|
|
43
45
|
Then the exit status should be 1
|
|
@@ -37,6 +37,7 @@ Feature: Cucumber --work-in-progress switch
|
|
|
37
37
|
| passes |
|
|
38
38
|
"""
|
|
39
39
|
|
|
40
|
+
@todo-windows
|
|
40
41
|
Scenario: Pass with Failing Scenarios
|
|
41
42
|
When I run `cucumber -q -w -t @failing features/wip.feature`
|
|
42
43
|
Then the stderr should not contain anything
|
|
@@ -63,6 +64,7 @@ Feature: Cucumber --work-in-progress switch
|
|
|
63
64
|
|
|
64
65
|
"""
|
|
65
66
|
|
|
67
|
+
@todo-windows
|
|
66
68
|
Scenario: Pass with Undefined Scenarios
|
|
67
69
|
When I run `cucumber -q -w -t @undefined features/wip.feature`
|
|
68
70
|
Then it should pass with:
|
|
@@ -82,6 +84,7 @@ Feature: Cucumber --work-in-progress switch
|
|
|
82
84
|
|
|
83
85
|
"""
|
|
84
86
|
|
|
87
|
+
@todo-windows
|
|
85
88
|
Scenario: Pass with Undefined Scenarios
|
|
86
89
|
When I run `cucumber -q -w -t @pending features/wip.feature`
|
|
87
90
|
Then it should pass with:
|
|
@@ -104,6 +107,7 @@ Feature: Cucumber --work-in-progress switch
|
|
|
104
107
|
|
|
105
108
|
"""
|
|
106
109
|
|
|
110
|
+
@todo-windows
|
|
107
111
|
Scenario: Fail with Passing Scenarios
|
|
108
112
|
When I run `cucumber -q -w -t @passing features/wip.feature`
|
|
109
113
|
Then it should fail with:
|
|
@@ -124,9 +128,9 @@ Feature: Cucumber --work-in-progress switch
|
|
|
124
128
|
|
|
125
129
|
features/wip.feature:15:in `Scenario: Passing'
|
|
126
130
|
|
|
127
|
-
|
|
128
131
|
"""
|
|
129
132
|
|
|
133
|
+
@todo-windows
|
|
130
134
|
Scenario: Fail with Passing Scenario Outline
|
|
131
135
|
When I run `cucumber -q -w features/passing_outline.feature`
|
|
132
136
|
Then it should fail with:
|
|
@@ -150,5 +154,4 @@ Feature: Cucumber --work-in-progress switch
|
|
|
150
154
|
|
|
151
155
|
features/passing_outline.feature:7:in `Scenario Outline: Passing, Examples (#1)'
|
|
152
156
|
|
|
153
|
-
|
|
154
157
|
"""
|
|
@@ -12,6 +12,7 @@ Feature: AfterStep Hooks
|
|
|
12
12
|
Given this step passes
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
+
@todo-windows
|
|
15
16
|
Scenario: Access Test Step object in AfterStep Block
|
|
16
17
|
Given a file named "features/support/env.rb" with:
|
|
17
18
|
"""
|
|
@@ -32,6 +33,7 @@ Feature: AfterStep Hooks
|
|
|
32
33
|
|
|
33
34
|
"""
|
|
34
35
|
|
|
36
|
+
@todo-windows
|
|
35
37
|
Scenario: An AfterStep with one named argument receives only the result
|
|
36
38
|
Given a file named "features/support/env.rb" with:
|
|
37
39
|
"""
|
|
@@ -50,4 +52,4 @@ Feature: AfterStep Hooks
|
|
|
50
52
|
1 scenario (1 passed)
|
|
51
53
|
1 step (1 passed)
|
|
52
54
|
|
|
53
|
-
"""
|
|
55
|
+
"""
|
|
@@ -5,6 +5,7 @@ Feature: Around hooks
|
|
|
5
5
|
that provide only a block syntax for transactions, Cucumber should
|
|
6
6
|
permit definition of Around hooks.
|
|
7
7
|
|
|
8
|
+
@todo-windows
|
|
8
9
|
Scenario: A single Around hook
|
|
9
10
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
10
11
|
"""
|
|
@@ -38,6 +39,7 @@ Feature: Around hooks
|
|
|
38
39
|
|
|
39
40
|
"""
|
|
40
41
|
|
|
42
|
+
@todo-windows
|
|
41
43
|
Scenario: Multiple Around hooks
|
|
42
44
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
43
45
|
"""
|
|
@@ -84,6 +86,7 @@ Feature: Around hooks
|
|
|
84
86
|
|
|
85
87
|
"""
|
|
86
88
|
|
|
89
|
+
@todo-windows
|
|
87
90
|
Scenario: Mixing Around, Before, and After hooks
|
|
88
91
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
89
92
|
"""
|
|
@@ -131,6 +134,7 @@ Feature: Around hooks
|
|
|
131
134
|
|
|
132
135
|
"""
|
|
133
136
|
|
|
137
|
+
@todo-windows
|
|
134
138
|
Scenario: Around hooks with tags
|
|
135
139
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
136
140
|
"""
|
|
@@ -185,6 +189,7 @@ Feature: Around hooks
|
|
|
185
189
|
|
|
186
190
|
"""
|
|
187
191
|
|
|
192
|
+
@todo-windows
|
|
188
193
|
Scenario: Around hooks with scenario outlines
|
|
189
194
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
190
195
|
"""
|
|
@@ -228,6 +233,7 @@ Feature: Around hooks
|
|
|
228
233
|
|
|
229
234
|
"""
|
|
230
235
|
|
|
236
|
+
@todo-windows
|
|
231
237
|
Scenario: Around Hooks and the Custom World
|
|
232
238
|
Given a file named "features/step_definitions/steps.rb" with:
|
|
233
239
|
"""
|