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,78 +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
|
-
Scenario: Exception before the test case is run
|
16
|
-
Given the standard step definitions
|
17
|
-
And a file named "features/support/env.rb" with:
|
18
|
-
"""
|
19
|
-
Around do |scenario, block|
|
20
|
-
fail "this should be reported"
|
21
|
-
block.call
|
22
|
-
end
|
23
|
-
"""
|
24
|
-
And a file named "features/test.feature" with:
|
25
|
-
"""
|
26
|
-
Feature:
|
27
|
-
Scenario:
|
28
|
-
Given this step passes
|
29
|
-
"""
|
30
|
-
When I run `cucumber -q`
|
31
|
-
Then it should fail with exactly:
|
32
|
-
"""
|
33
|
-
Feature:
|
34
|
-
|
35
|
-
Scenario:
|
36
|
-
this should be reported (RuntimeError)
|
37
|
-
./features/support/env.rb:2:in `Around'
|
38
|
-
|
39
|
-
Failing Scenarios:
|
40
|
-
cucumber features/test.feature:2
|
41
|
-
|
42
|
-
1 scenario (1 failed)
|
43
|
-
0 steps
|
44
|
-
|
45
|
-
"""
|
46
|
-
|
47
|
-
Scenario: Exception after the test case is run
|
48
|
-
Given the standard step definitions
|
49
|
-
And a file named "features/support/env.rb" with:
|
50
|
-
"""
|
51
|
-
Around do |scenario, block|
|
52
|
-
block.call
|
53
|
-
fail "this should be reported"
|
54
|
-
end
|
55
|
-
"""
|
56
|
-
And a file named "features/test.feature" with:
|
57
|
-
"""
|
58
|
-
Feature:
|
59
|
-
Scenario:
|
60
|
-
Given this step passes
|
61
|
-
"""
|
62
|
-
When I run `cucumber -q`
|
63
|
-
Then it should fail with exactly:
|
64
|
-
"""
|
65
|
-
Feature:
|
66
|
-
|
67
|
-
Scenario:
|
68
|
-
Given this step passes
|
69
|
-
this should be reported (RuntimeError)
|
70
|
-
./features/support/env.rb:3:in `Around'
|
71
|
-
|
72
|
-
Failing Scenarios:
|
73
|
-
cucumber features/test.feature:2
|
74
|
-
|
75
|
-
1 scenario (1 failed)
|
76
|
-
1 step (1 passed)
|
77
|
-
|
78
|
-
"""
|
@@ -1,96 +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
|
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
|
-
Scenario: Handle Exception in Before hook for Scenario with Background
|
45
|
-
Given a file named "features/naughty_step_in_before.feature" with:
|
46
|
-
"""
|
47
|
-
Feature: Sample
|
48
|
-
|
49
|
-
Background:
|
50
|
-
Given this step passes
|
51
|
-
|
52
|
-
Scenario: Run a good step
|
53
|
-
Given this step passes
|
54
|
-
"""
|
55
|
-
When I run `cucumber features`
|
56
|
-
Then it should fail with exactly:
|
57
|
-
"""
|
58
|
-
Feature: Sample
|
59
|
-
|
60
|
-
Background: # features/naughty_step_in_before.feature:3
|
61
|
-
I cannot even start this scenario (SomeSetupException)
|
62
|
-
./features/support/env.rb:4:in `Before'
|
63
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
64
|
-
|
65
|
-
Scenario: Run a good step # features/naughty_step_in_before.feature:6
|
66
|
-
Given this step passes # features/step_definitions/steps.rb:1
|
67
|
-
|
68
|
-
Failing Scenarios:
|
69
|
-
cucumber features/naughty_step_in_before.feature:6 # Scenario: Run a good step
|
70
|
-
|
71
|
-
1 scenario (1 failed)
|
72
|
-
2 steps (2 skipped)
|
73
|
-
0m0.012s
|
74
|
-
|
75
|
-
"""
|
76
|
-
|
77
|
-
Scenario: Handle Exception using the progress format
|
78
|
-
Given a file named "features/naughty_step_in_scenario.feature" with:
|
79
|
-
"""
|
80
|
-
Feature: Sample
|
81
|
-
|
82
|
-
Scenario: Run a good step
|
83
|
-
Given this step passes
|
84
|
-
"""
|
85
|
-
When I run `cucumber features --format progress`
|
86
|
-
Then it should fail with:
|
87
|
-
"""
|
88
|
-
F-
|
89
|
-
|
90
|
-
Failing Scenarios:
|
91
|
-
cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Run a good step
|
92
|
-
|
93
|
-
1 scenario (1 failed)
|
94
|
-
1 step (1 skipped)
|
95
|
-
|
96
|
-
"""
|
@@ -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,102 +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: Use the legacy API
|
45
|
-
This is deprecated and should no longer be used.
|
46
|
-
|
47
|
-
Given a file named "features/support/custom_legacy_formatter.rb" with:
|
48
|
-
"""
|
49
|
-
module MyCustom
|
50
|
-
class LegacyFormatter
|
51
|
-
def initialize(runtime, io, options)
|
52
|
-
@io = io
|
53
|
-
end
|
54
|
-
|
55
|
-
def before_feature(feature)
|
56
|
-
@io.puts feature.short_name.upcase
|
57
|
-
end
|
58
|
-
|
59
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
60
|
-
@io.puts " #{name.upcase}"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
"""
|
65
|
-
When I run `cucumber features/f.feature --format MyCustom::LegacyFormatter`
|
66
|
-
Then it should pass with exactly:
|
67
|
-
"""
|
68
|
-
I'LL USE MY OWN
|
69
|
-
JUST PRINT ME
|
70
|
-
|
71
|
-
"""
|
72
|
-
|
73
|
-
Scenario: Use both old and new
|
74
|
-
You can both APIs at once, for now
|
75
|
-
|
76
|
-
Given a file named "features/support/custom_mixed_formatter.rb" with:
|
77
|
-
"""
|
78
|
-
module MyCustom
|
79
|
-
class MixedFormatter
|
80
|
-
|
81
|
-
def initialize(runtime, io, options)
|
82
|
-
@io = io
|
83
|
-
end
|
84
|
-
|
85
|
-
def before_test_case(test_case)
|
86
|
-
feature = test_case.source.first
|
87
|
-
@io.puts feature.short_name.upcase
|
88
|
-
end
|
89
|
-
|
90
|
-
def scenario_name(keyword, name, file_colon_line, source_indent)
|
91
|
-
@io.puts " #{name.upcase}"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
"""
|
96
|
-
When I run `cucumber features/f.feature --format MyCustom::MixedFormatter`
|
97
|
-
Then it should pass with exactly:
|
98
|
-
"""
|
99
|
-
I'LL USE MY OWN
|
100
|
-
JUST PRINT ME
|
101
|
-
|
102
|
-
"""
|
@@ -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
|
@@ -1,47 +0,0 @@
|
|
1
|
-
Feature: Debug formatter
|
2
|
-
|
3
|
-
In order to help you easily visualise the listener API, you can use
|
4
|
-
the `debug` formatter that prints the calls to the listener as a
|
5
|
-
feature is run.
|
6
|
-
|
7
|
-
Background:
|
8
|
-
Given the standard step definitions
|
9
|
-
|
10
|
-
Scenario: title
|
11
|
-
Given a file named "features/test.feature" with:
|
12
|
-
"""
|
13
|
-
Feature:
|
14
|
-
Scenario:
|
15
|
-
Given this step passes
|
16
|
-
"""
|
17
|
-
When I run `cucumber -f debug`
|
18
|
-
Then the stderr should not contain anything
|
19
|
-
Then it should pass with:
|
20
|
-
"""
|
21
|
-
before_test_case
|
22
|
-
before_features
|
23
|
-
before_feature
|
24
|
-
before_tags
|
25
|
-
after_tags
|
26
|
-
feature_name
|
27
|
-
before_test_step
|
28
|
-
after_test_step
|
29
|
-
before_test_step
|
30
|
-
before_feature_element
|
31
|
-
before_tags
|
32
|
-
after_tags
|
33
|
-
scenario_name
|
34
|
-
before_steps
|
35
|
-
before_step
|
36
|
-
before_step_result
|
37
|
-
step_name
|
38
|
-
after_step_result
|
39
|
-
after_step
|
40
|
-
after_test_step
|
41
|
-
after_steps
|
42
|
-
after_feature_element
|
43
|
-
after_test_case
|
44
|
-
after_feature
|
45
|
-
after_features
|
46
|
-
done
|
47
|
-
"""
|
@@ -1,44 +0,0 @@
|
|
1
|
-
Feature: Formatter API: Step file path and line number (Issue #179)
|
2
|
-
To all reporter to understand location of current executing step let's fetch this information
|
3
|
-
from step/step_invocation and pass to reporters
|
4
|
-
|
5
|
-
Scenario: my own formatter
|
6
|
-
Given a file named "features/f.feature" with:
|
7
|
-
"""
|
8
|
-
Feature: I'll use my own
|
9
|
-
because I'm worth it
|
10
|
-
Scenario: just print step current line and feature file name
|
11
|
-
Given step at line 4
|
12
|
-
Given step at line 5
|
13
|
-
"""
|
14
|
-
And a file named "features/step_definitions/steps.rb" with:
|
15
|
-
"""
|
16
|
-
Given(/^step at line (.*)$/) {|line| }
|
17
|
-
"""
|
18
|
-
And a file named "features/support/jb/formatter.rb" with:
|
19
|
-
"""
|
20
|
-
module Jb
|
21
|
-
class Formatter
|
22
|
-
def initialize(runtime, io, options)
|
23
|
-
@io = io
|
24
|
-
end
|
25
|
-
|
26
|
-
def before_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line)
|
27
|
-
@io.puts "step result event: #{file_colon_line}"
|
28
|
-
end
|
29
|
-
|
30
|
-
def step_name(keyword, step_match, status, source_indent, background, file_colon_line)
|
31
|
-
@io.puts "step name event: #{file_colon_line}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
"""
|
36
|
-
When I run `cucumber features/f.feature --format Jb::Formatter`
|
37
|
-
Then it should pass with exactly:
|
38
|
-
"""
|
39
|
-
step result event: features/f.feature:4
|
40
|
-
step name event: features/f.feature:4
|
41
|
-
step result event: features/f.feature:5
|
42
|
-
step name event: features/f.feature:5
|
43
|
-
|
44
|
-
"""
|
@@ -1,91 +0,0 @@
|
|
1
|
-
Feature: HTML output formatter
|
2
|
-
|
3
|
-
Background:
|
4
|
-
Given the standard step definitions
|
5
|
-
And a file named "features/scenario_outline_with_undefined_steps.feature" with:
|
6
|
-
"""
|
7
|
-
Feature:
|
8
|
-
|
9
|
-
Scenario Outline:
|
10
|
-
Given this step is undefined
|
11
|
-
|
12
|
-
Examples:
|
13
|
-
|foo|
|
14
|
-
|bar|
|
15
|
-
"""
|
16
|
-
And a file named "features/scenario_outline_with_pending_step.feature" with:
|
17
|
-
"""
|
18
|
-
Feature: Outline
|
19
|
-
|
20
|
-
Scenario Outline: Will it blend?
|
21
|
-
Given this step is pending
|
22
|
-
And other step
|
23
|
-
When I do something with <example>
|
24
|
-
Then I should see something
|
25
|
-
Examples:
|
26
|
-
| example |
|
27
|
-
| one |
|
28
|
-
| two |
|
29
|
-
| three |
|
30
|
-
"""
|
31
|
-
And a file named "features/failing_background_step.feature" with:
|
32
|
-
"""
|
33
|
-
Feature: Feature with failing background step
|
34
|
-
|
35
|
-
Background:
|
36
|
-
Given this step fails
|
37
|
-
|
38
|
-
Scenario:
|
39
|
-
When I do something
|
40
|
-
Then I should see something
|
41
|
-
"""
|
42
|
-
|
43
|
-
Scenario: an scenario outline, one undefined step, one random example, expand flag on
|
44
|
-
When I run `cucumber features/scenario_outline_with_undefined_steps.feature --format html --expand `
|
45
|
-
Then it should pass
|
46
|
-
|
47
|
-
Scenario Outline: an scenario outline, one pending step
|
48
|
-
When I run `cucumber <file> --format html <flag>`
|
49
|
-
Then it should pass
|
50
|
-
And the output should contain:
|
51
|
-
"""
|
52
|
-
makeYellow('scenario_1')
|
53
|
-
"""
|
54
|
-
And the output should not contain:
|
55
|
-
"""
|
56
|
-
makeRed('scenario_1')
|
57
|
-
"""
|
58
|
-
|
59
|
-
Examples:
|
60
|
-
| file | flag |
|
61
|
-
| features/scenario_outline_with_pending_step.feature | --expand |
|
62
|
-
| features/scenario_outline_with_pending_step.feature | |
|
63
|
-
|
64
|
-
Examples:
|
65
|
-
| file | flag |
|
66
|
-
| features/scenario_outline_with_undefined_steps.feature | --expand |
|
67
|
-
| features/scenario_outline_with_undefined_steps.feature | |
|
68
|
-
|
69
|
-
Scenario: when using a profile the html shouldn't include 'Using the default profile...'
|
70
|
-
And a file named "cucumber.yml" with:
|
71
|
-
"""
|
72
|
-
default: -r features
|
73
|
-
"""
|
74
|
-
When I run `cucumber features/scenario_outline_with_undefined_steps.feature --profile default --format html`
|
75
|
-
Then it should pass
|
76
|
-
And the output should not contain:
|
77
|
-
"""
|
78
|
-
Using the default profile...
|
79
|
-
"""
|
80
|
-
|
81
|
-
Scenario: a feature with a failing background step
|
82
|
-
When I run `cucumber features/failing_background_step.feature --format html`
|
83
|
-
Then the output should not contain:
|
84
|
-
"""
|
85
|
-
makeRed('scenario_0')
|
86
|
-
"""
|
87
|
-
And the output should contain:
|
88
|
-
"""
|
89
|
-
makeRed('background_0')
|
90
|
-
"""
|
91
|
-
|