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,920 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'cucumber/formatter/spec_helper'
|
4
|
-
require 'cucumber/formatter/pretty'
|
5
|
-
require 'cucumber/cli/options'
|
6
|
-
|
7
|
-
module Cucumber
|
8
|
-
module Formatter
|
9
|
-
describe Pretty do
|
10
|
-
extend SpecHelperDsl
|
11
|
-
include SpecHelper
|
12
|
-
|
13
|
-
context 'With no options' do
|
14
|
-
before(:each) do
|
15
|
-
Cucumber::Term::ANSIColor.coloring = false
|
16
|
-
@out = StringIO.new
|
17
|
-
@formatter = Pretty.new(runtime, @out, {})
|
18
|
-
end
|
19
|
-
|
20
|
-
describe 'given a single feature' do
|
21
|
-
before(:each) do
|
22
|
-
run_defined_feature
|
23
|
-
end
|
24
|
-
|
25
|
-
describe 'with a scenario with no steps' do
|
26
|
-
define_feature <<-FEATURE
|
27
|
-
Feature: Banana party
|
28
|
-
|
29
|
-
Scenario: Monkey eats banana
|
30
|
-
FEATURE
|
31
|
-
|
32
|
-
it 'outputs the scenario name' do
|
33
|
-
expect(@out.string).to include 'Scenario: Monkey eats banana'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
describe 'with a scenario' do
|
39
|
-
define_feature <<-FEATURE
|
40
|
-
Feature: Banana party
|
41
|
-
|
42
|
-
Scenario: Monkey eats banana
|
43
|
-
Given there are bananas
|
44
|
-
FEATURE
|
45
|
-
|
46
|
-
it 'outputs the scenario name' do
|
47
|
-
expect(@out.string).to include 'Scenario: Monkey eats banana'
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'outputs the step' do
|
51
|
-
expect(@out.string).to include 'Given there are bananas'
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe 'with a background' do
|
56
|
-
define_feature <<-FEATURE
|
57
|
-
Feature: Banana party
|
58
|
-
|
59
|
-
Background:
|
60
|
-
Given a tree
|
61
|
-
|
62
|
-
Scenario: Monkey eats banana
|
63
|
-
Given there are bananas
|
64
|
-
FEATURE
|
65
|
-
|
66
|
-
it 'outputs the gherkin' do
|
67
|
-
expect(@out.string).to include(self.class.feature_content)
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'outputs the scenario name' do
|
71
|
-
expect(@out.string).to include 'Scenario: Monkey eats banana'
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'outputs the step' do
|
75
|
-
expect(@out.string).to include 'Given there are bananas'
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe 'with a scenario outline' do
|
80
|
-
define_feature <<-FEATURE
|
81
|
-
Feature: Fud Pyramid
|
82
|
-
|
83
|
-
Scenario Outline: Monkey eats a balanced diet
|
84
|
-
Given there are <Things>
|
85
|
-
|
86
|
-
Examples: Fruit
|
87
|
-
| Things |
|
88
|
-
| apples |
|
89
|
-
| bananas |
|
90
|
-
Examples: Vegetables
|
91
|
-
| Things |
|
92
|
-
| broccoli |
|
93
|
-
| carrots |
|
94
|
-
FEATURE
|
95
|
-
|
96
|
-
it 'outputs the scenario outline' do
|
97
|
-
lines = <<-OUTPUT
|
98
|
-
Examples: Fruit
|
99
|
-
| Things |
|
100
|
-
| apples |
|
101
|
-
| bananas |
|
102
|
-
Examples: Vegetables
|
103
|
-
| Things |
|
104
|
-
| broccoli |
|
105
|
-
| carrots |
|
106
|
-
OUTPUT
|
107
|
-
lines.split("\n").each do |line|
|
108
|
-
expect(@out.string).to include line.strip
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'has 4 undefined scenarios' do
|
113
|
-
expect(@out.string).to include '4 scenarios (4 undefined)'
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'has 4 undefined steps' do
|
117
|
-
expect(@out.string).to include '4 steps (4 undefined)'
|
118
|
-
end
|
119
|
-
|
120
|
-
context 'when the examples table header is wider than the rows' do
|
121
|
-
define_feature <<-FEATURE
|
122
|
-
Feature: Monkey Business
|
123
|
-
|
124
|
-
Scenario Outline: Types of monkey
|
125
|
-
Given there are <Types of monkey>
|
126
|
-
|
127
|
-
Examples:
|
128
|
-
| Types of monkey |
|
129
|
-
| Hominidae |
|
130
|
-
FEATURE
|
131
|
-
|
132
|
-
it 'outputs the scenario outline' do
|
133
|
-
lines = <<-OUTPUT
|
134
|
-
Examples:
|
135
|
-
| Types of monkey |
|
136
|
-
| Hominidae |
|
137
|
-
OUTPUT
|
138
|
-
lines.split("\n").each do |line|
|
139
|
-
expect(@out.string).to include line.strip
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
# To ensure https://rspec.lighthouseapp.com/projects/16211/tickets/475 remains fixed.
|
146
|
-
describe 'with a scenario outline with a pystring' do
|
147
|
-
define_feature <<-FEATURE
|
148
|
-
Feature:
|
149
|
-
Scenario Outline: Monkey eats a balanced diet
|
150
|
-
Given a multiline string:
|
151
|
-
"""
|
152
|
-
Monkeys eat <things>
|
153
|
-
"""
|
154
|
-
|
155
|
-
Examples:
|
156
|
-
| things |
|
157
|
-
| apples |
|
158
|
-
FEATURE
|
159
|
-
|
160
|
-
it 'outputs the scenario outline' do
|
161
|
-
lines = <<-OUTPUT
|
162
|
-
Given a multiline string:
|
163
|
-
"""
|
164
|
-
Monkeys eat <things>
|
165
|
-
"""
|
166
|
-
|
167
|
-
Examples:
|
168
|
-
| things |
|
169
|
-
| apples |
|
170
|
-
OUTPUT
|
171
|
-
lines.split("\n").each do |line|
|
172
|
-
expect(@out.string).to include line.strip
|
173
|
-
end
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
describe 'with a step with a py string' do
|
178
|
-
define_feature <<-FEATURE
|
179
|
-
Feature: Traveling circus
|
180
|
-
|
181
|
-
Scenario: Monkey goes to town
|
182
|
-
Given there is a monkey called:
|
183
|
-
"""
|
184
|
-
foo
|
185
|
-
"""
|
186
|
-
FEATURE
|
187
|
-
|
188
|
-
it 'displays the pystring nested' do
|
189
|
-
expect(@out.string).to include <<OUTPUT
|
190
|
-
"""
|
191
|
-
foo
|
192
|
-
"""
|
193
|
-
OUTPUT
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
describe 'with a multiline step arg' do
|
198
|
-
define_feature <<-FEATURE
|
199
|
-
Feature: Traveling circus
|
200
|
-
|
201
|
-
Scenario: Monkey goes to town
|
202
|
-
Given there are monkeys:
|
203
|
-
| name |
|
204
|
-
| foo |
|
205
|
-
| bar |
|
206
|
-
FEATURE
|
207
|
-
|
208
|
-
it 'displays the multiline string' do
|
209
|
-
expect(@out.string).to include <<OUTPUT
|
210
|
-
Given there are monkeys:
|
211
|
-
| name |
|
212
|
-
| foo |
|
213
|
-
| bar |
|
214
|
-
OUTPUT
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
describe 'with a table in the background and the scenario' do
|
219
|
-
define_feature <<-FEATURE
|
220
|
-
Feature: accountant monkey
|
221
|
-
|
222
|
-
Background:
|
223
|
-
Given table:
|
224
|
-
| a | b |
|
225
|
-
| c | d |
|
226
|
-
Scenario:
|
227
|
-
Given another table:
|
228
|
-
| e | f |
|
229
|
-
| g | h |
|
230
|
-
FEATURE
|
231
|
-
|
232
|
-
it 'displays the table for the background' do
|
233
|
-
expect(@out.string).to include <<OUTPUT
|
234
|
-
Given table:
|
235
|
-
| a | b |
|
236
|
-
| c | d |
|
237
|
-
OUTPUT
|
238
|
-
end
|
239
|
-
|
240
|
-
it 'displays the table for the scenario' do
|
241
|
-
expect(@out.string).to include <<OUTPUT
|
242
|
-
Given another table:
|
243
|
-
| e | f |
|
244
|
-
| g | h |
|
245
|
-
OUTPUT
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
describe 'with a py string in the background and the scenario' do
|
250
|
-
define_feature <<-FEATURE
|
251
|
-
Feature: py strings
|
252
|
-
|
253
|
-
Background:
|
254
|
-
Given stuff:
|
255
|
-
"""
|
256
|
-
foo
|
257
|
-
"""
|
258
|
-
Scenario:
|
259
|
-
Given more stuff:
|
260
|
-
"""
|
261
|
-
bar
|
262
|
-
"""
|
263
|
-
FEATURE
|
264
|
-
|
265
|
-
it 'displays the background py string' do
|
266
|
-
expect(@out.string).to include <<OUTPUT
|
267
|
-
Given stuff:
|
268
|
-
"""
|
269
|
-
foo
|
270
|
-
"""
|
271
|
-
OUTPUT
|
272
|
-
end
|
273
|
-
|
274
|
-
it 'displays the scenario py string' do
|
275
|
-
expect(@out.string).to include <<OUTPUT
|
276
|
-
Given more stuff:
|
277
|
-
"""
|
278
|
-
bar
|
279
|
-
"""
|
280
|
-
OUTPUT
|
281
|
-
end
|
282
|
-
end
|
283
|
-
|
284
|
-
describe 'with output from hooks' do
|
285
|
-
define_feature <<-FEATURE
|
286
|
-
Feature:
|
287
|
-
Scenario:
|
288
|
-
Given this step passes
|
289
|
-
Scenario Outline:
|
290
|
-
Given this step <status>
|
291
|
-
Examples:
|
292
|
-
| status |
|
293
|
-
| passes |
|
294
|
-
FEATURE
|
295
|
-
|
296
|
-
define_steps do
|
297
|
-
Before do
|
298
|
-
puts 'Before hook'
|
299
|
-
end
|
300
|
-
AfterStep do
|
301
|
-
puts 'AfterStep hook'
|
302
|
-
end
|
303
|
-
After do
|
304
|
-
puts 'After hook'
|
305
|
-
end
|
306
|
-
Given('this step passes') {}
|
307
|
-
end
|
308
|
-
|
309
|
-
it 'displays hook output appropriately ' do
|
310
|
-
expect( @out.string ).to include <<OUTPUT
|
311
|
-
Feature:
|
312
|
-
|
313
|
-
Scenario:
|
314
|
-
Before hook
|
315
|
-
Given this step passes
|
316
|
-
AfterStep hook
|
317
|
-
After hook
|
318
|
-
|
319
|
-
Scenario Outline:
|
320
|
-
Given this step <status>
|
321
|
-
|
322
|
-
Examples:
|
323
|
-
| status |
|
324
|
-
| passes | Before hook, AfterStep hook, After hook
|
325
|
-
|
326
|
-
2 scenarios (2 passed)
|
327
|
-
2 steps (2 passed)
|
328
|
-
OUTPUT
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
|
-
describe 'with background and output from hooks' do
|
333
|
-
define_feature <<-FEATURE
|
334
|
-
Feature:
|
335
|
-
Background:
|
336
|
-
Given this step passes
|
337
|
-
Scenario:
|
338
|
-
Given this step passes
|
339
|
-
FEATURE
|
340
|
-
|
341
|
-
define_steps do
|
342
|
-
Before do
|
343
|
-
puts 'Before hook'
|
344
|
-
end
|
345
|
-
AfterStep do
|
346
|
-
puts 'AfterStep hook'
|
347
|
-
end
|
348
|
-
After do
|
349
|
-
puts 'After hook'
|
350
|
-
end
|
351
|
-
Given('this step passes') {}
|
352
|
-
end
|
353
|
-
|
354
|
-
it 'displays hook output appropriately ' do
|
355
|
-
expect( @out.string ).to include <<OUTPUT
|
356
|
-
Feature:
|
357
|
-
|
358
|
-
Background:
|
359
|
-
Before hook
|
360
|
-
Given this step passes
|
361
|
-
AfterStep hook
|
362
|
-
|
363
|
-
Scenario:
|
364
|
-
Given this step passes
|
365
|
-
AfterStep hook
|
366
|
-
After hook
|
367
|
-
|
368
|
-
1 scenario (1 passed)
|
369
|
-
2 steps (2 passed)
|
370
|
-
OUTPUT
|
371
|
-
end
|
372
|
-
end
|
373
|
-
|
374
|
-
describe 'with tags on all levels' do
|
375
|
-
define_feature <<-FEATURE
|
376
|
-
@tag1
|
377
|
-
Feature:
|
378
|
-
@tag2
|
379
|
-
Scenario:
|
380
|
-
Given this step passes
|
381
|
-
@tag3
|
382
|
-
Scenario Outline:
|
383
|
-
Given this step passes
|
384
|
-
@tag4
|
385
|
-
Examples:
|
386
|
-
| dummy |
|
387
|
-
| dummy |
|
388
|
-
FEATURE
|
389
|
-
|
390
|
-
|
391
|
-
it 'includes the tags in the output ' do
|
392
|
-
expect( @out.string ).to include <<OUTPUT
|
393
|
-
@tag1
|
394
|
-
Feature:
|
395
|
-
|
396
|
-
@tag2
|
397
|
-
Scenario:
|
398
|
-
Given this step passes
|
399
|
-
|
400
|
-
@tag3
|
401
|
-
Scenario Outline:
|
402
|
-
Given this step passes
|
403
|
-
|
404
|
-
@tag4
|
405
|
-
Examples:
|
406
|
-
| dummy |
|
407
|
-
| dummy |
|
408
|
-
OUTPUT
|
409
|
-
end
|
410
|
-
end
|
411
|
-
|
412
|
-
describe 'with comments on all levels' do
|
413
|
-
define_feature <<-FEATURE
|
414
|
-
#comment1
|
415
|
-
Feature:
|
416
|
-
#comment2
|
417
|
-
Background:
|
418
|
-
#comment3
|
419
|
-
Given this step passes
|
420
|
-
#comment4
|
421
|
-
Scenario:
|
422
|
-
#comment5
|
423
|
-
Given this step passes
|
424
|
-
#comment6
|
425
|
-
| dummy |
|
426
|
-
#comment7
|
427
|
-
Scenario Outline:
|
428
|
-
#comment8
|
429
|
-
Given this step passes
|
430
|
-
#comment9
|
431
|
-
Examples:
|
432
|
-
#comment10
|
433
|
-
| dummy |
|
434
|
-
#comment11
|
435
|
-
| dummy |
|
436
|
-
FEATURE
|
437
|
-
|
438
|
-
|
439
|
-
it 'includes the all comments except for data table rows in the output ' do
|
440
|
-
expect( @out.string ).to include <<OUTPUT
|
441
|
-
#comment1
|
442
|
-
Feature:
|
443
|
-
|
444
|
-
#comment2
|
445
|
-
Background:
|
446
|
-
#comment3
|
447
|
-
Given this step passes
|
448
|
-
|
449
|
-
#comment4
|
450
|
-
Scenario:
|
451
|
-
#comment5
|
452
|
-
Given this step passes
|
453
|
-
| dummy |
|
454
|
-
|
455
|
-
#comment7
|
456
|
-
Scenario Outline:
|
457
|
-
#comment8
|
458
|
-
Given this step passes
|
459
|
-
|
460
|
-
#comment9
|
461
|
-
Examples:
|
462
|
-
#comment10
|
463
|
-
| dummy |
|
464
|
-
#comment11
|
465
|
-
| dummy |
|
466
|
-
OUTPUT
|
467
|
-
end
|
468
|
-
end
|
469
|
-
end
|
470
|
-
end
|
471
|
-
|
472
|
-
context 'With --no-multiline passed as an option' do
|
473
|
-
before(:each) do
|
474
|
-
Cucumber::Term::ANSIColor.coloring = false
|
475
|
-
@out = StringIO.new
|
476
|
-
@formatter = Pretty.new(runtime, @out, {:no_multiline => true})
|
477
|
-
end
|
478
|
-
|
479
|
-
describe 'given a single feature' do
|
480
|
-
before(:each) do
|
481
|
-
run_defined_feature
|
482
|
-
end
|
483
|
-
|
484
|
-
describe 'with a scenario' do
|
485
|
-
define_feature <<-FEATURE
|
486
|
-
Feature: Banana party
|
487
|
-
|
488
|
-
Scenario: Monkey eats banana
|
489
|
-
Given there are bananas
|
490
|
-
FEATURE
|
491
|
-
|
492
|
-
it 'outputs the scenario name' do
|
493
|
-
expect(@out.string).to include 'Scenario: Monkey eats banana'
|
494
|
-
end
|
495
|
-
|
496
|
-
it 'outputs the step' do
|
497
|
-
expect(@out.string).to include 'Given there are bananas'
|
498
|
-
end
|
499
|
-
end
|
500
|
-
|
501
|
-
describe 'with a scenario outline' do
|
502
|
-
define_feature <<-FEATURE
|
503
|
-
Feature: Fud Pyramid
|
504
|
-
|
505
|
-
Scenario Outline: Monkey eats a balanced diet
|
506
|
-
Given there are <Things>
|
507
|
-
|
508
|
-
Examples: Fruit
|
509
|
-
| Things |
|
510
|
-
| apples |
|
511
|
-
| bananas |
|
512
|
-
Examples: Vegetables
|
513
|
-
| Things |
|
514
|
-
| broccoli |
|
515
|
-
| carrots |
|
516
|
-
FEATURE
|
517
|
-
|
518
|
-
it 'outputs the scenario outline' do
|
519
|
-
lines = <<-OUTPUT
|
520
|
-
Examples: Fruit
|
521
|
-
| Things |
|
522
|
-
| apples |
|
523
|
-
| bananas |
|
524
|
-
Examples: Vegetables
|
525
|
-
| Things |
|
526
|
-
| broccoli |
|
527
|
-
| carrots |
|
528
|
-
OUTPUT
|
529
|
-
lines.split("\n").each do |line|
|
530
|
-
expect(@out.string).to include line.strip
|
531
|
-
end
|
532
|
-
end
|
533
|
-
|
534
|
-
it 'has 4 undefined scenarios' do
|
535
|
-
expect(@out.string).to include '4 scenarios (4 undefined)'
|
536
|
-
end
|
537
|
-
|
538
|
-
it 'has 4 undefined steps' do
|
539
|
-
expect(@out.string).to include '4 steps (4 undefined)'
|
540
|
-
end
|
541
|
-
end
|
542
|
-
|
543
|
-
describe 'with a step with a py string' do
|
544
|
-
define_feature <<-FEATURE
|
545
|
-
Feature: Traveling circus
|
546
|
-
|
547
|
-
Scenario: Monkey goes to town
|
548
|
-
Given there is a monkey called:
|
549
|
-
"""
|
550
|
-
foo
|
551
|
-
"""
|
552
|
-
FEATURE
|
553
|
-
|
554
|
-
it 'does not display the pystring' do
|
555
|
-
expect(@out.string).not_to include <<OUTPUT
|
556
|
-
"""
|
557
|
-
foo
|
558
|
-
"""
|
559
|
-
OUTPUT
|
560
|
-
end
|
561
|
-
end
|
562
|
-
|
563
|
-
describe 'with a multiline step arg' do
|
564
|
-
define_feature <<-FEATURE
|
565
|
-
Feature: Traveling circus
|
566
|
-
|
567
|
-
Scenario: Monkey goes to town
|
568
|
-
Given there are monkeys:
|
569
|
-
| name |
|
570
|
-
| foo |
|
571
|
-
| bar |
|
572
|
-
FEATURE
|
573
|
-
|
574
|
-
it 'does not display the multiline string' do
|
575
|
-
expect(@out.string).not_to include <<OUTPUT
|
576
|
-
| name |
|
577
|
-
| foo |
|
578
|
-
| bar |
|
579
|
-
OUTPUT
|
580
|
-
end
|
581
|
-
end
|
582
|
-
|
583
|
-
describe 'with a table in the background and the scenario' do
|
584
|
-
define_feature <<-FEATURE
|
585
|
-
Feature: accountant monkey
|
586
|
-
|
587
|
-
Background:
|
588
|
-
Given table:
|
589
|
-
| a | b |
|
590
|
-
| c | d |
|
591
|
-
Scenario:
|
592
|
-
Given another table:
|
593
|
-
| e | f |
|
594
|
-
| g | h |
|
595
|
-
FEATURE
|
596
|
-
|
597
|
-
it 'does not display the table for the background' do
|
598
|
-
expect(@out.string).not_to include <<OUTPUT
|
599
|
-
| a | b |
|
600
|
-
| c | d |
|
601
|
-
OUTPUT
|
602
|
-
end
|
603
|
-
it 'does not display the table for the scenario' do
|
604
|
-
expect(@out.string).not_to include <<OUTPUT
|
605
|
-
| e | f |
|
606
|
-
| g | h |
|
607
|
-
OUTPUT
|
608
|
-
end
|
609
|
-
end
|
610
|
-
|
611
|
-
describe 'with a py string in the background and the scenario' do
|
612
|
-
define_feature <<-FEATURE
|
613
|
-
Feature: py strings
|
614
|
-
|
615
|
-
Background:
|
616
|
-
Given stuff:
|
617
|
-
"""
|
618
|
-
foo
|
619
|
-
"""
|
620
|
-
Scenario:
|
621
|
-
Given more stuff:
|
622
|
-
"""
|
623
|
-
bar
|
624
|
-
"""
|
625
|
-
FEATURE
|
626
|
-
|
627
|
-
it 'does not display the background py string' do
|
628
|
-
expect(@out.string).not_to include <<OUTPUT
|
629
|
-
"""
|
630
|
-
foo
|
631
|
-
"""
|
632
|
-
OUTPUT
|
633
|
-
end
|
634
|
-
it 'does not display the scenario py string' do
|
635
|
-
expect(@out.string).not_to include <<OUTPUT
|
636
|
-
"""
|
637
|
-
bar
|
638
|
-
"""
|
639
|
-
OUTPUT
|
640
|
-
end
|
641
|
-
end
|
642
|
-
end
|
643
|
-
end
|
644
|
-
|
645
|
-
context 'In --expand mode' do
|
646
|
-
let(:options) { { expand: true } }
|
647
|
-
before(:each) do
|
648
|
-
Cucumber::Term::ANSIColor.coloring = false
|
649
|
-
@out = StringIO.new
|
650
|
-
@formatter = Pretty.new(runtime, @out, {})
|
651
|
-
end
|
652
|
-
|
653
|
-
describe 'given a single feature' do
|
654
|
-
before(:each) do
|
655
|
-
run_defined_feature
|
656
|
-
end
|
657
|
-
|
658
|
-
describe 'with a scenario outline' do
|
659
|
-
define_feature <<-FEATURE
|
660
|
-
Feature: Fud Pyramid
|
661
|
-
|
662
|
-
Scenario Outline: Monkey eats a balanced diet
|
663
|
-
Given there are <Things>
|
664
|
-
|
665
|
-
Examples: Fruit
|
666
|
-
| Things |
|
667
|
-
| apples |
|
668
|
-
| bananas |
|
669
|
-
Examples: Vegetables
|
670
|
-
| Things |
|
671
|
-
| broccoli |
|
672
|
-
| carrots |
|
673
|
-
FEATURE
|
674
|
-
|
675
|
-
it 'outputs the instantiated scenarios' do
|
676
|
-
lines = <<-OUTPUT
|
677
|
-
Examples: Fruit
|
678
|
-
Scenario: | apples |
|
679
|
-
Given there are apples
|
680
|
-
Scenario: | bananas |
|
681
|
-
Given there are bananas
|
682
|
-
Examples: Vegetables
|
683
|
-
Scenario: | broccoli |
|
684
|
-
Given there are broccoli
|
685
|
-
Scenario: | carrots |
|
686
|
-
Given there are carrots
|
687
|
-
OUTPUT
|
688
|
-
lines.split("\n").each do |line|
|
689
|
-
expect(@out.string).to include line.strip
|
690
|
-
end
|
691
|
-
end
|
692
|
-
end
|
693
|
-
|
694
|
-
describe 'with a scenario outline in en-lol' do
|
695
|
-
define_feature <<-FEATURE
|
696
|
-
# language: en-lol
|
697
|
-
OH HAI: STUFFING
|
698
|
-
|
699
|
-
MISHUN SRSLY: CUCUMBR
|
700
|
-
I CAN HAZ IN TEH BEGINNIN <BEGINNIN> CUCUMBRZ
|
701
|
-
WEN I EAT <EAT> CUCUMBRZ
|
702
|
-
DEN I HAS <EAT> CUCUMBERZ IN MAH BELLY
|
703
|
-
AN IN TEH END <KTHXBAI> CUCUMBRZ KTHXBAI
|
704
|
-
|
705
|
-
EXAMPLZ:
|
706
|
-
| BEGINNIN | EAT | KTHXBAI |
|
707
|
-
| 3 | 2 | 1 |
|
708
|
-
FEATURE
|
709
|
-
|
710
|
-
it 'outputs localized text' do
|
711
|
-
lines = <<-OUTPUT
|
712
|
-
OH HAI: STUFFING
|
713
|
-
|
714
|
-
MISHUN SRSLY: CUCUMBR
|
715
|
-
I CAN HAZ IN TEH BEGINNIN <BEGINNIN> CUCUMBRZ
|
716
|
-
WEN I EAT <EAT> CUCUMBRZ
|
717
|
-
DEN I HAS <EAT> CUCUMBERZ IN MAH BELLY
|
718
|
-
AN IN TEH END <KTHXBAI> CUCUMBRZ KTHXBAI
|
719
|
-
EXAMPLZ:
|
720
|
-
MISHUN: | 3 | 2 | 1 |
|
721
|
-
I CAN HAZ IN TEH BEGINNIN 3 CUCUMBRZ
|
722
|
-
WEN I EAT 2 CUCUMBRZ
|
723
|
-
DEN I HAS 2 CUCUMBERZ IN MAH BELLY
|
724
|
-
AN IN TEH END 1 CUCUMBRZ KTHXBAI
|
725
|
-
OUTPUT
|
726
|
-
lines.split("\n").each do |line|
|
727
|
-
expect(@out.string).to include line.strip
|
728
|
-
end
|
729
|
-
end
|
730
|
-
end
|
731
|
-
end
|
732
|
-
end
|
733
|
-
|
734
|
-
context 'In --expand mode with --source as an option' do
|
735
|
-
let(:options) { { expand: true } }
|
736
|
-
before(:each) do
|
737
|
-
Cucumber::Term::ANSIColor.coloring = false
|
738
|
-
@out = StringIO.new
|
739
|
-
@formatter = Pretty.new(runtime, @out, {:source => true})
|
740
|
-
end
|
741
|
-
|
742
|
-
describe 'given a single feature' do
|
743
|
-
before(:each) do
|
744
|
-
run_defined_feature
|
745
|
-
end
|
746
|
-
|
747
|
-
describe 'with a scenario outline' do
|
748
|
-
define_feature <<-FEATURE
|
749
|
-
Feature: Fud Pyramid
|
750
|
-
|
751
|
-
Scenario Outline: Monkey eats a balanced diet
|
752
|
-
Given there are <Things>
|
753
|
-
|
754
|
-
Examples: Fruit
|
755
|
-
| Things |
|
756
|
-
| apples |
|
757
|
-
| bananas |
|
758
|
-
Examples: Vegetables
|
759
|
-
| Things |
|
760
|
-
| broccoli |
|
761
|
-
| carrots |
|
762
|
-
FEATURE
|
763
|
-
|
764
|
-
it 'includes the source in the output' do
|
765
|
-
lines = <<-OUTPUT
|
766
|
-
Scenario Outline: Monkey eats a balanced diet # spec.feature:3
|
767
|
-
Given there are <Things> # spec.feature:4
|
768
|
-
Examples: Fruit
|
769
|
-
Scenario: | apples | # spec.feature:8
|
770
|
-
Given there are apples # spec.feature:8
|
771
|
-
Scenario: | bananas | # spec.feature:9
|
772
|
-
Given there are bananas # spec.feature:9
|
773
|
-
Examples: Vegetables
|
774
|
-
Scenario: | broccoli | # spec.feature:12
|
775
|
-
Given there are broccoli # spec.feature:12
|
776
|
-
Scenario: | carrots | # spec.feature:13
|
777
|
-
Given there are carrots # spec.feature:13
|
778
|
-
OUTPUT
|
779
|
-
lines.split("\n").each do |line|
|
780
|
-
expect(@out.string).to include line.strip
|
781
|
-
end
|
782
|
-
end
|
783
|
-
|
784
|
-
context 'With very wide cells' do
|
785
|
-
define_feature <<-FEATURE
|
786
|
-
Feature: Monkey Business
|
787
|
-
|
788
|
-
Scenario Outline: Types of monkey
|
789
|
-
Given there are <Types of monkey>
|
790
|
-
|
791
|
-
Examples:
|
792
|
-
| Types of monkey | Extra |
|
793
|
-
| Hominidae | Very long cell content |
|
794
|
-
FEATURE
|
795
|
-
|
796
|
-
it 'the scenario line controls the source indentation' do
|
797
|
-
lines = <<-OUTPUT
|
798
|
-
Examples:
|
799
|
-
Scenario: | Hominidae | Very long cell content | # spec.feature:8
|
800
|
-
Given there are Hominidae # spec.feature:8
|
801
|
-
|
802
|
-
OUTPUT
|
803
|
-
lines.split("\n").each do |line|
|
804
|
-
expect(@out.string).to include line.strip
|
805
|
-
end
|
806
|
-
end
|
807
|
-
end
|
808
|
-
end
|
809
|
-
end
|
810
|
-
end
|
811
|
-
|
812
|
-
context 'snippets contain relevant keyword replacements' do
|
813
|
-
|
814
|
-
before(:each) do
|
815
|
-
Cucumber::Term::ANSIColor.coloring = false
|
816
|
-
@out = StringIO.new
|
817
|
-
@formatter = Pretty.new(runtime, @out, {snippets: true})
|
818
|
-
run_defined_feature
|
819
|
-
end
|
820
|
-
|
821
|
-
describe 'With a scenario that has undefined steps' do
|
822
|
-
define_feature <<-FEATURE
|
823
|
-
Feature: Banana party
|
824
|
-
|
825
|
-
Scenario: many monkeys eat many things
|
826
|
-
Given there are bananas and apples
|
827
|
-
And other monkeys are around
|
828
|
-
When one monkey eats a banana
|
829
|
-
And the other monkeys eat all the apples
|
830
|
-
Then bananas remain
|
831
|
-
But there are no apples left
|
832
|
-
FEATURE
|
833
|
-
|
834
|
-
it "containes snippets with 'And' or 'But' replaced by previous step name" do
|
835
|
-
expect(@out.string).to include('Given("there are bananas and apples")')
|
836
|
-
expect(@out.string).to include('Given("other monkeys are around")')
|
837
|
-
expect(@out.string).to include('When("one monkey eats a banana")')
|
838
|
-
expect(@out.string).to include('When("the other monkeys eat all the apples")')
|
839
|
-
expect(@out.string).to include('Then("bananas remain")')
|
840
|
-
expect(@out.string).to include('Then("there are no apples left")')
|
841
|
-
end
|
842
|
-
end
|
843
|
-
|
844
|
-
describe "With a scenario that uses * and 'But'" do
|
845
|
-
define_feature <<-FEATURE
|
846
|
-
Feature: Banana party
|
847
|
-
|
848
|
-
Scenario: many monkeys eat many things
|
849
|
-
* there are bananas and apples
|
850
|
-
* other monkeys are around
|
851
|
-
When one monkey eats a banana
|
852
|
-
* the other monkeys eat all the apples
|
853
|
-
Then bananas remain
|
854
|
-
* there are no apples left
|
855
|
-
FEATURE
|
856
|
-
it "replaces the first step with 'Given'" do
|
857
|
-
expect(@out.string).to include('Given("there are bananas and apples")')
|
858
|
-
end
|
859
|
-
it "uses actual keywords as the 'previous' keyword for future replacements" do
|
860
|
-
expect(@out.string).to include('Given("other monkeys are around")')
|
861
|
-
expect(@out.string).to include('When("the other monkeys eat all the apples")')
|
862
|
-
expect(@out.string).to include('Then("there are no apples left")')
|
863
|
-
end
|
864
|
-
end
|
865
|
-
|
866
|
-
describe "With a scenario where the only undefined step uses 'And'" do
|
867
|
-
define_feature <<-FEATURE
|
868
|
-
Feature:
|
869
|
-
|
870
|
-
Scenario:
|
871
|
-
Given this step passes
|
872
|
-
Then this step passes
|
873
|
-
And this step is undefined
|
874
|
-
FEATURE
|
875
|
-
define_steps do
|
876
|
-
Given('this step passes') {}
|
877
|
-
end
|
878
|
-
it 'uses actual keyword of the previous passing step for the undefined step' do
|
879
|
-
expect(@out.string).to include('Then("this step is undefined")')
|
880
|
-
end
|
881
|
-
end
|
882
|
-
|
883
|
-
describe "With scenarios where the first step is undefined and uses '*'" do
|
884
|
-
define_feature <<-FEATURE
|
885
|
-
Feature:
|
886
|
-
|
887
|
-
Scenario:
|
888
|
-
* this step is undefined
|
889
|
-
Then this step passes
|
890
|
-
|
891
|
-
Scenario:
|
892
|
-
* this step is also undefined
|
893
|
-
Then this step passes
|
894
|
-
FEATURE
|
895
|
-
define_steps do
|
896
|
-
Given('this step passes') {}
|
897
|
-
end
|
898
|
-
it "uses 'Given' as actual keyword the step in each scenario" do
|
899
|
-
expect(@out.string).to include('Given("this step is undefined")')
|
900
|
-
expect(@out.string).to include('Given("this step is also undefined")')
|
901
|
-
end
|
902
|
-
end
|
903
|
-
|
904
|
-
describe 'with a scenario in en-lol' do
|
905
|
-
define_feature <<-FEATURE
|
906
|
-
# language: en-lol
|
907
|
-
OH HAI: STUFFING
|
908
|
-
|
909
|
-
MISHUN: CUCUMBR
|
910
|
-
I CAN HAZ IN TEH BEGINNIN CUCUMBRZ
|
911
|
-
AN I EAT CUCUMBRZ
|
912
|
-
FEATURE
|
913
|
-
it 'uses actual keyword of the previous passing step for the undefined step' do
|
914
|
-
expect(@out.string).to include('ICANHAZ("I EAT CUCUMBRZ")')
|
915
|
-
end
|
916
|
-
end
|
917
|
-
end
|
918
|
-
end
|
919
|
-
end
|
920
|
-
end
|