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,43 +0,0 @@
|
|
1
|
-
Feature: Test Step Started Event
|
2
|
-
|
3
|
-
This event is fired just before each step in a scenario or scenario outline example
|
4
|
-
(generally named a Test Step) starts to be executed. This event is read-only, so there
|
5
|
-
is no way to prevent the test step from running, but you can use it for logging or user
|
6
|
-
notification.
|
7
|
-
|
8
|
-
See [the API documentation](http://www.rubydoc.info/github/cucumber/cucumber-ruby/Cucumber/Events/TestStepStarted) for more information about the data available on this event and the result object.
|
9
|
-
|
10
|
-
Background:
|
11
|
-
Given the standard step definitions
|
12
|
-
And a file named "features/test.feature" with:
|
13
|
-
"""
|
14
|
-
Feature: A feature
|
15
|
-
|
16
|
-
Scenario: A passing scenario
|
17
|
-
Given this is a step
|
18
|
-
"""
|
19
|
-
And a file named "features/support/events.rb" with:
|
20
|
-
"""
|
21
|
-
stdout = nil
|
22
|
-
AfterConfiguration do |config|
|
23
|
-
stdout = config.out_stream # make sure all the `puts` calls can write to the same output
|
24
|
-
config.on_event :test_step_started do |event|
|
25
|
-
stdout.puts "before"
|
26
|
-
end
|
27
|
-
config.on_event :test_step_finished do |event|
|
28
|
-
stdout.puts "after"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
Given(/this is a step/) do
|
32
|
-
stdout.puts "during"
|
33
|
-
end
|
34
|
-
"""
|
35
|
-
|
36
|
-
Scenario: Test step passes
|
37
|
-
When I run `cucumber`
|
38
|
-
Then it should pass with:
|
39
|
-
"""
|
40
|
-
before
|
41
|
-
during
|
42
|
-
after
|
43
|
-
"""
|
@@ -1,127 +0,0 @@
|
|
1
|
-
Feature: Exception in After Block
|
2
|
-
In order to use custom assertions at the end of each scenario
|
3
|
-
As a developer
|
4
|
-
I want exceptions raised in After blocks to be handled gracefully and reported by the formatters
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given the standard step definitions
|
8
|
-
And a file named "features/step_definitions/naughty_steps.rb" with:
|
9
|
-
"""
|
10
|
-
Given /^this step does something naughty$/ do x=1
|
11
|
-
@naughty = true
|
12
|
-
end
|
13
|
-
"""
|
14
|
-
And a file named "features/support/env.rb" with:
|
15
|
-
"""
|
16
|
-
class NaughtyScenarioException < Exception; end
|
17
|
-
After do
|
18
|
-
if @naughty
|
19
|
-
raise NaughtyScenarioException.new("This scenario has been very very naughty")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
"""
|
23
|
-
|
24
|
-
@spawn @todo-windows
|
25
|
-
Scenario: Handle Exception in standard scenario step and carry on
|
26
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
27
|
-
"""
|
28
|
-
Feature: Sample
|
29
|
-
|
30
|
-
Scenario: Naughty Step
|
31
|
-
Given this step does something naughty
|
32
|
-
|
33
|
-
Scenario: Success
|
34
|
-
Given this step passes
|
35
|
-
"""
|
36
|
-
When I run `cucumber features`
|
37
|
-
Then it should fail with:
|
38
|
-
"""
|
39
|
-
Feature: Sample
|
40
|
-
|
41
|
-
Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
|
42
|
-
Given this step does something naughty # features/step_definitions/naughty_steps.rb:1
|
43
|
-
This scenario has been very very naughty (NaughtyScenarioException)
|
44
|
-
./features/support/env.rb:4:in `After'
|
45
|
-
|
46
|
-
Scenario: Success # features/naughty_step_in_scenario.feature:6
|
47
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
48
|
-
|
49
|
-
Failing Scenarios:
|
50
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
51
|
-
|
52
|
-
2 scenarios (1 failed, 1 passed)
|
53
|
-
2 steps (2 passed)
|
54
|
-
|
55
|
-
"""
|
56
|
-
|
57
|
-
@spawn @todo-windows
|
58
|
-
Scenario: Handle Exception in scenario outline table row and carry on
|
59
|
-
Given a file named "features/naughty_step_in_scenario_outline.feature" with:
|
60
|
-
"""
|
61
|
-
Feature: Sample
|
62
|
-
|
63
|
-
Scenario Outline: Naughty Step
|
64
|
-
Given this step <Might Work>
|
65
|
-
|
66
|
-
Examples:
|
67
|
-
| Might Work |
|
68
|
-
| passes |
|
69
|
-
| does something naughty |
|
70
|
-
| passes |
|
71
|
-
|
72
|
-
Scenario: Success
|
73
|
-
Given this step passes
|
74
|
-
|
75
|
-
"""
|
76
|
-
When I run `cucumber features -q`
|
77
|
-
Then it should fail with:
|
78
|
-
"""
|
79
|
-
Feature: Sample
|
80
|
-
|
81
|
-
Scenario Outline: Naughty Step
|
82
|
-
Given this step <Might Work>
|
83
|
-
|
84
|
-
Examples:
|
85
|
-
| Might Work |
|
86
|
-
| passes |
|
87
|
-
| does something naughty |
|
88
|
-
This scenario has been very very naughty (NaughtyScenarioException)
|
89
|
-
./features/support/env.rb:4:in `After'
|
90
|
-
| passes |
|
91
|
-
|
92
|
-
Scenario: Success
|
93
|
-
Given this step passes
|
94
|
-
|
95
|
-
Failing Scenarios:
|
96
|
-
cucumber features/naughty_step_in_scenario_outline.feature:9
|
97
|
-
|
98
|
-
4 scenarios (1 failed, 3 passed)
|
99
|
-
4 steps (4 passed)
|
100
|
-
|
101
|
-
"""
|
102
|
-
|
103
|
-
@todo-windows
|
104
|
-
Scenario: Handle Exception using the progress format
|
105
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
106
|
-
"""
|
107
|
-
Feature: Sample
|
108
|
-
|
109
|
-
Scenario: Naughty Step
|
110
|
-
Given this step does something naughty
|
111
|
-
|
112
|
-
Scenario: Success
|
113
|
-
Given this step passes
|
114
|
-
"""
|
115
|
-
When I run `cucumber features --format progress`
|
116
|
-
Then it should fail with:
|
117
|
-
"""
|
118
|
-
.F.
|
119
|
-
|
120
|
-
Failing Scenarios:
|
121
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
122
|
-
|
123
|
-
2 scenarios (1 failed, 1 passed)
|
124
|
-
2 steps (2 passed)
|
125
|
-
|
126
|
-
"""
|
127
|
-
|
@@ -1,104 +0,0 @@
|
|
1
|
-
Feature: Exception in AfterStep Block
|
2
|
-
In order to use custom assertions at the end of each step
|
3
|
-
As a developer
|
4
|
-
I want exceptions raised in AfterStep blocks to be handled gracefully and reported by the formatters
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given the standard step definitions
|
8
|
-
And a file named "features/step_definitions/naughty_steps.rb" with:
|
9
|
-
"""
|
10
|
-
Given /^this step does something naughty$/ do x=1
|
11
|
-
@naughty = true
|
12
|
-
end
|
13
|
-
"""
|
14
|
-
And a file named "features/support/env.rb" with:
|
15
|
-
"""
|
16
|
-
class NaughtyStepException < Exception; end
|
17
|
-
AfterStep do
|
18
|
-
if @naughty
|
19
|
-
raise NaughtyStepException.new("This step has been very very naughty")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
"""
|
23
|
-
|
24
|
-
@todo-windows
|
25
|
-
Scenario: Handle Exception in standard scenario step and carry on
|
26
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
27
|
-
"""
|
28
|
-
Feature: Sample
|
29
|
-
|
30
|
-
Scenario: Naughty Step
|
31
|
-
Given this step does something naughty
|
32
|
-
|
33
|
-
Scenario: Success
|
34
|
-
Given this step passes
|
35
|
-
"""
|
36
|
-
When I run `cucumber features`
|
37
|
-
Then it should fail with:
|
38
|
-
"""
|
39
|
-
Feature: Sample
|
40
|
-
|
41
|
-
Scenario: Naughty Step # features/naughty_step_in_scenario.feature:3
|
42
|
-
Given this step does something naughty # features/step_definitions/naughty_steps.rb:1
|
43
|
-
This step has been very very naughty (NaughtyStepException)
|
44
|
-
./features/support/env.rb:4:in `AfterStep'
|
45
|
-
features/naughty_step_in_scenario.feature:4:in `Given this step does something naughty'
|
46
|
-
|
47
|
-
Scenario: Success # features/naughty_step_in_scenario.feature:6
|
48
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
49
|
-
|
50
|
-
Failing Scenarios:
|
51
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
|
52
|
-
|
53
|
-
2 scenarios (1 failed, 1 passed)
|
54
|
-
2 steps (2 passed)
|
55
|
-
|
56
|
-
"""
|
57
|
-
|
58
|
-
@todo-windows
|
59
|
-
Scenario: Handle Exception in scenario outline table row and carry on
|
60
|
-
Given a file named "features/naughty_step_in_scenario_outline.feature" with:
|
61
|
-
"""
|
62
|
-
Feature: Sample
|
63
|
-
|
64
|
-
Scenario Outline: Naughty Step
|
65
|
-
Given this step <Might Work>
|
66
|
-
|
67
|
-
Examples:
|
68
|
-
| Might Work |
|
69
|
-
| passes |
|
70
|
-
| does something naughty |
|
71
|
-
| passes |
|
72
|
-
|
73
|
-
Scenario: Success
|
74
|
-
Given this step passes
|
75
|
-
|
76
|
-
"""
|
77
|
-
When I run `cucumber features`
|
78
|
-
Then it should fail with:
|
79
|
-
"""
|
80
|
-
Feature: Sample
|
81
|
-
|
82
|
-
Scenario Outline: Naughty Step # features/naughty_step_in_scenario_outline.feature:3
|
83
|
-
Given this step <Might Work> # features/naughty_step_in_scenario_outline.feature:4
|
84
|
-
|
85
|
-
Examples:
|
86
|
-
| Might Work |
|
87
|
-
| passes |
|
88
|
-
| does something naughty |
|
89
|
-
This step has been very very naughty (NaughtyStepException)
|
90
|
-
./features/support/env.rb:4:in `AfterStep'
|
91
|
-
features/naughty_step_in_scenario_outline.feature:9:in `Given this step does something naughty'
|
92
|
-
features/naughty_step_in_scenario_outline.feature:4:in `Given this step <Might Work>'
|
93
|
-
| passes |
|
94
|
-
|
95
|
-
Scenario: Success # features/naughty_step_in_scenario_outline.feature:12
|
96
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
97
|
-
|
98
|
-
Failing Scenarios:
|
99
|
-
cucumber features/naughty_step_in_scenario_outline.feature:9 # Scenario Outline: Naughty Step, Examples (#2)
|
100
|
-
|
101
|
-
4 scenarios (1 failed, 3 passed)
|
102
|
-
4 steps (4 passed)
|
103
|
-
|
104
|
-
"""
|
@@ -1,80 +0,0 @@
|
|
1
|
-
Feature: Exceptions in Around Hooks
|
2
|
-
|
3
|
-
Around hooks are awkward beasts to handle internally.
|
4
|
-
|
5
|
-
Right now, if there's an error in your Around hook before you call `block.call`,
|
6
|
-
we won't even print the steps for the scenario.
|
7
|
-
|
8
|
-
This is because that `block.call` invokes all the logic that would tell Cucumber's
|
9
|
-
UI about the steps in your scenario. If we never reach that code, we'll never be
|
10
|
-
told about them.
|
11
|
-
|
12
|
-
There's another scenario to consider, where the exception occurs after the steps
|
13
|
-
have been run. How would we want to report in that case?
|
14
|
-
|
15
|
-
@todo-windows
|
16
|
-
Scenario: Exception before the test case is run
|
17
|
-
Given the standard step definitions
|
18
|
-
And a file named "features/support/env.rb" with:
|
19
|
-
"""
|
20
|
-
Around do |scenario, block|
|
21
|
-
fail "this should be reported"
|
22
|
-
block.call
|
23
|
-
end
|
24
|
-
"""
|
25
|
-
And a file named "features/test.feature" with:
|
26
|
-
"""
|
27
|
-
Feature:
|
28
|
-
Scenario:
|
29
|
-
Given this step passes
|
30
|
-
"""
|
31
|
-
When I run `cucumber -q`
|
32
|
-
Then it should fail with exactly:
|
33
|
-
"""
|
34
|
-
Feature:
|
35
|
-
|
36
|
-
Scenario:
|
37
|
-
this should be reported (RuntimeError)
|
38
|
-
./features/support/env.rb:2:in `Around'
|
39
|
-
|
40
|
-
Failing Scenarios:
|
41
|
-
cucumber features/test.feature:2
|
42
|
-
|
43
|
-
1 scenario (1 failed)
|
44
|
-
0 steps
|
45
|
-
|
46
|
-
"""
|
47
|
-
|
48
|
-
@todo-windows
|
49
|
-
Scenario: Exception after the test case is run
|
50
|
-
Given the standard step definitions
|
51
|
-
And a file named "features/support/env.rb" with:
|
52
|
-
"""
|
53
|
-
Around do |scenario, block|
|
54
|
-
block.call
|
55
|
-
fail "this should be reported"
|
56
|
-
end
|
57
|
-
"""
|
58
|
-
And a file named "features/test.feature" with:
|
59
|
-
"""
|
60
|
-
Feature:
|
61
|
-
Scenario:
|
62
|
-
Given this step passes
|
63
|
-
"""
|
64
|
-
When I run `cucumber -q`
|
65
|
-
Then it should fail with exactly:
|
66
|
-
"""
|
67
|
-
Feature:
|
68
|
-
|
69
|
-
Scenario:
|
70
|
-
Given this step passes
|
71
|
-
this should be reported (RuntimeError)
|
72
|
-
./features/support/env.rb:3:in `Around'
|
73
|
-
|
74
|
-
Failing Scenarios:
|
75
|
-
cucumber features/test.feature:2
|
76
|
-
|
77
|
-
1 scenario (1 failed)
|
78
|
-
1 step (1 passed)
|
79
|
-
|
80
|
-
"""
|
@@ -1,98 +0,0 @@
|
|
1
|
-
Feature: Exception in Before Block
|
2
|
-
In order to know with confidence that my before blocks have run OK
|
3
|
-
As a developer
|
4
|
-
I want exceptions raised in Before blocks to be handled gracefully and reported by the formatters
|
5
|
-
|
6
|
-
Background:
|
7
|
-
Given the standard step definitions
|
8
|
-
And a file named "features/support/env.rb" with:
|
9
|
-
"""
|
10
|
-
class SomeSetupException < Exception; end
|
11
|
-
class BadStepException < Exception; end
|
12
|
-
Before do
|
13
|
-
raise SomeSetupException.new("I cannot even start this scenario")
|
14
|
-
end
|
15
|
-
"""
|
16
|
-
|
17
|
-
@spawn @todo-windows
|
18
|
-
Scenario: Handle Exception in standard scenario step and carry on
|
19
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
20
|
-
"""
|
21
|
-
Feature: Sample
|
22
|
-
|
23
|
-
Scenario: Run a good step
|
24
|
-
Given this step passes
|
25
|
-
"""
|
26
|
-
When I run `cucumber features`
|
27
|
-
Then it should fail with:
|
28
|
-
"""
|
29
|
-
Feature: Sample
|
30
|
-
|
31
|
-
Scenario: Run a good step # features/naughty_step_in_scenario.feature:3
|
32
|
-
I cannot even start this scenario (SomeSetupException)
|
33
|
-
./features/support/env.rb:4:in `Before'
|
34
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
35
|
-
|
36
|
-
Failing Scenarios:
|
37
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Run a good step
|
38
|
-
|
39
|
-
1 scenario (1 failed)
|
40
|
-
1 step (1 skipped)
|
41
|
-
|
42
|
-
"""
|
43
|
-
|
44
|
-
@todo-windows
|
45
|
-
Scenario: Handle Exception in Before hook for Scenario with Background
|
46
|
-
Given a file named "features/naughty_step_in_before.feature" with:
|
47
|
-
"""
|
48
|
-
Feature: Sample
|
49
|
-
|
50
|
-
Background:
|
51
|
-
Given this step passes
|
52
|
-
|
53
|
-
Scenario: Run a good step
|
54
|
-
Given this step passes
|
55
|
-
"""
|
56
|
-
When I run `cucumber features`
|
57
|
-
Then it should fail with exactly:
|
58
|
-
"""
|
59
|
-
Feature: Sample
|
60
|
-
|
61
|
-
Background: # features/naughty_step_in_before.feature:3
|
62
|
-
I cannot even start this scenario (SomeSetupException)
|
63
|
-
./features/support/env.rb:4:in `Before'
|
64
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
65
|
-
|
66
|
-
Scenario: Run a good step # features/naughty_step_in_before.feature:6
|
67
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
68
|
-
|
69
|
-
Failing Scenarios:
|
70
|
-
cucumber features/naughty_step_in_before.feature:6 # Scenario: Run a good step
|
71
|
-
|
72
|
-
1 scenario (1 failed)
|
73
|
-
2 steps (2 skipped)
|
74
|
-
0m0.012s
|
75
|
-
|
76
|
-
"""
|
77
|
-
|
78
|
-
@todo-windows
|
79
|
-
Scenario: Handle Exception using the progress format
|
80
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
81
|
-
"""
|
82
|
-
Feature: Sample
|
83
|
-
|
84
|
-
Scenario: Run a good step
|
85
|
-
Given this step passes
|
86
|
-
"""
|
87
|
-
When I run `cucumber features --format progress`
|
88
|
-
Then it should fail with:
|
89
|
-
"""
|
90
|
-
F-
|
91
|
-
|
92
|
-
Failing Scenarios:
|
93
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Run a good step
|
94
|
-
|
95
|
-
1 scenario (1 failed)
|
96
|
-
1 step (1 skipped)
|
97
|
-
|
98
|
-
"""
|