cucumber 3.0.0.pre.1 → 4.0.0.rc.4
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/{History.md → CHANGELOG.md} +339 -37
- data/CONTRIBUTING.md +11 -21
- data/README.md +20 -12
- data/bin/cucumber +2 -1
- data/lib/autotest/cucumber.rb +1 -0
- data/lib/autotest/cucumber_mixin.rb +44 -48
- 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.rb +2 -1
- data/lib/cucumber/cli/configuration.rb +15 -20
- data/lib/cucumber/cli/main.rb +15 -15
- data/lib/cucumber/cli/options.rb +249 -197
- data/lib/cucumber/cli/profile_loader.rb +63 -38
- data/lib/cucumber/cli/rerun_file.rb +1 -0
- data/lib/cucumber/configuration.rb +49 -44
- data/lib/cucumber/constantize.rb +8 -10
- data/lib/cucumber/core_ext/string.rb +2 -1
- data/lib/cucumber/deprecate.rb +34 -10
- data/lib/cucumber/encoding.rb +2 -1
- data/lib/cucumber/errors.rb +10 -8
- data/lib/cucumber/events.rb +18 -3
- data/lib/cucumber/events/envelope.rb +9 -0
- data/lib/cucumber/events/gherkin_source_parsed.rb +11 -0
- data/lib/cucumber/events/gherkin_source_read.rb +14 -0
- data/lib/cucumber/events/hook_test_step_created.rb +13 -0
- data/lib/cucumber/events/{step_match.rb → step_activated.rb} +8 -8
- data/lib/cucumber/events/step_definition_registered.rb +5 -9
- data/lib/cucumber/events/test_case_created.rb +13 -0
- data/lib/cucumber/events/test_case_finished.rb +14 -0
- data/lib/cucumber/events/test_case_ready.rb +12 -0
- data/lib/cucumber/events/test_case_started.rb +11 -0
- data/lib/cucumber/events/test_run_finished.rb +2 -3
- data/lib/cucumber/events/test_run_started.rb +14 -0
- data/lib/cucumber/events/test_step_created.rb +13 -0
- data/lib/cucumber/events/test_step_finished.rb +14 -0
- data/lib/cucumber/events/test_step_started.rb +11 -0
- data/lib/cucumber/file_specs.rb +7 -6
- data/lib/cucumber/filters.rb +3 -0
- data/lib/cucumber/filters/activate_steps.rb +12 -6
- 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_case_ready_event.rb +12 -0
- data/lib/cucumber/filters/broadcast_test_run_started_event.rb +28 -0
- data/lib/cucumber/filters/gated_receiver.rb +1 -2
- data/lib/cucumber/filters/prepare_world.rb +6 -13
- data/lib/cucumber/filters/quit.rb +3 -7
- data/lib/cucumber/filters/randomizer.rb +6 -7
- data/lib/cucumber/filters/retry.rb +3 -3
- data/lib/cucumber/filters/tag_limits.rb +5 -5
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
- data/lib/cucumber/filters/tag_limits/verifier.rb +4 -7
- data/lib/cucumber/formatter/ansicolor.rb +38 -45
- data/lib/cucumber/formatter/ast_lookup.rb +165 -0
- data/lib/cucumber/formatter/backtrace_filter.rb +24 -12
- data/lib/cucumber/formatter/console.rb +48 -88
- data/lib/cucumber/formatter/console_counts.rb +11 -29
- data/lib/cucumber/formatter/console_issues.rb +34 -10
- data/lib/cucumber/formatter/duration.rb +2 -1
- data/lib/cucumber/formatter/duration_extractor.rb +4 -2
- data/lib/cucumber/formatter/errors.rb +6 -0
- data/lib/cucumber/formatter/fail_fast.rb +8 -5
- data/lib/cucumber/formatter/fanout.rb +3 -3
- data/lib/cucumber/formatter/ignore_missing_messages.rb +2 -4
- data/lib/cucumber/formatter/interceptor.rb +12 -14
- data/lib/cucumber/formatter/io.rb +5 -4
- data/lib/cucumber/formatter/json.rb +109 -115
- data/lib/cucumber/formatter/junit.rb +85 -80
- data/lib/cucumber/formatter/message.rb +246 -0
- data/lib/cucumber/formatter/pretty.rb +353 -153
- data/lib/cucumber/formatter/progress.rb +34 -38
- data/lib/cucumber/formatter/query/hook_by_test_step.rb +31 -0
- data/lib/cucumber/formatter/query/pickle_by_test.rb +26 -0
- data/lib/cucumber/formatter/query/pickle_step_by_test_step.rb +26 -0
- data/lib/cucumber/formatter/query/step_definitions_by_test_step.rb +40 -0
- data/lib/cucumber/formatter/query/test_case_started_by_test_case.rb +40 -0
- data/lib/cucumber/formatter/rerun.rb +24 -5
- data/lib/cucumber/formatter/stepdefs.rb +2 -2
- data/lib/cucumber/formatter/steps.rb +5 -6
- data/lib/cucumber/formatter/summary.rb +18 -11
- data/lib/cucumber/formatter/unicode.rb +16 -18
- data/lib/cucumber/formatter/usage.rb +37 -33
- data/lib/cucumber/gherkin/data_table_parser.rb +18 -6
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +83 -86
- data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
- data/lib/cucumber/gherkin/i18n.rb +1 -0
- data/lib/cucumber/gherkin/steps_parser.rb +18 -8
- data/lib/cucumber/{rb_support/rb_dsl.rb → glue/dsl.rb} +37 -23
- data/lib/cucumber/glue/hook.rb +67 -0
- data/lib/cucumber/glue/invoke_in_world.rb +65 -0
- data/lib/cucumber/glue/proto_world.rb +231 -0
- data/lib/cucumber/glue/registry_and_more.rb +221 -0
- data/lib/cucumber/glue/snippet.rb +205 -0
- data/lib/cucumber/glue/step_definition.rb +166 -0
- data/lib/cucumber/glue/world_factory.rb +21 -0
- data/lib/cucumber/hooks.rb +30 -20
- data/lib/cucumber/load_path.rb +1 -0
- data/lib/cucumber/multiline_argument.rb +9 -19
- data/lib/cucumber/multiline_argument/data_table.rb +143 -250
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +154 -0
- data/lib/cucumber/multiline_argument/doc_string.rb +2 -1
- data/lib/cucumber/platform.rb +5 -6
- data/lib/cucumber/project_initializer.rb +2 -2
- data/lib/cucumber/rake/task.rb +34 -27
- data/lib/cucumber/rspec/disable_option_parser.rb +10 -8
- data/lib/cucumber/rspec/doubles.rb +2 -1
- data/lib/cucumber/running_test_case.rb +4 -54
- data/lib/cucumber/runtime.rb +54 -72
- data/lib/cucumber/runtime/after_hooks.rb +10 -5
- data/lib/cucumber/runtime/before_hooks.rb +9 -4
- data/lib/cucumber/runtime/for_programming_languages.rb +12 -44
- data/lib/cucumber/runtime/step_hooks.rb +5 -2
- data/lib/cucumber/runtime/support_code.rb +30 -32
- data/lib/cucumber/runtime/user_interface.rb +16 -34
- data/lib/cucumber/step_definition_light.rb +7 -4
- data/lib/cucumber/step_definitions.rb +3 -2
- data/lib/cucumber/step_match.rb +42 -26
- data/lib/cucumber/step_match_search.rb +11 -12
- data/lib/cucumber/term/ansicolor.rb +39 -39
- data/lib/cucumber/unit.rb +1 -0
- data/lib/cucumber/version +1 -1
- data/lib/simplecov_setup.rb +2 -1
- metadata +238 -623
- data/.coveralls.yml +0 -1
- data/.github/ISSUE_TEMPLATE.md +0 -48
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -39
- data/.rspec +0 -1
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -35
- data/.yardopts +0 -1
- data/Gemfile +0 -22
- data/Rakefile +0 -22
- data/cucumber.gemspec +0 -47
- data/cucumber.yml +0 -20
- 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 -24
- 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 -5
- data/examples/i18n/bg/features/support/world.rb +0 -8
- data/examples/i18n/bg/lib/calculator.rb +0 -24
- data/examples/i18n/ca/Rakefile +0 -6
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -21
- 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 -24
- 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 -24
- 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 -24
- 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 -24
- 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 -7
- 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 -24
- 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 -24
- 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 -21
- 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 -24
- 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 -24
- 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 -5
- 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 -24
- 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 -24
- 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 -25
- 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 -25
- 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 -24
- 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 -24
- 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 -5
- 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 -24
- 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 -24
- 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 -24
- 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 -6
- 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 -24
- data/examples/i18n/pl/features/support/env.rb +0 -5
- 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 -5
- 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 -21
- 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 -5
- data/examples/i18n/ru/features/support/world.rb +0 -8
- data/examples/i18n/ru/lib/calculator.rb +0 -24
- 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 -24
- 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 -5
- 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 -24
- 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 -24
- 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 -24
- 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 -5
- data/examples/i18n/uk/features/support/world.rb +0 -8
- data/examples/i18n/uk/lib/calculator.rb +0 -24
- 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 -5
- data/examples/i18n/uz/features/support/world.rb +0 -8
- data/examples/i18n/uz/lib/calculator.rb +0 -24
- 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 -26
- 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 -24
- 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 -10
- 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 -6
- 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 -26
- data/examples/watir/features/support/env.rb +0 -35
- data/examples/watir/features/support/screenshots.rb +0 -47
- data/features/docs/api/list_step_defs_as_json.feature +0 -50
- data/features/docs/api/listen_for_events.feature +0 -59
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -26
- data/features/docs/cli/backtraces.feature +0 -36
- data/features/docs/cli/dry_run.feature +0 -70
- data/features/docs/cli/exclude_files.feature +0 -18
- data/features/docs/cli/execute_with_tag_filter.feature +0 -117
- data/features/docs/cli/fail_fast.feature +0 -46
- data/features/docs/cli/finding_steps.feature +0 -28
- data/features/docs/cli/help.feature +0 -8
- 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 -67
- data/features/docs/cli/run_scenarios_matching_name.feature +0 -104
- 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 -65
- data/features/docs/cli/strict_mode.feature +0 -64
- data/features/docs/defining_steps/nested_steps.feature +0 -177
- data/features/docs/defining_steps/nested_steps_i18n.feature +0 -36
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -54
- 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 -30
- data/features/docs/defining_steps/snippets.feature +0 -56
- data/features/docs/defining_steps/table_diffing.feature +0 -50
- data/features/docs/exception_in_after_hook.feature +0 -126
- data/features/docs/exception_in_after_step_hook.feature +0 -102
- data/features/docs/exception_in_around_hook.feature +0 -78
- data/features/docs/exception_in_before_hook.feature +0 -96
- data/features/docs/extending_cucumber/custom_filter.feature +0 -29
- data/features/docs/extending_cucumber/custom_formatter.feature +0 -102
- data/features/docs/formatters/api_methods.feature +0 -37
- data/features/docs/formatters/debug_formatter.feature +0 -47
- data/features/docs/formatters/formatter_step_file_colon_line.feature +0 -44
- 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 -454
- data/features/docs/formatters/pretty_formatter.feature +0 -73
- data/features/docs/formatters/progress_formatter.feature +0 -31
- data/features/docs/formatters/rerun_formatter.feature +0 -188
- data/features/docs/formatters/summary_formatter.feature +0 -34
- data/features/docs/formatters/usage_formatter.feature +0 -98
- data/features/docs/getting_started.feature +0 -27
- data/features/docs/gherkin/background.feature +0 -548
- data/features/docs/gherkin/doc_strings.feature +0 -74
- data/features/docs/gherkin/expand_option_for_outlines.feature +0 -46
- data/features/docs/gherkin/language_from_header.feature +0 -32
- data/features/docs/gherkin/language_help.feature +0 -42
- data/features/docs/gherkin/outlines.feature +0 -156
- data/features/docs/gherkin/unicode_table.feature +0 -32
- data/features/docs/gherkin/using_descriptions.feature +0 -82
- 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 -141
- data/features/docs/raketask.feature +0 -44
- data/features/docs/work_in_progress.feature +0 -154
- data/features/docs/writing_support_code/after_hooks.feature +0 -102
- data/features/docs/writing_support_code/after_step_hooks.feature +0 -53
- data/features/docs/writing_support_code/around_hooks.feature +0 -260
- data/features/docs/writing_support_code/before_hook.feature +0 -65
- data/features/docs/writing_support_code/hook_order.feature +0 -61
- data/features/docs/writing_support_code/load_path.feature +0 -17
- 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/transforms.feature +0 -98
- data/features/docs/writing_support_code/world.feature +0 -129
- data/features/lib/step_definitions/aruba_steps.rb +0 -27
- data/features/lib/step_definitions/cli_steps.rb +0 -4
- data/features/lib/step_definitions/cucumber_steps.rb +0 -79
- data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -13
- 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/step_definitions/wire_steps.rb +0 -59
- data/features/lib/support/env.rb +0 -22
- data/features/lib/support/fake_wire_server.rb +0 -81
- data/features/lib/support/feature_factory.rb +0 -68
- data/features/lib/support/normalise_output.rb +0 -51
- data/gem_tasks/contributors.rake +0 -16
- data/gem_tasks/cov.rake +0 -6
- data/gem_tasks/cucumber.rake +0 -26
- data/gem_tasks/downloads.rb +0 -8
- data/gem_tasks/environment.rake +0 -8
- data/gem_tasks/examples.rake +0 -12
- data/gem_tasks/fix_cr_lf.rake +0 -11
- 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/lib/cucumber/core_ext/instance_exec.rb +0 -71
- data/lib/cucumber/formatter/cucumber.css +0 -286
- data/lib/cucumber/formatter/cucumber.sass +0 -247
- data/lib/cucumber/formatter/debug.rb +0 -36
- data/lib/cucumber/formatter/hook_query_visitor.rb +0 -41
- data/lib/cucumber/formatter/html.rb +0 -690
- data/lib/cucumber/formatter/jquery-min.js +0 -154
- data/lib/cucumber/formatter/json_pretty.rb +0 -11
- data/lib/cucumber/formatter/legacy_api/adapter.rb +0 -1012
- data/lib/cucumber/formatter/legacy_api/ast.rb +0 -390
- data/lib/cucumber/formatter/legacy_api/results.rb +0 -52
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +0 -32
- data/lib/cucumber/rb_support/rb_hook.rb +0 -20
- data/lib/cucumber/rb_support/rb_language.rb +0 -227
- data/lib/cucumber/rb_support/rb_step_definition.rb +0 -132
- data/lib/cucumber/rb_support/rb_transform.rb +0 -60
- data/lib/cucumber/rb_support/rb_world.rb +0 -171
- data/lib/cucumber/rb_support/snippet.rb +0 -171
- data/lib/cucumber/step_argument.rb +0 -26
- data/spec/cucumber/cli/configuration_spec.rb +0 -436
- data/spec/cucumber/cli/main_spec.rb +0 -84
- data/spec/cucumber/cli/options_spec.rb +0 -411
- data/spec/cucumber/cli/profile_loader_spec.rb +0 -47
- 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/core_ext/instance_exec_spec.rb +0 -5
- 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 -85
- 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/console_counts_spec.rb +0 -14
- data/spec/cucumber/formatter/debug_spec.rb +0 -65
- 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 -842
- data/spec/cucumber/formatter/junit_spec.rb +0 -253
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2187
- data/spec/cucumber/formatter/pretty_spec.rb +0 -920
- 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 -83
- data/spec/cucumber/hooks_spec.rb +0 -31
- data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -604
- data/spec/cucumber/project_initializer_spec.rb +0 -88
- data/spec/cucumber/rake/forked_spec.rb +0 -54
- data/spec/cucumber/rake/task_spec.rb +0 -86
- data/spec/cucumber/rb_support/rb_language_spec.rb +0 -321
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -200
- data/spec/cucumber/rb_support/rb_transform_spec.rb +0 -47
- data/spec/cucumber/rb_support/rb_world_spec.rb +0 -48
- data/spec/cucumber/rb_support/snippet_spec.rb +0 -138
- data/spec/cucumber/running_test_case_spec.rb +0 -140
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -37
- 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 -123
- 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,61 +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
|
-
Scenario: Around hooks cover background steps
|
50
|
-
When I run `cucumber -o /dev/null features/around_hook_covers_background.feature`
|
51
|
-
Then the output should contain:
|
52
|
-
"""
|
53
|
-
Event order: around_begin background_step scenario_step around_end
|
54
|
-
"""
|
55
|
-
|
56
|
-
Scenario: All hooks execute in expected order
|
57
|
-
When I run `cucumber -o /dev/null features/all_hook_order.feature`
|
58
|
-
Then the output should contain:
|
59
|
-
"""
|
60
|
-
Event order: around_begin before background_step scenario_step after around_end
|
61
|
-
"""
|
@@ -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,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('~@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,98 +0,0 @@
|
|
1
|
-
Feature: Transforms
|
2
|
-
|
3
|
-
Transforms 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 Transforms.
|
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 a Person aged 15 with blonde hair
|
15
|
-
"""
|
16
|
-
And a file named "features/support/person.rb" with:
|
17
|
-
"""
|
18
|
-
class Person
|
19
|
-
attr_accessor :age
|
20
|
-
|
21
|
-
def to_s
|
22
|
-
"I am #{age} years old"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
"""
|
26
|
-
|
27
|
-
Scenario: Basic Transform
|
28
|
-
This is the most basic way to use a transform. Notice that the regular
|
29
|
-
expression is pretty much duplicated between the step defintion and the
|
30
|
-
transform itself.
|
31
|
-
|
32
|
-
And a file named "features/step_definitions/steps.rb" with:
|
33
|
-
"""
|
34
|
-
Transform(/a Person aged (\d+)/) do |age|
|
35
|
-
person = Person.new
|
36
|
-
person.age = age.to_i
|
37
|
-
person
|
38
|
-
end
|
39
|
-
|
40
|
-
Given /^(a Person aged \d+) with blonde hair$/ do |person|
|
41
|
-
expect(person.age).to eq 15
|
42
|
-
end
|
43
|
-
"""
|
44
|
-
When I run `cucumber features/foo.feature`
|
45
|
-
Then it should pass
|
46
|
-
|
47
|
-
Scenario: Re-use Transform's Regular Expression
|
48
|
-
If you keep a reference to the transform, you can use it in your
|
49
|
-
regular expressions to avoid repeating the regular expression.
|
50
|
-
|
51
|
-
And a file named "features/step_definitions/steps.rb" with:
|
52
|
-
"""
|
53
|
-
A_PERSON = Transform(/a Person aged (\d+)/) do |age|
|
54
|
-
person = Person.new
|
55
|
-
person.age = age.to_i
|
56
|
-
person
|
57
|
-
end
|
58
|
-
|
59
|
-
Given /^(#{A_PERSON}) with blonde hair$/ do |person|
|
60
|
-
expect(person.age).to eq 15
|
61
|
-
end
|
62
|
-
"""
|
63
|
-
When I run `cucumber features/foo.feature`
|
64
|
-
Then it should pass
|
65
|
-
|
66
|
-
Scenario: Use Transform from code
|
67
|
-
You can also call the `Transform` method from within a step definition to
|
68
|
-
dynamically run a tranform.
|
69
|
-
|
70
|
-
Note that this is rather useless at present, unless the transform itself has a side-effect, since the `Transform`
|
71
|
-
function still returns the regular expression pattern.
|
72
|
-
|
73
|
-
Given a file named "features/people.feature" with:
|
74
|
-
"""
|
75
|
-
Feature:
|
76
|
-
Scenario:
|
77
|
-
Given people with these ages:
|
78
|
-
| name | age |
|
79
|
-
| sue | 25 |
|
80
|
-
| sally | 77 |
|
81
|
-
"""
|
82
|
-
And a file named "features/step_definitions/steps.rb" with:
|
83
|
-
"""
|
84
|
-
Transform(/a Person aged (\d+)/) do |age|
|
85
|
-
$person = Person.new
|
86
|
-
$person.age = age.to_i
|
87
|
-
$person
|
88
|
-
end
|
89
|
-
|
90
|
-
Given(/^people with these ages:$/) do |table|
|
91
|
-
table.rows.each do |name, age|
|
92
|
-
Transform("a Person aged #{age}")
|
93
|
-
expect($person.age).to eq age.to_i
|
94
|
-
end
|
95
|
-
end
|
96
|
-
"""
|
97
|
-
When I run `cucumber features/people.feature`
|
98
|
-
Then it should pass
|
@@ -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,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
Given('a Gemfile with:') do |content|
|
3
|
-
path = File.expand_path(current_dir + "/Gemfile")
|
4
|
-
write_file path, content
|
5
|
-
set_env "BUNDLE_GEMFILE", path
|
6
|
-
end
|
7
|
-
|
8
|
-
Then(/^it should (pass|fail)$/) do |result|
|
9
|
-
assert_success result == 'pass'
|
10
|
-
end
|
11
|
-
|
12
|
-
Then(/^"([^"]*)" should not be required$/) do |file_name|
|
13
|
-
expect(all_output).not_to include("* #{file_name}")
|
14
|
-
end
|
15
|
-
|
16
|
-
Then(/^"([^"]*)" should be required$/) do |file_name|
|
17
|
-
expect(all_output).to include("* #{file_name}")
|
18
|
-
end
|
19
|
-
|
20
|
-
Then /^it fails before running features with:$/ do |expected|
|
21
|
-
assert_matching_output("\\A#{expected}", all_output)
|
22
|
-
assert_success(false)
|
23
|
-
end
|
24
|
-
|
25
|
-
Then(/^the output includes the message "(.*)"$/) do |message|
|
26
|
-
expect(all_output).to include(message)
|
27
|
-
end
|