cucumber 3.0.0.pre.2 → 4.0.0.rc.5
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} +267 -14
- data/CONTRIBUTING.md +4 -21
- data/README.md +14 -15
- data/bin/cucumber +2 -1
- data/lib/autotest/cucumber.rb +1 -0
- data/lib/autotest/cucumber_mixin.rb +36 -40
- 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 +2 -1
- data/lib/cucumber/cli/configuration.rb +8 -7
- data/lib/cucumber/cli/main.rb +14 -14
- data/lib/cucumber/cli/options.rb +141 -120
- data/lib/cucumber/cli/profile_loader.rb +50 -29
- data/lib/cucumber/cli/rerun_file.rb +1 -0
- data/lib/cucumber/configuration.rb +40 -30
- data/lib/cucumber/constantize.rb +8 -10
- data/lib/cucumber/core_ext/string.rb +1 -0
- data/lib/cucumber/deprecate.rb +33 -9
- data/lib/cucumber/encoding.rb +2 -1
- data/lib/cucumber/errors.rb +10 -8
- data/lib/cucumber/events.rb +14 -9
- 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 +1 -4
- data/lib/cucumber/events/hook_test_step_created.rb +13 -0
- data/lib/cucumber/events/step_activated.rb +6 -6
- data/lib/cucumber/events/step_definition_registered.rb +4 -8
- data/lib/cucumber/events/test_case_created.rb +13 -0
- data/lib/cucumber/events/test_case_finished.rb +1 -5
- data/lib/cucumber/events/test_case_ready.rb +12 -0
- data/lib/cucumber/events/{test_case_starting.rb → test_case_started.rb} +1 -5
- data/lib/cucumber/events/test_run_finished.rb +2 -3
- data/lib/cucumber/events/{test_run_starting.rb → test_run_started.rb} +3 -5
- data/lib/cucumber/events/test_step_created.rb +13 -0
- data/lib/cucumber/events/test_step_finished.rb +0 -6
- data/lib/cucumber/events/{test_step_starting.rb → test_step_started.rb} +2 -8
- data/lib/cucumber/file_specs.rb +7 -6
- data/lib/cucumber/filters.rb +3 -1
- data/lib/cucumber/filters/activate_steps.rb +11 -5
- 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_starting_event.rb → broadcast_test_run_started_event.rb} +4 -3
- 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 +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 +3 -6
- data/lib/cucumber/formatter/ansicolor.rb +33 -37
- data/lib/cucumber/formatter/ast_lookup.rb +165 -0
- data/lib/cucumber/formatter/backtrace_filter.rb +10 -10
- data/lib/cucumber/formatter/console.rb +37 -74
- data/lib/cucumber/formatter/console_counts.rb +4 -9
- data/lib/cucumber/formatter/console_issues.rb +10 -7
- 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 +9 -6
- data/lib/cucumber/formatter/fanout.rb +3 -3
- data/lib/cucumber/formatter/html.rb +11 -603
- data/lib/cucumber/formatter/http_io.rb +93 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +2 -4
- data/lib/cucumber/formatter/interceptor.rb +10 -12
- data/lib/cucumber/formatter/io.rb +19 -12
- data/lib/cucumber/formatter/json.rb +106 -112
- data/lib/cucumber/formatter/junit.rb +81 -76
- data/lib/cucumber/formatter/message.rb +22 -0
- data/lib/cucumber/formatter/message_builder.rb +241 -0
- data/lib/cucumber/formatter/pretty.rb +353 -153
- data/lib/cucumber/formatter/progress.rb +30 -33
- 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 +4 -5
- data/lib/cucumber/formatter/summary.rb +18 -11
- data/lib/cucumber/formatter/unicode.rb +16 -18
- data/lib/cucumber/formatter/usage.rb +30 -26
- 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/glue/dsl.rb +13 -26
- data/lib/cucumber/glue/hook.rb +35 -11
- data/lib/cucumber/glue/invoke_in_world.rb +15 -20
- data/lib/cucumber/glue/proto_world.rb +48 -42
- data/lib/cucumber/glue/registry_and_more.rb +58 -23
- data/lib/cucumber/glue/snippet.rb +23 -26
- data/lib/cucumber/glue/step_definition.rb +51 -28
- data/lib/cucumber/glue/world_factory.rb +2 -4
- data/lib/cucumber/hooks.rb +27 -17
- data/lib/cucumber/load_path.rb +1 -0
- data/lib/cucumber/multiline_argument.rb +7 -17
- data/lib/cucumber/multiline_argument/data_table.rb +113 -82
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +8 -12
- data/lib/cucumber/multiline_argument/doc_string.rb +2 -1
- data/lib/cucumber/platform.rb +4 -3
- data/lib/cucumber/project_initializer.rb +2 -2
- data/lib/cucumber/rake/task.rb +28 -21
- data/lib/cucumber/rspec/disable_option_parser.rb +10 -8
- data/lib/cucumber/rspec/doubles.rb +1 -0
- data/lib/cucumber/running_test_case.rb +4 -54
- data/lib/cucumber/runtime.rb +32 -63
- data/lib/cucumber/runtime/after_hooks.rb +9 -4
- data/lib/cucumber/runtime/before_hooks.rb +9 -4
- data/lib/cucumber/runtime/for_programming_languages.rb +12 -9
- data/lib/cucumber/runtime/step_hooks.rb +5 -2
- data/lib/cucumber/runtime/support_code.rb +16 -22
- data/lib/cucumber/runtime/user_interface.rb +12 -23
- data/lib/cucumber/step_definition_light.rb +6 -4
- data/lib/cucumber/step_definitions.rb +3 -2
- data/lib/cucumber/step_match.rb +29 -14
- data/lib/cucumber/step_match_search.rb +10 -10
- 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 +1 -0
- metadata +206 -678
- data/.coveralls.yml +0 -1
- data/.cucumberproignore +0 -6
- data/.github/ISSUE_TEMPLATE.md +0 -48
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -39
- data/.rspec +0 -1
- data/.rubocop.yml +0 -13
- data/.rubocop_todo.yml +0 -1075
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -69
- data/.yardopts +0 -1
- data/Gemfile +0 -28
- data/Rakefile +0 -32
- data/appveyor.yml +0 -26
- 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 -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 -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 -117
- 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/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_starting_event.feature +0 -54
- data/features/docs/events/test_run_finished_event.feature +0 -40
- data/features/docs/events/test_run_starting_event.feature +0 -41
- data/features/docs/events/test_step_finished_event.feature +0 -47
- data/features/docs/events/test_step_starting_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 -122
- data/features/docs/formatters/api_methods.feature +0 -37
- 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 -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 -160
- 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 -75
- 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 -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/support/env.rb +0 -22
- data/features/lib/support/fake_wire_server.rb +0 -86
- 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 -8
- 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 -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/formatter/cucumber.css +0 -286
- data/lib/cucumber/formatter/cucumber.sass +0 -247
- data/lib/cucumber/formatter/hook_query_visitor.rb +0 -41
- data/lib/cucumber/formatter/html_builder.rb +0 -110
- data/lib/cucumber/formatter/inline-js.js +0 -30
- 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 -386
- data/lib/cucumber/formatter/legacy_api/results.rb +0 -50
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +0 -32
- data/lib/cucumber/step_argument.rb +0 -24
- data/scripts/invite-collaborator +0 -40
- data/scripts/update-history +0 -83
- data/spec/cucumber/cli/configuration_spec.rb +0 -434
- 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 -840
- data/spec/cucumber/formatter/junit_spec.rb +0 -251
- 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 -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 -648
- 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/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,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
|
-
"""
|
@@ -1,29 +0,0 @@
|
|
1
|
-
Feature: Custom filter
|
2
|
-
|
3
|
-
Scenario: Add a custom filter via AfterConfiguration hook
|
4
|
-
Given a file named "features/test.feature" with:
|
5
|
-
"""
|
6
|
-
Feature:
|
7
|
-
Scenario:
|
8
|
-
Given my special step
|
9
|
-
"""
|
10
|
-
And a file named "features/support/my_filter.rb" with:
|
11
|
-
"""
|
12
|
-
require 'cucumber/core/filter'
|
13
|
-
|
14
|
-
MakeAnythingPass = Cucumber::Core::Filter.new do
|
15
|
-
def test_case(test_case)
|
16
|
-
activated_steps = test_case.test_steps.map do |test_step|
|
17
|
-
test_step.with_action { }
|
18
|
-
end
|
19
|
-
test_case.with_steps(activated_steps).describe_to receiver
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
AfterConfiguration do |config|
|
24
|
-
config.filters << MakeAnythingPass.new
|
25
|
-
end
|
26
|
-
"""
|
27
|
-
When I run `cucumber --strict`
|
28
|
-
Then it should pass
|
29
|
-
|
@@ -1,122 +0,0 @@
|
|
1
|
-
Feature: Custom Formatter
|
2
|
-
|
3
|
-
Background:
|
4
|
-
Given a file named "features/f.feature" with:
|
5
|
-
"""
|
6
|
-
Feature: I'll use my own
|
7
|
-
Scenario: Just print me
|
8
|
-
Given this step passes
|
9
|
-
"""
|
10
|
-
And the standard step definitions
|
11
|
-
|
12
|
-
Scenario: Subscribe to result events
|
13
|
-
|
14
|
-
This is the recommended way to format output.
|
15
|
-
|
16
|
-
Given a file named "features/support/custom_formatter.rb" with:
|
17
|
-
"""
|
18
|
-
module MyCustom
|
19
|
-
class Formatter
|
20
|
-
def initialize(config)
|
21
|
-
@io = config.out_stream
|
22
|
-
config.on_event :test_case_starting do |event|
|
23
|
-
print_test_case_name(event.test_case)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def print_test_case_name(test_case)
|
28
|
-
feature = test_case.source.first
|
29
|
-
scenario = test_case.source.last
|
30
|
-
@io.puts feature.short_name.upcase
|
31
|
-
@io.puts " #{scenario.name.upcase}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
"""
|
36
|
-
When I run `cucumber features/f.feature --format MyCustom::Formatter`
|
37
|
-
Then it should pass with exactly:
|
38
|
-
"""
|
39
|
-
I'LL USE MY OWN
|
40
|
-
JUST PRINT ME
|
41
|
-
|
42
|
-
"""
|
43
|
-
|
44
|
-
Scenario: Custom config
|
45
|
-
Given a file named "features/support/custom_formatter.rb" with:
|
46
|
-
"""
|
47
|
-
module MyCustom
|
48
|
-
class Formatter
|
49
|
-
def initialize(config, options)
|
50
|
-
@io = config.out_stream
|
51
|
-
config.on_event :test_run_finished do |event|
|
52
|
-
@io.print options.inspect
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
"""
|
58
|
-
When I run `cucumber features/f.feature --format MyCustom::Formatter,foo=bar,one=two`
|
59
|
-
Then it should pass with exactly:
|
60
|
-
"""
|
61
|
-
{"foo"=>"bar", "one"=>"two"}
|
62
|
-
"""
|
63
|
-
|
64
|
-
Scenario: Use the legacy API
|
65
|
-
This is deprecated and should no longer be used.
|
66
|
-
|
67
|
-
Given a file named "features/support/custom_legacy_formatter.rb" with:
|
68
|
-
"""
|
69
|
-
module MyCustom
|
70
|
-
class LegacyFormatter
|
71
|
-
def initialize(runtime, io, options)
|
72
|
-
@io = io
|
73
|
-
end
|
74
|
-
|
75
|
-
def before_feature(feature)
|
76
|
-
@io.puts feature.short_name.upcase
|
77
|
-
end
|
78
|
-
|
79
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
80
|
-
@io.puts " #{name.upcase}"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
"""
|
85
|
-
When I run `cucumber features/f.feature --format MyCustom::LegacyFormatter`
|
86
|
-
Then it should pass with exactly:
|
87
|
-
"""
|
88
|
-
I'LL USE MY OWN
|
89
|
-
JUST PRINT ME
|
90
|
-
|
91
|
-
"""
|
92
|
-
|
93
|
-
Scenario: Use both old and new
|
94
|
-
You can both APIs at once, for now
|
95
|
-
|
96
|
-
Given a file named "features/support/custom_mixed_formatter.rb" with:
|
97
|
-
"""
|
98
|
-
module MyCustom
|
99
|
-
class MixedFormatter
|
100
|
-
|
101
|
-
def initialize(runtime, io, options)
|
102
|
-
@io = io
|
103
|
-
end
|
104
|
-
|
105
|
-
def before_test_case(test_case)
|
106
|
-
feature = test_case.source.first
|
107
|
-
@io.puts feature.short_name.upcase
|
108
|
-
end
|
109
|
-
|
110
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
111
|
-
@io.puts " #{name.upcase}"
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
"""
|
116
|
-
When I run `cucumber features/f.feature --format MyCustom::MixedFormatter`
|
117
|
-
Then it should pass with exactly:
|
118
|
-
"""
|
119
|
-
I'LL USE MY OWN
|
120
|
-
JUST PRINT ME
|
121
|
-
|
122
|
-
"""
|
@@ -1,37 +0,0 @@
|
|
1
|
-
Feature: Formatter API methods
|
2
|
-
|
3
|
-
Some utility methods are provided to make it easier to write your own formatters.
|
4
|
-
|
5
|
-
Here are some examples.
|
6
|
-
|
7
|
-
Scenario: A formatter that uses `Cucumber::Formatter::Io#ensure_file`
|
8
|
-
|
9
|
-
The ensure_file method is a little helper function that some formatters use,
|
10
|
-
normally when given a CLI argument with `--out` to check that the file passed
|
11
|
-
by the user actually exists.
|
12
|
-
|
13
|
-
The second argument is the name of the formatter, used to print a useful
|
14
|
-
error message if the file can't be created for some reason.
|
15
|
-
|
16
|
-
Given a file named "features/f.feature" with:
|
17
|
-
"""
|
18
|
-
Feature: Test
|
19
|
-
Scenario: Test
|
20
|
-
"""
|
21
|
-
And a directory named "my/special"
|
22
|
-
And a file named "features/support/custom_formatter.rb" with:
|
23
|
-
"""
|
24
|
-
require 'cucumber/formatter/io'
|
25
|
-
module Cucumber
|
26
|
-
module Formatter
|
27
|
-
class Test
|
28
|
-
include Io
|
29
|
-
def initialize(runtime, path_or_io, options)
|
30
|
-
ensure_file("my/special/output.file", "custom formatter")
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
"""
|
36
|
-
When I run `cucumber features/f.feature --format Cucumber::Formatter::Test`
|
37
|
-
Then it should pass
|