cucumber 3.0.1 → 3.2.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 +5 -5
- data/CHANGELOG.md +84 -4
- data/CONTRIBUTING.md +3 -4
- data/README.md +12 -12
- data/lib/autotest/cucumber.rb +1 -0
- data/lib/autotest/cucumber_mixin.rb +1 -0
- 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 +1 -0
- data/lib/cucumber.rb +1 -0
- data/lib/cucumber/cli/configuration.rb +1 -0
- data/lib/cucumber/cli/main.rb +2 -2
- data/lib/cucumber/cli/options.rb +63 -55
- data/lib/cucumber/cli/profile_loader.rb +5 -7
- data/lib/cucumber/cli/rerun_file.rb +1 -0
- data/lib/cucumber/configuration.rb +8 -7
- data/lib/cucumber/constantize.rb +6 -5
- data/lib/cucumber/core_ext/string.rb +1 -0
- data/lib/cucumber/deprecate.rb +1 -1
- data/lib/cucumber/encoding.rb +2 -1
- data/lib/cucumber/errors.rb +2 -1
- data/lib/cucumber/events.rb +1 -2
- data/lib/cucumber/events/gherkin_source_read.rb +1 -4
- data/lib/cucumber/events/step_activated.rb +4 -5
- data/lib/cucumber/events/step_definition_registered.rb +4 -8
- data/lib/cucumber/events/test_case_finished.rb +0 -4
- data/lib/cucumber/events/test_case_started.rb +0 -4
- data/lib/cucumber/events/test_run_finished.rb +2 -3
- data/lib/cucumber/events/test_run_started.rb +2 -4
- data/lib/cucumber/events/test_step_finished.rb +0 -6
- data/lib/cucumber/events/test_step_started.rb +1 -7
- data/lib/cucumber/file_specs.rb +2 -1
- data/lib/cucumber/filters.rb +1 -0
- data/lib/cucumber/filters/activate_steps.rb +1 -1
- 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 +2 -1
- data/lib/cucumber/filters/gated_receiver.rb +1 -2
- data/lib/cucumber/filters/prepare_world.rb +2 -5
- data/lib/cucumber/filters/quit.rb +2 -4
- data/lib/cucumber/filters/randomizer.rb +6 -7
- data/lib/cucumber/filters/retry.rb +2 -2
- data/lib/cucumber/filters/tag_limits.rb +2 -2
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
- data/lib/cucumber/filters/tag_limits/verifier.rb +1 -2
- data/lib/cucumber/formatter/ansicolor.rb +13 -12
- data/lib/cucumber/formatter/backtrace_filter.rb +1 -2
- data/lib/cucumber/formatter/console.rb +11 -12
- data/lib/cucumber/formatter/console_counts.rb +4 -4
- data/lib/cucumber/formatter/console_issues.rb +3 -3
- data/lib/cucumber/formatter/duration.rb +1 -0
- data/lib/cucumber/formatter/duration_extractor.rb +1 -1
- data/lib/cucumber/formatter/fail_fast.rb +9 -6
- data/lib/cucumber/formatter/fanout.rb +1 -3
- data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
- data/lib/cucumber/formatter/html.rb +28 -32
- data/lib/cucumber/formatter/html_builder.rb +3 -2
- data/lib/cucumber/formatter/http_io.rb +146 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -3
- data/lib/cucumber/formatter/interceptor.rb +18 -5
- data/lib/cucumber/formatter/io.rb +18 -11
- data/lib/cucumber/formatter/json.rb +11 -4
- data/lib/cucumber/formatter/json_pretty.rb +1 -1
- data/lib/cucumber/formatter/junit.rb +22 -17
- data/lib/cucumber/formatter/pretty.rb +4 -3
- data/lib/cucumber/formatter/progress.rb +3 -2
- data/lib/cucumber/formatter/rerun.rb +2 -1
- data/lib/cucumber/formatter/stepdefs.rb +1 -0
- data/lib/cucumber/formatter/steps.rb +2 -2
- data/lib/cucumber/formatter/summary.rb +1 -2
- data/lib/cucumber/formatter/unicode.rb +2 -2
- data/lib/cucumber/formatter/usage.rb +22 -19
- data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +86 -85
- data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
- data/lib/cucumber/gherkin/i18n.rb +1 -0
- data/lib/cucumber/gherkin/steps_parser.rb +1 -0
- data/lib/cucumber/glue/dsl.rb +1 -0
- data/lib/cucumber/glue/hook.rb +1 -0
- data/lib/cucumber/glue/invoke_in_world.rb +3 -3
- data/lib/cucumber/glue/proto_world.rb +10 -9
- data/lib/cucumber/glue/registry_and_more.rb +13 -12
- data/lib/cucumber/glue/snippet.rb +1 -5
- data/lib/cucumber/glue/step_definition.rb +10 -10
- data/lib/cucumber/glue/world_factory.rb +1 -3
- data/lib/cucumber/hooks.rb +13 -3
- data/lib/cucumber/load_path.rb +1 -0
- data/lib/cucumber/multiline_argument.rb +3 -3
- data/lib/cucumber/multiline_argument/data_table.rb +16 -20
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +7 -11
- data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
- data/lib/cucumber/platform.rb +2 -1
- data/lib/cucumber/project_initializer.rb +1 -1
- data/lib/cucumber/rake/task.rb +8 -5
- data/lib/cucumber/rspec/disable_option_parser.rb +1 -0
- data/lib/cucumber/rspec/doubles.rb +1 -0
- data/lib/cucumber/running_test_case.rb +2 -1
- data/lib/cucumber/runtime.rb +6 -6
- data/lib/cucumber/runtime/after_hooks.rb +1 -0
- data/lib/cucumber/runtime/before_hooks.rb +1 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +8 -7
- data/lib/cucumber/runtime/step_hooks.rb +2 -0
- data/lib/cucumber/runtime/support_code.rb +3 -7
- data/lib/cucumber/runtime/user_interface.rb +2 -3
- data/lib/cucumber/step_argument.rb +1 -0
- data/lib/cucumber/step_definition_light.rb +2 -1
- data/lib/cucumber/step_definitions.rb +2 -1
- data/lib/cucumber/step_match.rb +9 -8
- data/lib/cucumber/step_match_search.rb +8 -9
- data/lib/cucumber/term/ansicolor.rb +30 -30
- data/lib/cucumber/unit.rb +1 -0
- data/lib/cucumber/version +1 -1
- data/lib/simplecov_setup.rb +1 -0
- metadata +64 -659
- data/.coveralls.yml +0 -1
- data/.cucumberproignore +0 -6
- data/.gitattributes +0 -32
- data/.github/ISSUE_TEMPLATE.md +0 -48
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -40
- data/.rspec +0 -1
- data/.rubocop.yml +0 -13
- data/.rubocop_todo.yml +0 -991
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -70
- data/.yardopts +0 -1
- data/Gemfile +0 -28
- data/Rakefile +0 -32
- data/appveyor.yml +0 -27
- data/cucumber.gemspec +0 -52
- data/cucumber.yml +0 -19
- data/examples/i18n/README.textile +0 -3
- data/examples/i18n/Rakefile +0 -33
- data/examples/i18n/ar/Rakefile +0 -6
- data/examples/i18n/ar/features/addition.feature +0 -17
- data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/ar/lib/calculator.rb +0 -11
- data/examples/i18n/bg/Rakefile +0 -6
- data/examples/i18n/bg/features/addition.feature +0 -12
- data/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
- data/examples/i18n/bg/features/division.feature +0 -17
- data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +0 -24
- data/examples/i18n/bg/features/support/env.rb +0 -10
- data/examples/i18n/bg/features/support/world.rb +0 -8
- data/examples/i18n/bg/lib/calculator.rb +0 -25
- data/examples/i18n/ca/Rakefile +0 -6
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -26
- data/examples/i18n/ca/features/suma.feature +0 -17
- data/examples/i18n/ca/lib/calculadora.rb +0 -16
- data/examples/i18n/cs/Rakefile +0 -6
- data/examples/i18n/cs/features/addition.feature +0 -17
- data/examples/i18n/cs/features/division.feature +0 -11
- data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/cs/lib/calculator.rb +0 -14
- data/examples/i18n/da/Rakefile +0 -6
- data/examples/i18n/da/features/sammenlaegning.feature +0 -18
- data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +0 -29
- data/examples/i18n/da/lib/lommeregner.rb +0 -11
- data/examples/i18n/de/Rakefile +0 -6
- data/examples/i18n/de/features/addition.feature +0 -17
- data/examples/i18n/de/features/division.feature +0 -10
- data/examples/i18n/de/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/de/lib/calculator.rb +0 -14
- data/examples/i18n/el/Rakefile +0 -6
- data/examples/i18n/el/features/addition.feature +0 -17
- data/examples/i18n/el/features/division.feature +0 -10
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/el/lib/calculator.rb +0 -14
- data/examples/i18n/en-lol/Rakefile +0 -4
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
- data/examples/i18n/en-lol/features/stuffing.feature +0 -8
- data/examples/i18n/en-lol/features/support/env.rb +0 -11
- data/examples/i18n/en-lol/lib/basket.rb +0 -12
- data/examples/i18n/en-lol/lib/belly.rb +0 -11
- data/examples/i18n/en/Rakefile +0 -6
- data/examples/i18n/en/features/addition.feature +0 -17
- data/examples/i18n/en/features/division.feature +0 -10
- data/examples/i18n/en/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/en/lib/calculator.rb +0 -14
- data/examples/i18n/eo/Rakefile +0 -6
- data/examples/i18n/eo/features/adicio.feature +0 -17
- data/examples/i18n/eo/features/divido.feature +0 -10
- data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/eo/lib/calculator.rb +0 -14
- data/examples/i18n/es/Rakefile +0 -6
- data/examples/i18n/es/features/adicion.feature +0 -17
- data/examples/i18n/es/features/step_definitions/calculador_steps.rb +0 -26
- data/examples/i18n/es/lib/calculador.rb +0 -14
- data/examples/i18n/et/Rakefile +0 -6
- data/examples/i18n/et/features/jagamine.feature +0 -10
- data/examples/i18n/et/features/liitmine.feature +0 -17
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -29
- data/examples/i18n/et/lib/kalkulaator.rb +0 -14
- data/examples/i18n/fi/Rakefile +0 -6
- data/examples/i18n/fi/features/jakolasku.feature +0 -10
- data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +0 -29
- data/examples/i18n/fi/features/yhteenlasku.feature +0 -17
- data/examples/i18n/fi/lib/laskin.rb +0 -14
- data/examples/i18n/fr/Rakefile +0 -8
- data/examples/i18n/fr/features/addition.feature +0 -18
- data/examples/i18n/fr/features/addition2.feature +0 -17
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -32
- data/examples/i18n/fr/features/support/env.rb +0 -10
- data/examples/i18n/fr/lib/calculatrice.rb +0 -10
- data/examples/i18n/he/Rakefile +0 -6
- data/examples/i18n/he/features/addition.feature +0 -17
- data/examples/i18n/he/features/division.feature +0 -10
- data/examples/i18n/he/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/he/lib/calculator.rb +0 -15
- data/examples/i18n/hi/Rakefile +0 -6
- data/examples/i18n/hi/features/addition.feature +0 -16
- data/examples/i18n/hi/features/division.feature +0 -10
- data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/hi/lib/calculator.rb +0 -15
- data/examples/i18n/ht/Rakefile +0 -6
- data/examples/i18n/ht/features/adisyon.feature +0 -17
- data/examples/i18n/ht/features/divizyon.feature +0 -10
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +0 -29
- data/examples/i18n/ht/lib/kalkilatris.rb +0 -14
- data/examples/i18n/hu/Rakefile +0 -6
- data/examples/i18n/hu/features/osszeadas.feature +0 -17
- data/examples/i18n/hu/features/osztas.feature +0 -10
- data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +0 -30
- data/examples/i18n/hu/lib/calculator.rb +0 -14
- data/examples/i18n/id/Rakefile +0 -6
- data/examples/i18n/id/features/addition.feature +0 -17
- data/examples/i18n/id/features/division.feature +0 -10
- data/examples/i18n/id/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/id/lib/calculator.rb +0 -14
- data/examples/i18n/it/Rakefile +0 -6
- data/examples/i18n/it/features/somma.feature +0 -11
- data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +0 -29
- data/examples/i18n/it/lib/calcolatrice.rb +0 -11
- data/examples/i18n/ja/Rakefile +0 -6
- data/examples/i18n/ja/features/addition.feature +0 -17
- data/examples/i18n/ja/features/division.feature +0 -10
- data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/ja/features/support/env.rb +0 -10
- data/examples/i18n/ja/lib/calculator.rb +0 -14
- data/examples/i18n/ko/Rakefile +0 -6
- data/examples/i18n/ko/features/addition.feature +0 -17
- data/examples/i18n/ko/features/division.feature +0 -11
- data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/ko/lib/calculator.rb +0 -14
- data/examples/i18n/lt/Rakefile +0 -6
- data/examples/i18n/lt/features/addition.feature +0 -17
- data/examples/i18n/lt/features/division.feature +0 -10
- data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/lt/lib/calculator.rb +0 -14
- data/examples/i18n/lv/Rakefile +0 -6
- data/examples/i18n/lv/features/addition.feature +0 -17
- data/examples/i18n/lv/features/division.feature +0 -10
- data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/lv/lib/calculator.rb +0 -14
- data/examples/i18n/no/Rakefile +0 -6
- data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +0 -17
- data/examples/i18n/no/features/summering.feature +0 -19
- data/examples/i18n/no/features/support/env.rb +0 -11
- data/examples/i18n/no/lib/kalkulator.rb +0 -11
- data/examples/i18n/pl/Rakefile +0 -6
- data/examples/i18n/pl/features/addition.feature +0 -17
- data/examples/i18n/pl/features/division.feature +0 -10
- data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/pl/features/support/env.rb +0 -10
- data/examples/i18n/pl/lib/calculator.rb +0 -14
- data/examples/i18n/pt/Rakefile +0 -6
- data/examples/i18n/pt/features/adicao.feature +0 -11
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
- data/examples/i18n/pt/features/support/env.rb +0 -10
- data/examples/i18n/pt/lib/calculadora.rb +0 -10
- data/examples/i18n/ro/Rakefile +0 -6
- data/examples/i18n/ro/features/adunare.feature +0 -12
- data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +0 -26
- data/examples/i18n/ro/lib/calculator.rb +0 -11
- data/examples/i18n/ru/Rakefile +0 -6
- data/examples/i18n/ru/features/addition.feature +0 -11
- data/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/ru/features/division.feature +0 -16
- data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/ru/features/support/env.rb +0 -10
- data/examples/i18n/ru/features/support/world.rb +0 -8
- data/examples/i18n/ru/lib/calculator.rb +0 -25
- data/examples/i18n/sk/Rakefile +0 -6
- data/examples/i18n/sk/features/addition.feature +0 -17
- data/examples/i18n/sk/features/division.feature +0 -10
- data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/sk/lib/calculator.rb +0 -14
- data/examples/i18n/sr-Cyrl/Rakefile +0 -6
- data/examples/i18n/sr-Cyrl/features/sabiranje.feature +0 -18
- data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +0 -20
- data/examples/i18n/sr-Cyrl/features/support/env.rb +0 -10
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +0 -12
- data/examples/i18n/sr-Latn/Rakefile +0 -6
- data/examples/i18n/sr-Latn/features/sabiranje.feature +0 -18
- data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/sr-Latn/lib/calculator.rb +0 -12
- data/examples/i18n/sv/Rakefile +0 -6
- data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +0 -29
- data/examples/i18n/sv/features/summering.feature +0 -18
- data/examples/i18n/sv/lib/kalkulator.rb +0 -11
- data/examples/i18n/tr/Rakefile +0 -6
- data/examples/i18n/tr/features/bolme.feature +0 -10
- data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +0 -29
- data/examples/i18n/tr/features/toplama.feature +0 -18
- data/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
- data/examples/i18n/uk/Rakefile +0 -6
- data/examples/i18n/uk/features/addition.feature +0 -11
- data/examples/i18n/uk/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/uk/features/division.feature +0 -16
- data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/uk/features/support/env.rb +0 -10
- data/examples/i18n/uk/features/support/world.rb +0 -8
- data/examples/i18n/uk/lib/calculator.rb +0 -25
- data/examples/i18n/uz/Rakefile +0 -6
- data/examples/i18n/uz/features/addition.feature +0 -10
- data/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/uz/features/division.feature +0 -17
- data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/uz/features/support/env.rb +0 -10
- data/examples/i18n/uz/features/support/world.rb +0 -8
- data/examples/i18n/uz/lib/calculator.rb +0 -25
- data/examples/i18n/zh-CN/Rakefile +0 -4
- data/examples/i18n/zh-CN/features/addition.feature +0 -18
- data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +0 -31
- data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
- data/examples/i18n/zh-TW/Rakefile +0 -4
- data/examples/i18n/zh-TW/features/addition.feature +0 -17
- data/examples/i18n/zh-TW/features/division.feature +0 -11
- data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/zh-TW/lib/calculator.rb +0 -14
- data/examples/rspec_doubles/Rakefile +0 -4
- data/examples/rspec_doubles/features/mocking.feature +0 -9
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +0 -19
- data/examples/rspec_doubles/features/support/env.rb +0 -12
- data/examples/sinatra/README.textile +0 -13
- data/examples/sinatra/Rakefile +0 -6
- data/examples/sinatra/app.rb +0 -14
- data/examples/sinatra/features/add.feature +0 -11
- data/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
- data/examples/sinatra/features/support/env.rb +0 -15
- data/examples/sinatra/views/add.erb +0 -7
- data/examples/sinatra/views/layout.erb +0 -8
- data/examples/tcl/README.textile +0 -11
- data/examples/tcl/Rakefile +0 -6
- data/examples/tcl/features/fibonnacci.feature +0 -17
- data/examples/tcl/features/step_definitions/fib_steps.rb +0 -7
- data/examples/tcl/features/support/env.rb +0 -7
- data/examples/tcl/src/fib.tcl +0 -3
- data/examples/test_unit/Gemfile +0 -4
- data/examples/test_unit/Rakefile +0 -6
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -20
- data/examples/test_unit/features/test_unit.feature +0 -9
- data/examples/watir/README.textile +0 -16
- data/examples/watir/Rakefile +0 -12
- data/examples/watir/cucumber.yml +0 -1
- data/examples/watir/features/search.feature +0 -12
- data/examples/watir/features/step_definitions/search_steps.rb +0 -27
- data/examples/watir/features/support/env.rb +0 -39
- data/examples/watir/features/support/screenshots.rb +0 -47
- data/features/docs/api/list_step_defs_as_json.feature +0 -64
- data/features/docs/api/listen_for_events.feature +0 -59
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -27
- data/features/docs/cli/backtraces.feature +0 -36
- data/features/docs/cli/dry_run.feature +0 -73
- data/features/docs/cli/exclude_files.feature +0 -18
- data/features/docs/cli/execute_with_tag_filter.feature +0 -119
- data/features/docs/cli/fail_fast.feature +0 -48
- data/features/docs/cli/finding_steps.feature +0 -28
- data/features/docs/cli/help.feature +0 -8
- data/features/docs/cli/i18n.feature +0 -42
- data/features/docs/cli/randomize.feature +0 -140
- data/features/docs/cli/require.feature +0 -27
- data/features/docs/cli/retry_failing_tests.feature +0 -92
- data/features/docs/cli/run_scenarios_matching_name.feature +0 -105
- data/features/docs/cli/run_specific_scenarios.feature +0 -77
- data/features/docs/cli/showing_differences.feature +0 -43
- data/features/docs/cli/specifying_multiple_formatters.feature +0 -68
- data/features/docs/cli/strict_mode.feature +0 -70
- data/features/docs/defining_steps/ambiguous_steps.feature +0 -89
- data/features/docs/defining_steps/nested_steps.feature +0 -181
- data/features/docs/defining_steps/nested_steps_i18n.feature +0 -37
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -56
- data/features/docs/defining_steps/one_line_step_definitions.feature +0 -65
- data/features/docs/defining_steps/printing_messages.feature +0 -147
- data/features/docs/defining_steps/skip_scenario.feature +0 -31
- data/features/docs/defining_steps/snippets.feature +0 -56
- data/features/docs/defining_steps/table_diffing.feature +0 -50
- data/features/docs/events/gherkin_source_read_event.feature +0 -43
- data/features/docs/events/step_activated_event.feature +0 -36
- data/features/docs/events/step_definition_registered_event.feature +0 -29
- data/features/docs/events/test_case_finished_event.feature +0 -35
- data/features/docs/events/test_case_started_event.feature +0 -54
- data/features/docs/events/test_run_finished_event.feature +0 -40
- data/features/docs/events/test_run_started_event.feature +0 -41
- data/features/docs/events/test_step_finished_event.feature +0 -47
- data/features/docs/events/test_step_started_event.feature +0 -43
- data/features/docs/exception_in_after_hook.feature +0 -127
- data/features/docs/exception_in_after_step_hook.feature +0 -104
- data/features/docs/exception_in_around_hook.feature +0 -80
- data/features/docs/exception_in_before_hook.feature +0 -98
- data/features/docs/extending_cucumber/custom_filter.feature +0 -29
- data/features/docs/extending_cucumber/custom_formatter.feature +0 -94
- data/features/docs/formatters/api_methods.feature +0 -37
- data/features/docs/formatters/html_formatter.feature +0 -91
- data/features/docs/formatters/json_formatter.feature +0 -767
- data/features/docs/formatters/junit_formatter.feature +0 -455
- data/features/docs/formatters/pretty_formatter.feature +0 -74
- data/features/docs/formatters/progress_formatter.feature +0 -32
- data/features/docs/formatters/rerun_formatter.feature +0 -190
- data/features/docs/formatters/summary_formatter.feature +0 -35
- data/features/docs/formatters/usage_formatter.feature +0 -101
- data/features/docs/getting_started.feature +0 -28
- data/features/docs/gherkin/background.feature +0 -548
- data/features/docs/gherkin/doc_strings.feature +0 -76
- data/features/docs/gherkin/expand_option_for_outlines.feature +0 -47
- data/features/docs/gherkin/language_from_header.feature +0 -32
- data/features/docs/gherkin/outlines.feature +0 -158
- data/features/docs/gherkin/unicode_table.feature +0 -33
- data/features/docs/gherkin/using_descriptions.feature +0 -83
- data/features/docs/gherkin/using_star_notation.feature +0 -37
- data/features/docs/iso-8859-1.feature +0 -6
- data/features/docs/post_configuration_hook.feature +0 -33
- data/features/docs/profiles.feature +0 -120
- data/features/docs/rake_task.feature +0 -146
- data/features/docs/raketask.feature +0 -46
- data/features/docs/work_in_progress.feature +0 -157
- data/features/docs/writing_support_code/after_hooks.feature +0 -102
- data/features/docs/writing_support_code/after_step_hooks.feature +0 -55
- data/features/docs/writing_support_code/around_hooks.feature +0 -266
- data/features/docs/writing_support_code/before_hook.feature +0 -66
- data/features/docs/writing_support_code/hook_order.feature +0 -63
- data/features/docs/writing_support_code/load_path.feature +0 -17
- data/features/docs/writing_support_code/parameter_types.feature +0 -69
- data/features/docs/writing_support_code/state.feature +0 -32
- data/features/docs/writing_support_code/tagged_hooks.feature +0 -95
- data/features/docs/writing_support_code/world.feature +0 -129
- data/features/lib/step_definitions/aruba_steps.rb +0 -21
- data/features/lib/step_definitions/cli_steps.rb +0 -4
- data/features/lib/step_definitions/cucumber_steps.rb +0 -75
- data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -16
- data/features/lib/step_definitions/json_steps.rb +0 -8
- data/features/lib/step_definitions/junit_steps.rb +0 -14
- data/features/lib/step_definitions/language_steps.rb +0 -9
- data/features/lib/step_definitions/profile_steps.rb +0 -16
- data/features/lib/step_definitions/retry_steps.rb +0 -55
- data/features/lib/step_definitions/ruby_steps.rb +0 -4
- data/features/lib/support/env.rb +0 -22
- data/features/lib/support/fake_wire_server.rb +0 -94
- data/features/lib/support/feature_factory.rb +0 -68
- data/features/lib/support/normalise_output.rb +0 -52
- data/features/lib/support/parameter_types.rb +0 -5
- data/gem_tasks/contributors.rake +0 -19
- data/gem_tasks/cov.rake +0 -6
- data/gem_tasks/downloads.rb +0 -8
- data/gem_tasks/environment.rake +0 -4
- data/gem_tasks/examples.rake +0 -12
- data/gem_tasks/fix_cr_lf.rake +0 -22
- data/gem_tasks/flog.rake +0 -5
- data/gem_tasks/rspec.rake +0 -7
- data/gem_tasks/sass.rake +0 -5
- data/gem_tasks/stats +0 -16
- data/gem_tasks/versions.txt +0 -74
- data/scripts/invite-collaborator +0 -40
- data/scripts/update-changelog +0 -86
- data/spec/cucumber/cli/configuration_spec.rb +0 -446
- data/spec/cucumber/cli/main_spec.rb +0 -84
- data/spec/cucumber/cli/options_spec.rb +0 -445
- data/spec/cucumber/cli/profile_loader_spec.rb +0 -66
- data/spec/cucumber/cli/rerun_spec.rb +0 -86
- data/spec/cucumber/configuration_spec.rb +0 -148
- data/spec/cucumber/constantize_spec.rb +0 -20
- data/spec/cucumber/events_spec.rb +0 -9
- data/spec/cucumber/file_specs_spec.rb +0 -61
- data/spec/cucumber/filters/activate_steps_spec.rb +0 -152
- data/spec/cucumber/filters/gated_receiver_spec.rb +0 -48
- data/spec/cucumber/filters/retry_spec.rb +0 -98
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +0 -39
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +0 -58
- data/spec/cucumber/filters/tag_limits_spec.rb +0 -60
- data/spec/cucumber/formatter/ansicolor_spec.rb +0 -33
- data/spec/cucumber/formatter/backtrace_filter_spec.rb +0 -32
- data/spec/cucumber/formatter/console_counts_spec.rb +0 -14
- data/spec/cucumber/formatter/duration_spec.rb +0 -23
- data/spec/cucumber/formatter/fail_fast_spec.rb +0 -88
- data/spec/cucumber/formatter/html_spec.rb +0 -543
- data/spec/cucumber/formatter/interceptor_spec.rb +0 -137
- data/spec/cucumber/formatter/json_spec.rb +0 -815
- data/spec/cucumber/formatter/junit_spec.rb +0 -251
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2175
- data/spec/cucumber/formatter/pretty_spec.rb +0 -907
- data/spec/cucumber/formatter/progress_spec.rb +0 -170
- data/spec/cucumber/formatter/rerun_spec.rb +0 -97
- data/spec/cucumber/formatter/spec_helper.rb +0 -84
- data/spec/cucumber/glue/proto_world_spec.rb +0 -63
- data/spec/cucumber/glue/registry_and_more_spec.rb +0 -213
- data/spec/cucumber/glue/snippet_spec.rb +0 -174
- data/spec/cucumber/glue/step_definition_spec.rb +0 -207
- data/spec/cucumber/hooks_spec.rb +0 -31
- data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -653
- data/spec/cucumber/project_initializer_spec.rb +0 -88
- data/spec/cucumber/rake/forked_spec.rb +0 -58
- data/spec/cucumber/rake/task_spec.rb +0 -86
- data/spec/cucumber/running_test_case_spec.rb +0 -140
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -8
- data/spec/cucumber/runtime/support_code_spec.rb +0 -17
- data/spec/cucumber/runtime_spec.rb +0 -21
- data/spec/cucumber/sell_cucumbers.feature +0 -19
- data/spec/cucumber/step_argument_spec.rb +0 -19
- data/spec/cucumber/step_match_search_spec.rb +0 -113
- data/spec/cucumber/step_match_spec.rb +0 -86
- data/spec/cucumber/world/pending_spec.rb +0 -48
- data/spec/spec_helper.rb +0 -30
- data/spec/support/standard_step_actions.rb +0 -19
@@ -1,63 +0,0 @@
|
|
1
|
-
@spawn
|
2
|
-
Feature: Hooks execute in defined order
|
3
|
-
|
4
|
-
Background:
|
5
|
-
Given a file named "features/step_definitions/steps.rb" with:
|
6
|
-
"""
|
7
|
-
Given /^background step$/ do; $EventOrder.push(:background_step) end
|
8
|
-
Given /^scenario step$/ do; $EventOrder.push(:scenario_step) end
|
9
|
-
"""
|
10
|
-
And a file named "features/support/hooks.rb" with:
|
11
|
-
"""
|
12
|
-
$EventOrder = []
|
13
|
-
Around('@around') do |scenario,block|
|
14
|
-
$EventOrder.push :around_begin
|
15
|
-
block.call
|
16
|
-
$EventOrder.push :around_end
|
17
|
-
end
|
18
|
-
Before('@before') do
|
19
|
-
$EventOrder.push :before
|
20
|
-
end
|
21
|
-
After('@after') do |scenario|
|
22
|
-
$EventOrder.push :after
|
23
|
-
end
|
24
|
-
at_exit {
|
25
|
-
puts "Event order: #{$EventOrder.join(' ')}"
|
26
|
-
}
|
27
|
-
"""
|
28
|
-
And a file named "features/around_hook_covers_background.feature" with:
|
29
|
-
"""
|
30
|
-
@around
|
31
|
-
Feature: Around hooks cover background steps
|
32
|
-
Background:
|
33
|
-
Given background step
|
34
|
-
Scenario:
|
35
|
-
Given scenario step
|
36
|
-
"""
|
37
|
-
And a file named "features/all_hook_order.feature" with:
|
38
|
-
"""
|
39
|
-
@around
|
40
|
-
@before
|
41
|
-
@after
|
42
|
-
Feature: All hooks execute in expected order
|
43
|
-
Background:
|
44
|
-
Given background step
|
45
|
-
Scenario:
|
46
|
-
Given scenario step
|
47
|
-
"""
|
48
|
-
|
49
|
-
@todo-windows
|
50
|
-
Scenario: Around hooks cover background steps
|
51
|
-
When I run `cucumber -o /dev/null features/around_hook_covers_background.feature`
|
52
|
-
Then the output should contain:
|
53
|
-
"""
|
54
|
-
Event order: around_begin background_step scenario_step around_end
|
55
|
-
"""
|
56
|
-
|
57
|
-
@todo-windows
|
58
|
-
Scenario: All hooks execute in expected order
|
59
|
-
When I run `cucumber -o /dev/null features/all_hook_order.feature`
|
60
|
-
Then the output should contain:
|
61
|
-
"""
|
62
|
-
Event order: around_begin before background_step scenario_step after around_end
|
63
|
-
"""
|
@@ -1,17 +0,0 @@
|
|
1
|
-
Feature: Set up a default load path
|
2
|
-
|
3
|
-
When you're developing a gem, it's convenient if your project's `lib` directory
|
4
|
-
is already in the load path. Cucumber does this for you.
|
5
|
-
|
6
|
-
Scenario: ./lib is included in the $LOAD_PATH
|
7
|
-
Given a file named "features/support/env.rb" with:
|
8
|
-
"""
|
9
|
-
require 'something'
|
10
|
-
"""
|
11
|
-
And a file named "lib/something.rb" with:
|
12
|
-
"""
|
13
|
-
class Something
|
14
|
-
end
|
15
|
-
"""
|
16
|
-
When I run `cucumber`
|
17
|
-
Then it should pass
|
@@ -1,69 +0,0 @@
|
|
1
|
-
Feature: Parameter Types
|
2
|
-
|
3
|
-
Parameter Types allow you to convert primitive string arguments captured in step definitions
|
4
|
-
into more meaningful data types.
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Let's just create a simple feature for testing out parameter types.
|
8
|
-
We also have a Person class that we need to be able to build.
|
9
|
-
|
10
|
-
Given a file named "features/foo.feature" with:
|
11
|
-
"""
|
12
|
-
Feature:
|
13
|
-
Scenario:
|
14
|
-
Given Joe has gone home
|
15
|
-
When Sally contacts Joe
|
16
|
-
"""
|
17
|
-
And a file named "features/step_definitions/steps.rb" with:
|
18
|
-
"""
|
19
|
-
# It works with Regular Expressions
|
20
|
-
Given /([A-Z]\w+) has gone home/ do |person|
|
21
|
-
expect(person.name).to eq 'Joe'
|
22
|
-
end
|
23
|
-
|
24
|
-
# It works with Cucumber Expressions too
|
25
|
-
When "{person} contacts {person}" do |contacter, contactee|
|
26
|
-
expect(contacter.name).to eq 'Sally'
|
27
|
-
expect(contactee.name).to eq 'Joe'
|
28
|
-
end
|
29
|
-
"""
|
30
|
-
And a file named "features/support/env.rb" with:
|
31
|
-
"""
|
32
|
-
class Person
|
33
|
-
attr_reader :name
|
34
|
-
|
35
|
-
def initialize(name)
|
36
|
-
@name = name
|
37
|
-
end
|
38
|
-
end
|
39
|
-
"""
|
40
|
-
|
41
|
-
Scenario: Parameter type defined with ParameterType method
|
42
|
-
This is the most basic way to use a parameter type.
|
43
|
-
|
44
|
-
Given a file named "features/support/parameter_types.rb" with:
|
45
|
-
"""
|
46
|
-
ParameterType(
|
47
|
-
name: 'person',
|
48
|
-
regexp: /[A-Z]\w+/,
|
49
|
-
transformer: -> (name) { Person.new(name) }
|
50
|
-
)
|
51
|
-
"""
|
52
|
-
When I run `cucumber features/foo.feature`
|
53
|
-
Then it should pass
|
54
|
-
|
55
|
-
Scenario: Parameter type defined with ParameterType method
|
56
|
-
If your parameter type's `regexp` is very general, you can tell
|
57
|
-
Cucumber not to suggest its use in snippets:
|
58
|
-
|
59
|
-
Given a file named "features/support/parameter_types.rb" with:
|
60
|
-
"""
|
61
|
-
ParameterType(
|
62
|
-
name: 'person',
|
63
|
-
regexp: /[A-Z]\w+/,
|
64
|
-
transformer: -> (name) { Person.new(name) },
|
65
|
-
use_for_snippets: false
|
66
|
-
)
|
67
|
-
"""
|
68
|
-
When I run `cucumber features/foo.feature`
|
69
|
-
Then it should pass
|
@@ -1,32 +0,0 @@
|
|
1
|
-
Feature: State
|
2
|
-
|
3
|
-
You can pass state between step by setting instance variables,
|
4
|
-
but those instance variables will be gone when the next scenario runs.
|
5
|
-
|
6
|
-
Scenario: Set an ivar in one scenario, use it in the next step
|
7
|
-
Given a file named "features/test.feature" with:
|
8
|
-
"""
|
9
|
-
Feature:
|
10
|
-
Scenario:
|
11
|
-
Given I have set @flag = true
|
12
|
-
Then @flag should be true
|
13
|
-
|
14
|
-
Scenario:
|
15
|
-
Then @flag should be nil
|
16
|
-
"""
|
17
|
-
And a file named "features/step_definitions/steps.rb" with:
|
18
|
-
"""
|
19
|
-
Given /set @flag/ do
|
20
|
-
@flag = true
|
21
|
-
end
|
22
|
-
Then /flag should be true/ do
|
23
|
-
expect(@flag).to be_truthy
|
24
|
-
end
|
25
|
-
Then /flag should be nil/ do
|
26
|
-
expect(@flag).to be_nil
|
27
|
-
end
|
28
|
-
"""
|
29
|
-
When I run `cucumber`
|
30
|
-
Then it should pass
|
31
|
-
|
32
|
-
|
@@ -1,95 +0,0 @@
|
|
1
|
-
Feature: Tagged hooks
|
2
|
-
|
3
|
-
Background:
|
4
|
-
Given the standard step definitions
|
5
|
-
And a file named "features/support/hooks.rb" with:
|
6
|
-
"""
|
7
|
-
Before('not @no-boom') do
|
8
|
-
raise 'boom'
|
9
|
-
end
|
10
|
-
"""
|
11
|
-
And a file named "features/f.feature" with:
|
12
|
-
"""
|
13
|
-
Feature: With and without hooks
|
14
|
-
Scenario: using hook
|
15
|
-
Given this step passes
|
16
|
-
|
17
|
-
@no-boom
|
18
|
-
Scenario: omitting hook
|
19
|
-
Given this step passes
|
20
|
-
|
21
|
-
Scenario Outline: omitting hook on specified examples
|
22
|
-
Given this step passes
|
23
|
-
|
24
|
-
Examples:
|
25
|
-
| Value |
|
26
|
-
| Irrelevant |
|
27
|
-
|
28
|
-
@no-boom
|
29
|
-
Examples:
|
30
|
-
| Value |
|
31
|
-
| Also Irrelevant |
|
32
|
-
"""
|
33
|
-
|
34
|
-
Scenario: omit tagged hook
|
35
|
-
When I run `cucumber features/f.feature:2`
|
36
|
-
Then it should fail with exactly:
|
37
|
-
"""
|
38
|
-
Feature: With and without hooks
|
39
|
-
|
40
|
-
Scenario: using hook # features/f.feature:2
|
41
|
-
boom (RuntimeError)
|
42
|
-
./features/support/hooks.rb:2:in `Before'
|
43
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
44
|
-
|
45
|
-
Failing Scenarios:
|
46
|
-
cucumber features/f.feature:2 # Scenario: using hook
|
47
|
-
|
48
|
-
1 scenario (1 failed)
|
49
|
-
1 step (1 skipped)
|
50
|
-
0m0.012s
|
51
|
-
|
52
|
-
"""
|
53
|
-
|
54
|
-
Scenario: omit tagged hook
|
55
|
-
When I run `cucumber features/f.feature:6`
|
56
|
-
Then it should pass with exactly:
|
57
|
-
"""
|
58
|
-
Feature: With and without hooks
|
59
|
-
|
60
|
-
@no-boom
|
61
|
-
Scenario: omitting hook # features/f.feature:6
|
62
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
63
|
-
|
64
|
-
1 scenario (1 passed)
|
65
|
-
1 step (1 passed)
|
66
|
-
0m0.012s
|
67
|
-
|
68
|
-
"""
|
69
|
-
Scenario: Omit example hook
|
70
|
-
When I run `cucumber features/f.feature:12`
|
71
|
-
Then it should fail with exactly:
|
72
|
-
"""
|
73
|
-
Feature: With and without hooks
|
74
|
-
|
75
|
-
Scenario Outline: omitting hook on specified examples # features/f.feature:9
|
76
|
-
Given this step passes # features/f.feature:10
|
77
|
-
|
78
|
-
Examples:
|
79
|
-
| Value |
|
80
|
-
boom (RuntimeError)
|
81
|
-
./features/support/hooks.rb:2:in `Before'
|
82
|
-
| Irrelevant |
|
83
|
-
|
84
|
-
Failing Scenarios:
|
85
|
-
cucumber features/f.feature:14 # Scenario Outline: omitting hook on specified examples, Examples (#1)
|
86
|
-
|
87
|
-
1 scenario (1 failed)
|
88
|
-
1 step (1 skipped)
|
89
|
-
0m0.012s
|
90
|
-
|
91
|
-
"""
|
92
|
-
Scenario:
|
93
|
-
When I run `cucumber features/f.feature:17`
|
94
|
-
Then it should pass
|
95
|
-
|
@@ -1,129 +0,0 @@
|
|
1
|
-
Feature: World
|
2
|
-
|
3
|
-
In order to isolate each test scenario, the steps definitions belonging to the
|
4
|
-
same scenario will run in a isolated context, called 'world'. A world also
|
5
|
-
contains the helpers methods that will be used in the step definitions.
|
6
|
-
|
7
|
-
It is possible to add helpers methods to a world in three different ways:
|
8
|
-
|
9
|
-
1. Passing a module. In this case its methods will be added directly to the
|
10
|
-
world and be usable in the step definitions.
|
11
|
-
|
12
|
-
2. Passing a block, where the return value is the world object.
|
13
|
-
|
14
|
-
3. Passing a hash, where the keys are namespaces and the values are
|
15
|
-
modules. In this case, the methods of each module will be accessible using
|
16
|
-
the key as prefix.
|
17
|
-
|
18
|
-
Scenario: A world is extended using a module
|
19
|
-
Given a file named "features/support/helpers.rb" with:
|
20
|
-
"""
|
21
|
-
module Helpers
|
22
|
-
def helper_method
|
23
|
-
42
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
World(Helpers)
|
28
|
-
"""
|
29
|
-
And a file named "features/step_definitions/step.rb" with:
|
30
|
-
"""
|
31
|
-
Then /^the helper method is called$/ do
|
32
|
-
expect(helper_method).to eql(42)
|
33
|
-
end
|
34
|
-
"""
|
35
|
-
And a file named "features/f.feature" with:
|
36
|
-
"""
|
37
|
-
Feature: Calling a method
|
38
|
-
Scenario: I call a method without namespaces
|
39
|
-
Then the helper method is called
|
40
|
-
"""
|
41
|
-
When I run `cucumber features/f.feature`
|
42
|
-
Then it should pass
|
43
|
-
|
44
|
-
Scenario: A world is created using a block
|
45
|
-
Given a file named "features/support/helpers.rb" with:
|
46
|
-
"""
|
47
|
-
class Helper
|
48
|
-
def helper_method
|
49
|
-
42
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
World do
|
54
|
-
Helper.new
|
55
|
-
end
|
56
|
-
"""
|
57
|
-
And a file named "features/step_definitions/step.rb" with:
|
58
|
-
"""
|
59
|
-
Then /^the helper method is called$/ do
|
60
|
-
expect(helper_method).to eql(42)
|
61
|
-
end
|
62
|
-
"""
|
63
|
-
And a file named "features/f.feature" with:
|
64
|
-
"""
|
65
|
-
Feature: Calling a method
|
66
|
-
Scenario: I call a method from a namespace
|
67
|
-
Then the helper method is called
|
68
|
-
"""
|
69
|
-
When I run `cucumber features/f.feature`
|
70
|
-
Then it should pass
|
71
|
-
|
72
|
-
Scenario: A world is extended using a module with namespace
|
73
|
-
Given a file named "features/support/helpers.rb" with:
|
74
|
-
"""
|
75
|
-
module Helpers
|
76
|
-
def helper_method
|
77
|
-
42
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
World(my_namespace: Helpers)
|
82
|
-
"""
|
83
|
-
And a file named "features/step_definitions/step.rb" with:
|
84
|
-
"""
|
85
|
-
Then /^the helper method is called$/ do
|
86
|
-
expect(my_namespace.helper_method).to eql(42)
|
87
|
-
end
|
88
|
-
"""
|
89
|
-
And a file named "features/f.feature" with:
|
90
|
-
"""
|
91
|
-
Feature: Calling a method
|
92
|
-
Scenario: I call a method from a namespace
|
93
|
-
Then the helper method is called
|
94
|
-
"""
|
95
|
-
When I run `cucumber features/f.feature`
|
96
|
-
Then it should pass
|
97
|
-
|
98
|
-
Scenario: A world is extended using multiple modules with different namespaces
|
99
|
-
Given a file named "features/support/helpers.rb" with:
|
100
|
-
"""
|
101
|
-
module ModuleOne
|
102
|
-
def forty_one
|
103
|
-
41
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
module ModuleTwo
|
108
|
-
def forty_two
|
109
|
-
42
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
World(module_one: ModuleOne, module_two: ModuleTwo)
|
114
|
-
"""
|
115
|
-
And a file named "features/step_definitions/step.rb" with:
|
116
|
-
"""
|
117
|
-
Then /^the helper method is called$/ do
|
118
|
-
expect(module_one.forty_one).to eql(41)
|
119
|
-
expect(module_two.forty_two).to eql(42)
|
120
|
-
end
|
121
|
-
"""
|
122
|
-
And a file named "features/f.feature" with:
|
123
|
-
"""
|
124
|
-
Feature: Calling a method
|
125
|
-
Scenario: I call a method from two namespaces
|
126
|
-
Then the helper method is called
|
127
|
-
"""
|
128
|
-
When I run `cucumber features/f.feature`
|
129
|
-
Then it should pass
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
Then(/^it should (pass|fail)$/) do |result|
|
3
|
-
assert_success result == 'pass'
|
4
|
-
end
|
5
|
-
|
6
|
-
Then('{string} should not be required') do |file_name|
|
7
|
-
expect(all_output).not_to include("* #{file_name}")
|
8
|
-
end
|
9
|
-
|
10
|
-
Then('{string} should be required') do |file_name|
|
11
|
-
expect(all_output).to include("* #{file_name}")
|
12
|
-
end
|
13
|
-
|
14
|
-
Then('it fails before running features with:') do |expected|
|
15
|
-
assert_matching_output("\\A#{expected}", all_output)
|
16
|
-
assert_success(false)
|
17
|
-
end
|
18
|
-
|
19
|
-
Then('the output includes the message {string}') do |message|
|
20
|
-
expect(all_output).to include(message)
|
21
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
Given('a directory without standard Cucumber project directory structure') do
|
3
|
-
in_current_dir do
|
4
|
-
FileUtils.rm_rf 'features' if File.directory?('features')
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
Given('a scenario with a step that looks like this:') do |string|
|
9
|
-
create_feature do
|
10
|
-
create_scenario { string }
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
Given('a scenario with a step that looks like this in japanese:') do |string|
|
15
|
-
create_feature_ja do
|
16
|
-
create_scenario_ja { string }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
Given('the standard step definitions') do
|
21
|
-
write_file 'features/step_definitions/steps.rb',
|
22
|
-
|
23
|
-
<<-STEPS
|
24
|
-
Given(/^this step passes$/) { }
|
25
|
-
Given(/^this step raises an error$/) { raise 'error' }
|
26
|
-
Given(/^this step is pending$/) { pending }
|
27
|
-
Given(/^this step fails$/) { fail }
|
28
|
-
Given(/^this step is a table step$/) {|t| }
|
29
|
-
STEPS
|
30
|
-
end
|
31
|
-
|
32
|
-
Given('a step definition that looks like this:') do |string|
|
33
|
-
create_step_definition { string }
|
34
|
-
end
|
35
|
-
|
36
|
-
Given('a scenario {string} that passes') do |name|
|
37
|
-
write_file "features/#{name}.feature",
|
38
|
-
<<-FEATURE
|
39
|
-
Feature: #{name}
|
40
|
-
Scenario: #{name}
|
41
|
-
Given it passes
|
42
|
-
FEATURE
|
43
|
-
|
44
|
-
write_file "features/step_definitions/#{name}_steps.rb",
|
45
|
-
<<-STEPS
|
46
|
-
Given(/^it passes$/) { expect(true).to be true }
|
47
|
-
STEPS
|
48
|
-
end
|
49
|
-
|
50
|
-
Given('a scenario {string} that fails') do |name|
|
51
|
-
write_file "features/#{name}.feature",
|
52
|
-
<<-FEATURE
|
53
|
-
Feature: #{name}
|
54
|
-
Scenario: #{name}
|
55
|
-
Given it fails
|
56
|
-
FEATURE
|
57
|
-
|
58
|
-
write_file "features/step_definitions/#{name}_steps.rb",
|
59
|
-
<<-STEPS
|
60
|
-
Given(/^it fails$/) { expect(false).to be true }
|
61
|
-
STEPS
|
62
|
-
end
|
63
|
-
|
64
|
-
When(/^I run the feature with the (\w+) formatter$/) do |formatter|
|
65
|
-
expect(features.length).to eq 1
|
66
|
-
run_feature features.first, formatter
|
67
|
-
end
|
68
|
-
|
69
|
-
module CucumberHelper
|
70
|
-
def run_feature(filename = 'features/a_feature.feature', formatter = 'progress')
|
71
|
-
run_simple "#{Cucumber::BINARY} #{filename} --format #{formatter}", false
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
World(CucumberHelper)
|