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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
require 'cucumber/formatter/legacy_api/adapter'
|
|
2
3
|
require 'cucumber/core'
|
|
3
4
|
require 'cucumber/core/gherkin/writer'
|
|
@@ -13,9 +14,10 @@ module Cucumber
|
|
|
13
14
|
include Core::Gherkin::Writer
|
|
14
15
|
include Core
|
|
15
16
|
|
|
16
|
-
let(:report) { Adapter.new(formatter, runtime.results, runtime.configuration) }
|
|
17
|
+
let!(:report) { Adapter.new(formatter, runtime.results, runtime.configuration) }
|
|
17
18
|
let(:formatter) { double('formatter').as_null_object }
|
|
18
19
|
let(:runtime) { Runtime.new }
|
|
20
|
+
let(:events) { runtime.configuration.event_bus }
|
|
19
21
|
let(:step_match_search) { SimpleStepDefinitionSearch.new }
|
|
20
22
|
|
|
21
23
|
Failure = Class.new(StandardError)
|
|
@@ -57,7 +59,7 @@ module Cucumber
|
|
|
57
59
|
source_location
|
|
58
60
|
end
|
|
59
61
|
|
|
60
|
-
def invoke(
|
|
62
|
+
def invoke(_pseudo_method, _arguments, &_block)
|
|
61
63
|
@proc.call
|
|
62
64
|
end
|
|
63
65
|
end
|
|
@@ -104,10 +106,12 @@ module Cucumber
|
|
|
104
106
|
step 'passing'
|
|
105
107
|
end
|
|
106
108
|
end
|
|
107
|
-
end
|
|
109
|
+
end
|
|
108
110
|
]
|
|
109
|
-
runner = Core::Test::Runner.new(
|
|
111
|
+
runner = Core::Test::Runner.new(events)
|
|
110
112
|
compile gherkin_docs, runner, default_filters
|
|
113
|
+
events.test_run_finished
|
|
114
|
+
# rubocop:disable AlignArray
|
|
111
115
|
expect( formatter.legacy_messages ).to eq [
|
|
112
116
|
:before_features,
|
|
113
117
|
:before_feature,
|
|
@@ -144,68 +148,9 @@ module Cucumber
|
|
|
144
148
|
:after_steps,
|
|
145
149
|
:after_feature_element,
|
|
146
150
|
:after_feature,
|
|
147
|
-
:after_features
|
|
148
|
-
]
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
it 'a scenario with no steps' do
|
|
152
|
-
execute_gherkin do
|
|
153
|
-
feature do
|
|
154
|
-
scenario
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
expect( formatter.legacy_messages ).to eq [
|
|
159
|
-
:before_features,
|
|
160
|
-
:before_feature,
|
|
161
|
-
:before_tags,
|
|
162
|
-
:after_tags,
|
|
163
|
-
:feature_name,
|
|
164
|
-
:before_feature_element,
|
|
165
|
-
:before_tags,
|
|
166
|
-
:after_tags,
|
|
167
|
-
:scenario_name,
|
|
168
|
-
:after_feature_element,
|
|
169
|
-
:after_feature,
|
|
170
|
-
:after_features,
|
|
171
|
-
]
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
it 'a scenario with no steps coming after another scenario' do
|
|
175
|
-
execute_gherkin do
|
|
176
|
-
feature do
|
|
177
|
-
scenario do
|
|
178
|
-
step 'passing'
|
|
179
|
-
end
|
|
180
|
-
scenario
|
|
181
|
-
end
|
|
182
|
-
end
|
|
183
|
-
expect( formatter.legacy_messages ).to eq [
|
|
184
|
-
:before_features,
|
|
185
|
-
:before_feature,
|
|
186
|
-
:before_tags,
|
|
187
|
-
:after_tags,
|
|
188
|
-
:feature_name,
|
|
189
|
-
:before_feature_element,
|
|
190
|
-
:before_tags,
|
|
191
|
-
:after_tags,
|
|
192
|
-
:scenario_name,
|
|
193
|
-
:before_steps,
|
|
194
|
-
:before_step,
|
|
195
|
-
:before_step_result,
|
|
196
|
-
:step_name,
|
|
197
|
-
:after_step_result,
|
|
198
|
-
:after_step,
|
|
199
|
-
:after_steps,
|
|
200
|
-
:after_feature_element,
|
|
201
|
-
:before_feature_element,
|
|
202
|
-
:before_tags,
|
|
203
|
-
:after_tags,
|
|
204
|
-
:scenario_name,
|
|
205
|
-
:after_feature_element,
|
|
206
|
-
:after_feature,
|
|
207
|
-
:after_features,
|
|
151
|
+
:after_features
|
|
208
152
|
]
|
|
153
|
+
# rubocop:enable AlignArray
|
|
209
154
|
end
|
|
210
155
|
|
|
211
156
|
it 'a scenario with one step' do
|
|
@@ -216,6 +161,8 @@ module Cucumber
|
|
|
216
161
|
end
|
|
217
162
|
end
|
|
218
163
|
end
|
|
164
|
+
|
|
165
|
+
# rubocop:disable AlignArray
|
|
219
166
|
expect( formatter.legacy_messages ).to eq [
|
|
220
167
|
:before_features,
|
|
221
168
|
:before_feature,
|
|
@@ -235,8 +182,9 @@ module Cucumber
|
|
|
235
182
|
:after_steps,
|
|
236
183
|
:after_feature_element,
|
|
237
184
|
:after_feature,
|
|
238
|
-
:after_features
|
|
185
|
+
:after_features
|
|
239
186
|
]
|
|
187
|
+
# rubocop:enable AlignArray
|
|
240
188
|
end
|
|
241
189
|
|
|
242
190
|
it 'a scenario with two steps, one of them failing' do
|
|
@@ -273,7 +221,7 @@ module Cucumber
|
|
|
273
221
|
:after_steps,
|
|
274
222
|
:after_feature_element,
|
|
275
223
|
:after_feature,
|
|
276
|
-
:after_features
|
|
224
|
+
:after_features
|
|
277
225
|
]
|
|
278
226
|
end
|
|
279
227
|
|
|
@@ -288,6 +236,8 @@ module Cucumber
|
|
|
288
236
|
end
|
|
289
237
|
end
|
|
290
238
|
end
|
|
239
|
+
|
|
240
|
+
# rubocop:disable AlignArray
|
|
291
241
|
expect( formatter.legacy_messages ).to eq [
|
|
292
242
|
:before_features,
|
|
293
243
|
:before_feature,
|
|
@@ -319,8 +269,9 @@ module Cucumber
|
|
|
319
269
|
:after_steps,
|
|
320
270
|
:after_feature_element,
|
|
321
271
|
:after_feature,
|
|
322
|
-
:after_features
|
|
272
|
+
:after_features
|
|
323
273
|
]
|
|
274
|
+
# rubocop:enable AlignArray
|
|
324
275
|
end
|
|
325
276
|
|
|
326
277
|
it 'a feature with a background and an empty scenario' do
|
|
@@ -332,6 +283,8 @@ module Cucumber
|
|
|
332
283
|
scenario
|
|
333
284
|
end
|
|
334
285
|
end
|
|
286
|
+
|
|
287
|
+
# rubocop:disable AlignArray
|
|
335
288
|
expect( formatter.legacy_messages ).to eq [
|
|
336
289
|
:before_features,
|
|
337
290
|
:before_feature,
|
|
@@ -354,8 +307,9 @@ module Cucumber
|
|
|
354
307
|
:scenario_name,
|
|
355
308
|
:after_feature_element,
|
|
356
309
|
:after_feature,
|
|
357
|
-
:after_features
|
|
310
|
+
:after_features
|
|
358
311
|
]
|
|
312
|
+
# rubocop:enable AlignArray
|
|
359
313
|
end
|
|
360
314
|
|
|
361
315
|
it 'a feature with a background and two scenarios' do
|
|
@@ -372,6 +326,8 @@ module Cucumber
|
|
|
372
326
|
end
|
|
373
327
|
end
|
|
374
328
|
end
|
|
329
|
+
|
|
330
|
+
# rubocop:disable AlignArray
|
|
375
331
|
expect( formatter.legacy_messages ).to eq [
|
|
376
332
|
:before_features,
|
|
377
333
|
:before_feature,
|
|
@@ -413,8 +369,9 @@ module Cucumber
|
|
|
413
369
|
:after_steps,
|
|
414
370
|
:after_feature_element,
|
|
415
371
|
:after_feature,
|
|
416
|
-
:after_features
|
|
372
|
+
:after_features
|
|
417
373
|
]
|
|
374
|
+
# rubocop:enable AlignArray
|
|
418
375
|
end
|
|
419
376
|
|
|
420
377
|
it 'a feature with a background and one scenario and one scenario outline' do
|
|
@@ -435,6 +392,8 @@ module Cucumber
|
|
|
435
392
|
end
|
|
436
393
|
end
|
|
437
394
|
end
|
|
395
|
+
|
|
396
|
+
# rubocop:disable AlignArray
|
|
438
397
|
expect( formatter.legacy_messages ).to eq [
|
|
439
398
|
:before_features,
|
|
440
399
|
:before_feature,
|
|
@@ -495,8 +454,9 @@ module Cucumber
|
|
|
495
454
|
:after_examples_array,
|
|
496
455
|
:after_feature_element,
|
|
497
456
|
:after_feature,
|
|
498
|
-
:after_features
|
|
457
|
+
:after_features
|
|
499
458
|
]
|
|
459
|
+
# rubocop:enable AlignArray
|
|
500
460
|
end
|
|
501
461
|
|
|
502
462
|
it 'a feature with a background and one scenario outline and one scenario' do
|
|
@@ -517,6 +477,8 @@ module Cucumber
|
|
|
517
477
|
end
|
|
518
478
|
end
|
|
519
479
|
end
|
|
480
|
+
|
|
481
|
+
# rubocop:disable AlignArray
|
|
520
482
|
expect( formatter.legacy_messages ).to eq [
|
|
521
483
|
:before_features,
|
|
522
484
|
:before_feature,
|
|
@@ -577,8 +539,9 @@ module Cucumber
|
|
|
577
539
|
:after_steps,
|
|
578
540
|
:after_feature_element,
|
|
579
541
|
:after_feature,
|
|
580
|
-
:after_features
|
|
542
|
+
:after_features
|
|
581
543
|
]
|
|
544
|
+
# rubocop:enable AlignArray
|
|
582
545
|
end
|
|
583
546
|
|
|
584
547
|
it 'a feature with a background and two scenario outlines' do
|
|
@@ -603,6 +566,8 @@ module Cucumber
|
|
|
603
566
|
end
|
|
604
567
|
end
|
|
605
568
|
end
|
|
569
|
+
|
|
570
|
+
# rubocop:disable AlignArray
|
|
606
571
|
expect( formatter.legacy_messages ).to eq [
|
|
607
572
|
:before_features,
|
|
608
573
|
:before_feature,
|
|
@@ -682,8 +647,9 @@ module Cucumber
|
|
|
682
647
|
:after_examples_array,
|
|
683
648
|
:after_feature_element,
|
|
684
649
|
:after_feature,
|
|
685
|
-
:after_features
|
|
650
|
+
:after_features
|
|
686
651
|
]
|
|
652
|
+
# rubocop:enable AlignArray
|
|
687
653
|
end
|
|
688
654
|
|
|
689
655
|
it 'a feature with a background and one scenario outline with two rows' do
|
|
@@ -702,6 +668,8 @@ module Cucumber
|
|
|
702
668
|
end
|
|
703
669
|
end
|
|
704
670
|
end
|
|
671
|
+
|
|
672
|
+
# rubocop:disable AlignArray
|
|
705
673
|
expect( formatter.legacy_messages ).to eq [
|
|
706
674
|
:before_features,
|
|
707
675
|
:before_feature,
|
|
@@ -755,8 +723,9 @@ module Cucumber
|
|
|
755
723
|
:after_examples_array,
|
|
756
724
|
:after_feature_element,
|
|
757
725
|
:after_feature,
|
|
758
|
-
:after_features
|
|
726
|
+
:after_features
|
|
759
727
|
]
|
|
728
|
+
# rubocop:enable AlignArray
|
|
760
729
|
end
|
|
761
730
|
|
|
762
731
|
it 'a feature with a background and one scenario outline with two examples tables' do
|
|
@@ -778,6 +747,8 @@ module Cucumber
|
|
|
778
747
|
end
|
|
779
748
|
end
|
|
780
749
|
end
|
|
750
|
+
|
|
751
|
+
# rubocop:disable AlignArray
|
|
781
752
|
expect( formatter.legacy_messages ).to eq [
|
|
782
753
|
:before_features,
|
|
783
754
|
:before_feature,
|
|
@@ -843,8 +814,9 @@ module Cucumber
|
|
|
843
814
|
:after_examples_array,
|
|
844
815
|
:after_feature_element,
|
|
845
816
|
:after_feature,
|
|
846
|
-
:after_features
|
|
817
|
+
:after_features
|
|
847
818
|
]
|
|
819
|
+
# rubocop:enable AlignArray
|
|
848
820
|
end
|
|
849
821
|
|
|
850
822
|
it 'a feature with a background with two steps' do
|
|
@@ -859,6 +831,8 @@ module Cucumber
|
|
|
859
831
|
end
|
|
860
832
|
end
|
|
861
833
|
end
|
|
834
|
+
|
|
835
|
+
# rubocop:disable AlignArray
|
|
862
836
|
expect( formatter.legacy_messages ).to eq [
|
|
863
837
|
:before_features,
|
|
864
838
|
:before_feature,
|
|
@@ -893,8 +867,9 @@ module Cucumber
|
|
|
893
867
|
:after_steps,
|
|
894
868
|
:after_feature_element,
|
|
895
869
|
:after_feature,
|
|
896
|
-
:after_features
|
|
870
|
+
:after_features
|
|
897
871
|
]
|
|
872
|
+
# rubocop:enable AlignArray
|
|
898
873
|
end
|
|
899
874
|
|
|
900
875
|
it 'a feature with a background' do
|
|
@@ -937,7 +912,7 @@ module Cucumber
|
|
|
937
912
|
:after_steps,
|
|
938
913
|
:after_feature_element,
|
|
939
914
|
:after_feature,
|
|
940
|
-
:after_features
|
|
915
|
+
:after_features
|
|
941
916
|
]
|
|
942
917
|
end
|
|
943
918
|
|
|
@@ -953,6 +928,8 @@ module Cucumber
|
|
|
953
928
|
end
|
|
954
929
|
end
|
|
955
930
|
end
|
|
931
|
+
|
|
932
|
+
# rubocop:disable AlignArray
|
|
956
933
|
expect( formatter.legacy_messages ).to eq [
|
|
957
934
|
:before_features,
|
|
958
935
|
:before_feature,
|
|
@@ -991,8 +968,9 @@ module Cucumber
|
|
|
991
968
|
:after_examples_array,
|
|
992
969
|
:after_feature_element,
|
|
993
970
|
:after_feature,
|
|
994
|
-
:after_features
|
|
971
|
+
:after_features
|
|
995
972
|
]
|
|
973
|
+
# rubocop:enable AlignArray
|
|
996
974
|
end
|
|
997
975
|
|
|
998
976
|
it 'scenario outline after scenario' do
|
|
@@ -1010,6 +988,8 @@ module Cucumber
|
|
|
1010
988
|
end
|
|
1011
989
|
end
|
|
1012
990
|
end
|
|
991
|
+
|
|
992
|
+
# rubocop:disable AlignArray
|
|
1013
993
|
expect( formatter.legacy_messages ).to eq [
|
|
1014
994
|
:before_features,
|
|
1015
995
|
:before_feature,
|
|
@@ -1060,8 +1040,9 @@ module Cucumber
|
|
|
1060
1040
|
:after_examples_array,
|
|
1061
1041
|
:after_feature_element,
|
|
1062
1042
|
:after_feature,
|
|
1063
|
-
:after_features
|
|
1043
|
+
:after_features
|
|
1064
1044
|
]
|
|
1045
|
+
# rubocop:enable AlignArray
|
|
1065
1046
|
end
|
|
1066
1047
|
|
|
1067
1048
|
it 'scenario outline before scenario' do
|
|
@@ -1079,6 +1060,8 @@ module Cucumber
|
|
|
1079
1060
|
end
|
|
1080
1061
|
end
|
|
1081
1062
|
end
|
|
1063
|
+
|
|
1064
|
+
# rubocop:disable AlignArray
|
|
1082
1065
|
expect( formatter.legacy_messages ).to eq [
|
|
1083
1066
|
:before_features,
|
|
1084
1067
|
:before_feature,
|
|
@@ -1129,8 +1112,9 @@ module Cucumber
|
|
|
1129
1112
|
:after_steps,
|
|
1130
1113
|
:after_feature_element,
|
|
1131
1114
|
:after_feature,
|
|
1132
|
-
:after_features
|
|
1115
|
+
:after_features
|
|
1133
1116
|
]
|
|
1117
|
+
# rubocop:enable AlignArray
|
|
1134
1118
|
end
|
|
1135
1119
|
|
|
1136
1120
|
it 'scenario outline two rows' do
|
|
@@ -1146,6 +1130,8 @@ module Cucumber
|
|
|
1146
1130
|
end
|
|
1147
1131
|
end
|
|
1148
1132
|
end
|
|
1133
|
+
|
|
1134
|
+
# rubocop:disable AlignArray
|
|
1149
1135
|
expect( formatter.legacy_messages ).to eq [
|
|
1150
1136
|
:before_features,
|
|
1151
1137
|
:before_feature,
|
|
@@ -1189,8 +1175,9 @@ module Cucumber
|
|
|
1189
1175
|
:after_examples_array,
|
|
1190
1176
|
:after_feature_element,
|
|
1191
1177
|
:after_feature,
|
|
1192
|
-
:after_features
|
|
1178
|
+
:after_features
|
|
1193
1179
|
]
|
|
1180
|
+
# rubocop:enable AlignArray
|
|
1194
1181
|
end
|
|
1195
1182
|
|
|
1196
1183
|
it 'scenario outline two examples tables' do
|
|
@@ -1209,6 +1196,8 @@ module Cucumber
|
|
|
1209
1196
|
end
|
|
1210
1197
|
end
|
|
1211
1198
|
end
|
|
1199
|
+
|
|
1200
|
+
# rubocop:disable AlignArray
|
|
1212
1201
|
expect( formatter.legacy_messages ).to eq [
|
|
1213
1202
|
:before_features,
|
|
1214
1203
|
:before_feature,
|
|
@@ -1264,8 +1253,9 @@ module Cucumber
|
|
|
1264
1253
|
:after_examples_array,
|
|
1265
1254
|
:after_feature_element,
|
|
1266
1255
|
:after_feature,
|
|
1267
|
-
:after_features
|
|
1256
|
+
:after_features
|
|
1268
1257
|
]
|
|
1258
|
+
# rubocop:enable AlignArray
|
|
1269
1259
|
end
|
|
1270
1260
|
|
|
1271
1261
|
it 'two scenario outline' do
|
|
@@ -1287,6 +1277,8 @@ module Cucumber
|
|
|
1287
1277
|
end
|
|
1288
1278
|
end
|
|
1289
1279
|
end
|
|
1280
|
+
|
|
1281
|
+
# rubocop:disable AlignArray
|
|
1290
1282
|
expect( formatter.legacy_messages ).to eq [
|
|
1291
1283
|
:before_features,
|
|
1292
1284
|
:before_feature,
|
|
@@ -1356,8 +1348,9 @@ module Cucumber
|
|
|
1356
1348
|
:after_examples_array,
|
|
1357
1349
|
:after_feature_element,
|
|
1358
1350
|
:after_feature,
|
|
1359
|
-
:after_features
|
|
1351
|
+
:after_features
|
|
1360
1352
|
]
|
|
1353
|
+
# rubocop:enable AlignArray
|
|
1361
1354
|
end
|
|
1362
1355
|
|
|
1363
1356
|
it 'failing scenario outline' do
|
|
@@ -1372,6 +1365,8 @@ module Cucumber
|
|
|
1372
1365
|
end
|
|
1373
1366
|
end
|
|
1374
1367
|
end
|
|
1368
|
+
|
|
1369
|
+
# rubocop:disable AlignArray
|
|
1375
1370
|
expect( formatter.legacy_messages ).to eq [
|
|
1376
1371
|
:before_features,
|
|
1377
1372
|
:before_feature,
|
|
@@ -1410,8 +1405,9 @@ module Cucumber
|
|
|
1410
1405
|
:after_examples_array,
|
|
1411
1406
|
:after_feature_element,
|
|
1412
1407
|
:after_feature,
|
|
1413
|
-
:after_features
|
|
1408
|
+
:after_features
|
|
1414
1409
|
]
|
|
1410
|
+
# rubocop:enable AlignArray
|
|
1415
1411
|
end
|
|
1416
1412
|
|
|
1417
1413
|
it 'a feature with a failing background and two scenarios' do
|
|
@@ -1428,6 +1424,8 @@ module Cucumber
|
|
|
1428
1424
|
end
|
|
1429
1425
|
end
|
|
1430
1426
|
end
|
|
1427
|
+
|
|
1428
|
+
# rubocop:disable AlignArray
|
|
1431
1429
|
expect( formatter.legacy_messages ).to eq [
|
|
1432
1430
|
:before_features,
|
|
1433
1431
|
:before_feature,
|
|
@@ -1470,8 +1468,9 @@ module Cucumber
|
|
|
1470
1468
|
:after_steps,
|
|
1471
1469
|
:after_feature_element,
|
|
1472
1470
|
:after_feature,
|
|
1473
|
-
:after_features
|
|
1471
|
+
:after_features
|
|
1474
1472
|
]
|
|
1473
|
+
# rubocop:enable AlignArray
|
|
1475
1474
|
end
|
|
1476
1475
|
|
|
1477
1476
|
context 'in expand mode' do
|
|
@@ -1491,6 +1490,8 @@ module Cucumber
|
|
|
1491
1490
|
end
|
|
1492
1491
|
end
|
|
1493
1492
|
end
|
|
1493
|
+
|
|
1494
|
+
# rubocop:disable AlignArray
|
|
1494
1495
|
expect( formatter.legacy_messages ).to eq [
|
|
1495
1496
|
:before_features,
|
|
1496
1497
|
:before_feature,
|
|
@@ -1531,15 +1532,16 @@ module Cucumber
|
|
|
1531
1532
|
:after_examples_array,
|
|
1532
1533
|
:after_feature_element,
|
|
1533
1534
|
:after_feature,
|
|
1534
|
-
:after_features
|
|
1535
|
+
:after_features
|
|
1535
1536
|
]
|
|
1537
|
+
# rubocop:enable AlignArray
|
|
1536
1538
|
end
|
|
1537
1539
|
end
|
|
1538
1540
|
|
|
1539
1541
|
context 'with exception in after step hook' do
|
|
1540
1542
|
|
|
1541
1543
|
class FailingAfterStepHook
|
|
1542
|
-
def find_after_step_hooks(
|
|
1544
|
+
def find_after_step_hooks(_test_case)
|
|
1543
1545
|
failing_hook = HookWrapper.new(proc { raise Failure })
|
|
1544
1546
|
Runtime::StepHooks.new [failing_hook]
|
|
1545
1547
|
end
|
|
@@ -1558,6 +1560,8 @@ module Cucumber
|
|
|
1558
1560
|
end
|
|
1559
1561
|
end
|
|
1560
1562
|
end
|
|
1563
|
+
|
|
1564
|
+
# rubocop:disable AlignArray
|
|
1561
1565
|
expect( formatter.legacy_messages ).to eq([
|
|
1562
1566
|
:before_features,
|
|
1563
1567
|
:before_feature,
|
|
@@ -1578,8 +1582,9 @@ module Cucumber
|
|
|
1578
1582
|
:after_steps,
|
|
1579
1583
|
:after_feature_element,
|
|
1580
1584
|
:after_feature,
|
|
1581
|
-
:after_features
|
|
1582
|
-
|
|
1585
|
+
:after_features
|
|
1586
|
+
])
|
|
1587
|
+
# rubocop:enable AlignArray
|
|
1583
1588
|
end
|
|
1584
1589
|
end
|
|
1585
1590
|
|
|
@@ -1605,6 +1610,7 @@ module Cucumber
|
|
|
1605
1610
|
end
|
|
1606
1611
|
end
|
|
1607
1612
|
|
|
1613
|
+
# rubocop:disable AlignArray
|
|
1608
1614
|
expect( formatter.legacy_messages ).to eq([
|
|
1609
1615
|
:before_features,
|
|
1610
1616
|
:before_feature,
|
|
@@ -1625,8 +1631,9 @@ module Cucumber
|
|
|
1625
1631
|
:after_steps,
|
|
1626
1632
|
:after_feature_element,
|
|
1627
1633
|
:after_feature,
|
|
1628
|
-
:after_features
|
|
1629
|
-
|
|
1634
|
+
:after_features
|
|
1635
|
+
])
|
|
1636
|
+
# rubocop:enable AlignArray
|
|
1630
1637
|
end
|
|
1631
1638
|
|
|
1632
1639
|
it 'prints the exception after the background name' do
|
|
@@ -1646,6 +1653,7 @@ module Cucumber
|
|
|
1646
1653
|
end
|
|
1647
1654
|
end
|
|
1648
1655
|
|
|
1656
|
+
# rubocop:disable AlignArray
|
|
1649
1657
|
expect( formatter.legacy_messages ).to eq([
|
|
1650
1658
|
:before_features,
|
|
1651
1659
|
:before_feature,
|
|
@@ -1676,8 +1684,9 @@ module Cucumber
|
|
|
1676
1684
|
:after_steps,
|
|
1677
1685
|
:after_feature_element,
|
|
1678
1686
|
:after_feature,
|
|
1679
|
-
:after_features
|
|
1680
|
-
|
|
1687
|
+
:after_features
|
|
1688
|
+
])
|
|
1689
|
+
# rubocop:enable AlignArray
|
|
1681
1690
|
end
|
|
1682
1691
|
|
|
1683
1692
|
|
|
@@ -1699,6 +1708,7 @@ module Cucumber
|
|
|
1699
1708
|
end
|
|
1700
1709
|
end
|
|
1701
1710
|
|
|
1711
|
+
# rubocop:disable AlignArray
|
|
1702
1712
|
expect( formatter.legacy_messages ).to eq([
|
|
1703
1713
|
:before_features,
|
|
1704
1714
|
:before_feature,
|
|
@@ -1738,8 +1748,9 @@ module Cucumber
|
|
|
1738
1748
|
:after_examples_array,
|
|
1739
1749
|
:after_feature_element,
|
|
1740
1750
|
:after_feature,
|
|
1741
|
-
:after_features
|
|
1751
|
+
:after_features
|
|
1742
1752
|
])
|
|
1753
|
+
# rubocop:enable AlignArray
|
|
1743
1754
|
end
|
|
1744
1755
|
end
|
|
1745
1756
|
|
|
@@ -1768,6 +1779,7 @@ module Cucumber
|
|
|
1768
1779
|
end
|
|
1769
1780
|
end
|
|
1770
1781
|
|
|
1782
|
+
# rubocop:disable AlignArray
|
|
1771
1783
|
expect( formatter.legacy_messages ).to eq([
|
|
1772
1784
|
:before_features,
|
|
1773
1785
|
:before_feature,
|
|
@@ -1788,8 +1800,9 @@ module Cucumber
|
|
|
1788
1800
|
:after_steps,
|
|
1789
1801
|
:after_feature_element,
|
|
1790
1802
|
:after_feature,
|
|
1791
|
-
:after_features
|
|
1792
|
-
|
|
1803
|
+
:after_features
|
|
1804
|
+
])
|
|
1805
|
+
# rubocop:enable AlignArray
|
|
1793
1806
|
end
|
|
1794
1807
|
end
|
|
1795
1808
|
|
|
@@ -1816,6 +1829,7 @@ module Cucumber
|
|
|
1816
1829
|
end
|
|
1817
1830
|
end
|
|
1818
1831
|
|
|
1832
|
+
# rubocop:disable AlignArray
|
|
1819
1833
|
expect( formatter.legacy_messages ).to eq([
|
|
1820
1834
|
:before_features,
|
|
1821
1835
|
:before_feature,
|
|
@@ -1836,8 +1850,9 @@ module Cucumber
|
|
|
1836
1850
|
:exception,
|
|
1837
1851
|
:after_feature_element,
|
|
1838
1852
|
:after_feature,
|
|
1839
|
-
:after_features
|
|
1853
|
+
:after_features
|
|
1840
1854
|
])
|
|
1855
|
+
# rubocop:enable AlignArray
|
|
1841
1856
|
end
|
|
1842
1857
|
|
|
1843
1858
|
it 'prints the exception after the examples table row' do
|
|
@@ -1858,6 +1873,7 @@ module Cucumber
|
|
|
1858
1873
|
end
|
|
1859
1874
|
end
|
|
1860
1875
|
|
|
1876
|
+
# rubocop:disable AlignArray
|
|
1861
1877
|
expect( formatter.legacy_messages ).to eq([
|
|
1862
1878
|
:before_features,
|
|
1863
1879
|
:before_feature,
|
|
@@ -1897,8 +1913,9 @@ module Cucumber
|
|
|
1897
1913
|
:after_examples_array,
|
|
1898
1914
|
:after_feature_element,
|
|
1899
1915
|
:after_feature,
|
|
1900
|
-
:after_features
|
|
1916
|
+
:after_features
|
|
1901
1917
|
])
|
|
1918
|
+
# rubocop:enable AlignArray
|
|
1902
1919
|
end
|
|
1903
1920
|
end
|
|
1904
1921
|
|
|
@@ -1925,6 +1942,7 @@ module Cucumber
|
|
|
1925
1942
|
end
|
|
1926
1943
|
end
|
|
1927
1944
|
|
|
1945
|
+
# rubocop:disable AlignArray
|
|
1928
1946
|
expect( formatter.legacy_messages ).to eq([
|
|
1929
1947
|
:before_features,
|
|
1930
1948
|
:before_feature,
|
|
@@ -1945,40 +1963,9 @@ module Cucumber
|
|
|
1945
1963
|
:exception,
|
|
1946
1964
|
:after_feature_element,
|
|
1947
1965
|
:after_feature,
|
|
1948
|
-
:after_features
|
|
1949
|
-
])
|
|
1950
|
-
end
|
|
1951
|
-
end
|
|
1952
|
-
|
|
1953
|
-
context 'with an exception in an after hook but no steps' do
|
|
1954
|
-
it 'prints the exception after the scenario name' do
|
|
1955
|
-
filters = [
|
|
1956
|
-
Filters::ActivateSteps.new(step_match_search, runtime.configuration),
|
|
1957
|
-
Filters::ApplyAfterHooks.new(FailingAfterHook.new),
|
|
1958
|
-
AddBeforeAndAfterHooks.new
|
|
1959
|
-
]
|
|
1960
|
-
execute_gherkin(filters) do
|
|
1961
|
-
feature do
|
|
1962
|
-
scenario do
|
|
1963
|
-
end
|
|
1964
|
-
end
|
|
1965
|
-
end
|
|
1966
|
-
|
|
1967
|
-
expect( formatter.legacy_messages ).to eq([
|
|
1968
|
-
:before_features,
|
|
1969
|
-
:before_feature,
|
|
1970
|
-
:before_tags,
|
|
1971
|
-
:after_tags,
|
|
1972
|
-
:feature_name,
|
|
1973
|
-
:before_feature_element,
|
|
1974
|
-
:before_tags,
|
|
1975
|
-
:after_tags,
|
|
1976
|
-
:scenario_name,
|
|
1977
|
-
:exception,
|
|
1978
|
-
:after_feature_element,
|
|
1979
|
-
:after_feature,
|
|
1980
|
-
:after_features,
|
|
1966
|
+
:after_features
|
|
1981
1967
|
])
|
|
1968
|
+
# rubocop:enable AlignArray
|
|
1982
1969
|
end
|
|
1983
1970
|
end
|
|
1984
1971
|
|
|
@@ -2000,10 +1987,12 @@ module Cucumber
|
|
|
2000
1987
|
execute_gherkin(filters) do
|
|
2001
1988
|
feature do
|
|
2002
1989
|
scenario do
|
|
1990
|
+
step 'passing'
|
|
2003
1991
|
end
|
|
2004
1992
|
end
|
|
2005
1993
|
end
|
|
2006
1994
|
|
|
1995
|
+
# rubocop:disable AlignArray
|
|
2007
1996
|
expect( formatter.legacy_messages ).to eq([
|
|
2008
1997
|
:before_features,
|
|
2009
1998
|
:before_feature,
|
|
@@ -2017,8 +2006,9 @@ module Cucumber
|
|
|
2017
2006
|
:exception,
|
|
2018
2007
|
:after_feature_element,
|
|
2019
2008
|
:after_feature,
|
|
2020
|
-
:after_features
|
|
2009
|
+
:after_features
|
|
2021
2010
|
])
|
|
2011
|
+
# rubocop:enable AlignArray
|
|
2022
2012
|
end
|
|
2023
2013
|
end
|
|
2024
2014
|
|
|
@@ -2044,7 +2034,7 @@ module Cucumber
|
|
|
2044
2034
|
end
|
|
2045
2035
|
end
|
|
2046
2036
|
end
|
|
2047
|
-
|
|
2037
|
+
# rubocop:disable AlignArray
|
|
2048
2038
|
expect( formatter.legacy_messages ).to eq([
|
|
2049
2039
|
:before_features,
|
|
2050
2040
|
:before_feature,
|
|
@@ -2065,15 +2055,16 @@ module Cucumber
|
|
|
2065
2055
|
:after_steps,
|
|
2066
2056
|
:after_feature_element,
|
|
2067
2057
|
:after_feature,
|
|
2068
|
-
:after_features
|
|
2058
|
+
:after_features
|
|
2069
2059
|
])
|
|
2060
|
+
# rubocop:enable AlignArray
|
|
2070
2061
|
end
|
|
2071
2062
|
end
|
|
2072
2063
|
end
|
|
2073
2064
|
|
|
2074
2065
|
describe 'before_step_result message' do
|
|
2075
2066
|
context 'when the step matches' do
|
|
2076
|
-
it
|
|
2067
|
+
it 'sends the step match to the formatter' do
|
|
2077
2068
|
expect(formatter).to receive(:before_step_result) do |_, step_match, *|
|
|
2078
2069
|
expect(step_match).to be_a SimpleStepMatch
|
|
2079
2070
|
end
|
|
@@ -2088,7 +2079,7 @@ module Cucumber
|
|
|
2088
2079
|
end
|
|
2089
2080
|
|
|
2090
2081
|
context "when the step doesn't match" do
|
|
2091
|
-
it
|
|
2082
|
+
it 'sends a null object to the formatter' do
|
|
2092
2083
|
end
|
|
2093
2084
|
end
|
|
2094
2085
|
end
|
|
@@ -2106,7 +2097,7 @@ module Cucumber
|
|
|
2106
2097
|
end
|
|
2107
2098
|
end
|
|
2108
2099
|
|
|
2109
|
-
context
|
|
2100
|
+
context 'after_feature_element callback' do
|
|
2110
2101
|
it 'passes an object reflecting the status of the scenario' do
|
|
2111
2102
|
expect( formatter ).to receive(:after_feature_element).once do |scenario|
|
|
2112
2103
|
expect( scenario ).to be_failed
|
|
@@ -2123,7 +2114,7 @@ module Cucumber
|
|
|
2123
2114
|
end
|
|
2124
2115
|
|
|
2125
2116
|
context 'in strict mode' do
|
|
2126
|
-
let(:runtime) { Runtime.new strict:
|
|
2117
|
+
let(:runtime) { Runtime.new strict: Cucumber::Core::Test::Result::StrictConfiguration.new([:undefined]) }
|
|
2127
2118
|
|
|
2128
2119
|
it 'passes an exception to the formatter for undefined steps' do
|
|
2129
2120
|
expect( formatter ).to receive(:exception) do |exception|
|
|
@@ -2156,18 +2147,20 @@ module Cucumber
|
|
|
2156
2147
|
]
|
|
2157
2148
|
end
|
|
2158
2149
|
|
|
2159
|
-
def method_missing(message, *
|
|
2150
|
+
def method_missing(message, *_args)
|
|
2160
2151
|
@messages << message
|
|
2161
2152
|
end
|
|
2162
2153
|
|
|
2163
|
-
def respond_to_missing?(
|
|
2154
|
+
def respond_to_missing?(_name, _include_private = false)
|
|
2164
2155
|
true
|
|
2165
2156
|
end
|
|
2166
2157
|
end
|
|
2167
2158
|
|
|
2168
2159
|
def execute_gherkin(filters = default_filters, &gherkin)
|
|
2169
|
-
runner = Core::Test::Runner.new(
|
|
2160
|
+
runner = Core::Test::Runner.new(events)
|
|
2170
2161
|
compile [gherkin(&gherkin)], runner, filters
|
|
2162
|
+
events.test_run_finished
|
|
2163
|
+
self
|
|
2171
2164
|
end
|
|
2172
2165
|
|
|
2173
2166
|
def default_filters
|