cucumber 3.0.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +84 -4
- data/CONTRIBUTING.md +3 -4
- data/README.md +12 -12
- data/lib/autotest/cucumber.rb +1 -0
- data/lib/autotest/cucumber_mixin.rb +1 -0
- data/lib/autotest/cucumber_rails.rb +1 -0
- data/lib/autotest/cucumber_rails_rspec.rb +1 -0
- data/lib/autotest/cucumber_rails_rspec2.rb +1 -0
- data/lib/autotest/cucumber_rspec.rb +1 -0
- data/lib/autotest/cucumber_rspec2.rb +1 -0
- data/lib/autotest/discover.rb +1 -0
- data/lib/cucumber.rb +1 -0
- data/lib/cucumber/cli/configuration.rb +1 -0
- data/lib/cucumber/cli/main.rb +2 -2
- data/lib/cucumber/cli/options.rb +63 -55
- data/lib/cucumber/cli/profile_loader.rb +5 -7
- data/lib/cucumber/cli/rerun_file.rb +1 -0
- data/lib/cucumber/configuration.rb +8 -7
- data/lib/cucumber/constantize.rb +6 -5
- data/lib/cucumber/core_ext/string.rb +1 -0
- data/lib/cucumber/deprecate.rb +1 -1
- data/lib/cucumber/encoding.rb +2 -1
- data/lib/cucumber/errors.rb +2 -1
- data/lib/cucumber/events.rb +1 -2
- data/lib/cucumber/events/gherkin_source_read.rb +1 -4
- data/lib/cucumber/events/step_activated.rb +4 -5
- data/lib/cucumber/events/step_definition_registered.rb +4 -8
- data/lib/cucumber/events/test_case_finished.rb +0 -4
- data/lib/cucumber/events/test_case_started.rb +0 -4
- data/lib/cucumber/events/test_run_finished.rb +2 -3
- data/lib/cucumber/events/test_run_started.rb +2 -4
- data/lib/cucumber/events/test_step_finished.rb +0 -6
- data/lib/cucumber/events/test_step_started.rb +1 -7
- data/lib/cucumber/file_specs.rb +2 -1
- data/lib/cucumber/filters.rb +1 -0
- data/lib/cucumber/filters/activate_steps.rb +1 -1
- data/lib/cucumber/filters/apply_after_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_after_step_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_around_hooks.rb +1 -0
- data/lib/cucumber/filters/apply_before_hooks.rb +1 -0
- data/lib/cucumber/filters/broadcast_test_run_started_event.rb +2 -1
- data/lib/cucumber/filters/gated_receiver.rb +1 -2
- data/lib/cucumber/filters/prepare_world.rb +2 -5
- data/lib/cucumber/filters/quit.rb +2 -4
- data/lib/cucumber/filters/randomizer.rb +6 -7
- data/lib/cucumber/filters/retry.rb +2 -2
- data/lib/cucumber/filters/tag_limits.rb +2 -2
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +1 -2
- data/lib/cucumber/filters/tag_limits/verifier.rb +1 -2
- data/lib/cucumber/formatter/ansicolor.rb +13 -12
- data/lib/cucumber/formatter/backtrace_filter.rb +1 -2
- data/lib/cucumber/formatter/console.rb +11 -12
- data/lib/cucumber/formatter/console_counts.rb +4 -4
- data/lib/cucumber/formatter/console_issues.rb +3 -3
- data/lib/cucumber/formatter/duration.rb +1 -0
- data/lib/cucumber/formatter/duration_extractor.rb +1 -1
- data/lib/cucumber/formatter/fail_fast.rb +9 -6
- data/lib/cucumber/formatter/fanout.rb +1 -3
- data/lib/cucumber/formatter/hook_query_visitor.rb +1 -0
- data/lib/cucumber/formatter/html.rb +28 -32
- data/lib/cucumber/formatter/html_builder.rb +3 -2
- data/lib/cucumber/formatter/http_io.rb +146 -0
- data/lib/cucumber/formatter/ignore_missing_messages.rb +1 -3
- data/lib/cucumber/formatter/interceptor.rb +18 -5
- data/lib/cucumber/formatter/io.rb +18 -11
- data/lib/cucumber/formatter/json.rb +11 -4
- data/lib/cucumber/formatter/json_pretty.rb +1 -1
- data/lib/cucumber/formatter/junit.rb +22 -17
- data/lib/cucumber/formatter/pretty.rb +4 -3
- data/lib/cucumber/formatter/progress.rb +3 -2
- data/lib/cucumber/formatter/rerun.rb +2 -1
- data/lib/cucumber/formatter/stepdefs.rb +1 -0
- data/lib/cucumber/formatter/steps.rb +2 -2
- data/lib/cucumber/formatter/summary.rb +1 -2
- data/lib/cucumber/formatter/unicode.rb +2 -2
- data/lib/cucumber/formatter/usage.rb +22 -19
- data/lib/cucumber/gherkin/data_table_parser.rb +1 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +86 -85
- data/lib/cucumber/gherkin/formatter/escaping.rb +13 -12
- data/lib/cucumber/gherkin/i18n.rb +1 -0
- data/lib/cucumber/gherkin/steps_parser.rb +1 -0
- data/lib/cucumber/glue/dsl.rb +1 -0
- data/lib/cucumber/glue/hook.rb +1 -0
- data/lib/cucumber/glue/invoke_in_world.rb +3 -3
- data/lib/cucumber/glue/proto_world.rb +10 -9
- data/lib/cucumber/glue/registry_and_more.rb +13 -12
- data/lib/cucumber/glue/snippet.rb +1 -5
- data/lib/cucumber/glue/step_definition.rb +10 -10
- data/lib/cucumber/glue/world_factory.rb +1 -3
- data/lib/cucumber/hooks.rb +13 -3
- data/lib/cucumber/load_path.rb +1 -0
- data/lib/cucumber/multiline_argument.rb +3 -3
- data/lib/cucumber/multiline_argument/data_table.rb +16 -20
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +7 -11
- data/lib/cucumber/multiline_argument/doc_string.rb +1 -0
- data/lib/cucumber/platform.rb +2 -1
- data/lib/cucumber/project_initializer.rb +1 -1
- data/lib/cucumber/rake/task.rb +8 -5
- data/lib/cucumber/rspec/disable_option_parser.rb +1 -0
- data/lib/cucumber/rspec/doubles.rb +1 -0
- data/lib/cucumber/running_test_case.rb +2 -1
- data/lib/cucumber/runtime.rb +6 -6
- data/lib/cucumber/runtime/after_hooks.rb +1 -0
- data/lib/cucumber/runtime/before_hooks.rb +1 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +8 -7
- data/lib/cucumber/runtime/step_hooks.rb +2 -0
- data/lib/cucumber/runtime/support_code.rb +3 -7
- data/lib/cucumber/runtime/user_interface.rb +2 -3
- data/lib/cucumber/step_argument.rb +1 -0
- data/lib/cucumber/step_definition_light.rb +2 -1
- data/lib/cucumber/step_definitions.rb +2 -1
- data/lib/cucumber/step_match.rb +9 -8
- data/lib/cucumber/step_match_search.rb +8 -9
- data/lib/cucumber/term/ansicolor.rb +30 -30
- data/lib/cucumber/unit.rb +1 -0
- data/lib/cucumber/version +1 -1
- data/lib/simplecov_setup.rb +1 -0
- metadata +64 -659
- data/.coveralls.yml +0 -1
- data/.cucumberproignore +0 -6
- data/.gitattributes +0 -32
- data/.github/ISSUE_TEMPLATE.md +0 -48
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -40
- data/.rspec +0 -1
- data/.rubocop.yml +0 -13
- data/.rubocop_todo.yml +0 -991
- data/.ruby-gemset +0 -1
- data/.travis.yml +0 -70
- data/.yardopts +0 -1
- data/Gemfile +0 -28
- data/Rakefile +0 -32
- data/appveyor.yml +0 -27
- data/cucumber.gemspec +0 -52
- data/cucumber.yml +0 -19
- data/examples/i18n/README.textile +0 -3
- data/examples/i18n/Rakefile +0 -33
- data/examples/i18n/ar/Rakefile +0 -6
- data/examples/i18n/ar/features/addition.feature +0 -17
- data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/ar/lib/calculator.rb +0 -11
- data/examples/i18n/bg/Rakefile +0 -6
- data/examples/i18n/bg/features/addition.feature +0 -12
- data/examples/i18n/bg/features/consecutive_calculations.feature +0 -19
- data/examples/i18n/bg/features/division.feature +0 -17
- data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +0 -24
- data/examples/i18n/bg/features/support/env.rb +0 -10
- data/examples/i18n/bg/features/support/world.rb +0 -8
- data/examples/i18n/bg/lib/calculator.rb +0 -25
- data/examples/i18n/ca/Rakefile +0 -6
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +0 -26
- data/examples/i18n/ca/features/suma.feature +0 -17
- data/examples/i18n/ca/lib/calculadora.rb +0 -16
- data/examples/i18n/cs/Rakefile +0 -6
- data/examples/i18n/cs/features/addition.feature +0 -17
- data/examples/i18n/cs/features/division.feature +0 -11
- data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/cs/lib/calculator.rb +0 -14
- data/examples/i18n/da/Rakefile +0 -6
- data/examples/i18n/da/features/sammenlaegning.feature +0 -18
- data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +0 -29
- data/examples/i18n/da/lib/lommeregner.rb +0 -11
- data/examples/i18n/de/Rakefile +0 -6
- data/examples/i18n/de/features/addition.feature +0 -17
- data/examples/i18n/de/features/division.feature +0 -10
- data/examples/i18n/de/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/de/lib/calculator.rb +0 -14
- data/examples/i18n/el/Rakefile +0 -6
- data/examples/i18n/el/features/addition.feature +0 -17
- data/examples/i18n/el/features/division.feature +0 -10
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/el/lib/calculator.rb +0 -14
- data/examples/i18n/en-lol/Rakefile +0 -4
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +0 -16
- data/examples/i18n/en-lol/features/stuffing.feature +0 -8
- data/examples/i18n/en-lol/features/support/env.rb +0 -11
- data/examples/i18n/en-lol/lib/basket.rb +0 -12
- data/examples/i18n/en-lol/lib/belly.rb +0 -11
- data/examples/i18n/en/Rakefile +0 -6
- data/examples/i18n/en/features/addition.feature +0 -17
- data/examples/i18n/en/features/division.feature +0 -10
- data/examples/i18n/en/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/en/lib/calculator.rb +0 -14
- data/examples/i18n/eo/Rakefile +0 -6
- data/examples/i18n/eo/features/adicio.feature +0 -17
- data/examples/i18n/eo/features/divido.feature +0 -10
- data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/eo/lib/calculator.rb +0 -14
- data/examples/i18n/es/Rakefile +0 -6
- data/examples/i18n/es/features/adicion.feature +0 -17
- data/examples/i18n/es/features/step_definitions/calculador_steps.rb +0 -26
- data/examples/i18n/es/lib/calculador.rb +0 -14
- data/examples/i18n/et/Rakefile +0 -6
- data/examples/i18n/et/features/jagamine.feature +0 -10
- data/examples/i18n/et/features/liitmine.feature +0 -17
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +0 -29
- data/examples/i18n/et/lib/kalkulaator.rb +0 -14
- data/examples/i18n/fi/Rakefile +0 -6
- data/examples/i18n/fi/features/jakolasku.feature +0 -10
- data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +0 -29
- data/examples/i18n/fi/features/yhteenlasku.feature +0 -17
- data/examples/i18n/fi/lib/laskin.rb +0 -14
- data/examples/i18n/fr/Rakefile +0 -8
- data/examples/i18n/fr/features/addition.feature +0 -18
- data/examples/i18n/fr/features/addition2.feature +0 -17
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +0 -32
- data/examples/i18n/fr/features/support/env.rb +0 -10
- data/examples/i18n/fr/lib/calculatrice.rb +0 -10
- data/examples/i18n/he/Rakefile +0 -6
- data/examples/i18n/he/features/addition.feature +0 -17
- data/examples/i18n/he/features/division.feature +0 -10
- data/examples/i18n/he/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/he/lib/calculator.rb +0 -15
- data/examples/i18n/hi/Rakefile +0 -6
- data/examples/i18n/hi/features/addition.feature +0 -16
- data/examples/i18n/hi/features/division.feature +0 -10
- data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/hi/lib/calculator.rb +0 -15
- data/examples/i18n/ht/Rakefile +0 -6
- data/examples/i18n/ht/features/adisyon.feature +0 -17
- data/examples/i18n/ht/features/divizyon.feature +0 -10
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +0 -29
- data/examples/i18n/ht/lib/kalkilatris.rb +0 -14
- data/examples/i18n/hu/Rakefile +0 -6
- data/examples/i18n/hu/features/osszeadas.feature +0 -17
- data/examples/i18n/hu/features/osztas.feature +0 -10
- data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +0 -30
- data/examples/i18n/hu/lib/calculator.rb +0 -14
- data/examples/i18n/id/Rakefile +0 -6
- data/examples/i18n/id/features/addition.feature +0 -17
- data/examples/i18n/id/features/division.feature +0 -10
- data/examples/i18n/id/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/id/lib/calculator.rb +0 -14
- data/examples/i18n/it/Rakefile +0 -6
- data/examples/i18n/it/features/somma.feature +0 -11
- data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +0 -29
- data/examples/i18n/it/lib/calcolatrice.rb +0 -11
- data/examples/i18n/ja/Rakefile +0 -6
- data/examples/i18n/ja/features/addition.feature +0 -17
- data/examples/i18n/ja/features/division.feature +0 -10
- data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/ja/features/support/env.rb +0 -10
- data/examples/i18n/ja/lib/calculator.rb +0 -14
- data/examples/i18n/ko/Rakefile +0 -6
- data/examples/i18n/ko/features/addition.feature +0 -17
- data/examples/i18n/ko/features/division.feature +0 -11
- data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/ko/lib/calculator.rb +0 -14
- data/examples/i18n/lt/Rakefile +0 -6
- data/examples/i18n/lt/features/addition.feature +0 -17
- data/examples/i18n/lt/features/division.feature +0 -10
- data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/lt/lib/calculator.rb +0 -14
- data/examples/i18n/lv/Rakefile +0 -6
- data/examples/i18n/lv/features/addition.feature +0 -17
- data/examples/i18n/lv/features/division.feature +0 -10
- data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/lv/lib/calculator.rb +0 -14
- data/examples/i18n/no/Rakefile +0 -6
- data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +0 -17
- data/examples/i18n/no/features/summering.feature +0 -19
- data/examples/i18n/no/features/support/env.rb +0 -11
- data/examples/i18n/no/lib/kalkulator.rb +0 -11
- data/examples/i18n/pl/Rakefile +0 -6
- data/examples/i18n/pl/features/addition.feature +0 -17
- data/examples/i18n/pl/features/division.feature +0 -10
- data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/pl/features/support/env.rb +0 -10
- data/examples/i18n/pl/lib/calculator.rb +0 -14
- data/examples/i18n/pt/Rakefile +0 -6
- data/examples/i18n/pt/features/adicao.feature +0 -11
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +0 -20
- data/examples/i18n/pt/features/support/env.rb +0 -10
- data/examples/i18n/pt/lib/calculadora.rb +0 -10
- data/examples/i18n/ro/Rakefile +0 -6
- data/examples/i18n/ro/features/adunare.feature +0 -12
- data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +0 -26
- data/examples/i18n/ro/lib/calculator.rb +0 -11
- data/examples/i18n/ru/Rakefile +0 -6
- data/examples/i18n/ru/features/addition.feature +0 -11
- data/examples/i18n/ru/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/ru/features/division.feature +0 -16
- data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/ru/features/support/env.rb +0 -10
- data/examples/i18n/ru/features/support/world.rb +0 -8
- data/examples/i18n/ru/lib/calculator.rb +0 -25
- data/examples/i18n/sk/Rakefile +0 -6
- data/examples/i18n/sk/features/addition.feature +0 -17
- data/examples/i18n/sk/features/division.feature +0 -10
- data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/sk/lib/calculator.rb +0 -14
- data/examples/i18n/sr-Cyrl/Rakefile +0 -6
- data/examples/i18n/sr-Cyrl/features/sabiranje.feature +0 -18
- data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +0 -20
- data/examples/i18n/sr-Cyrl/features/support/env.rb +0 -10
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +0 -12
- data/examples/i18n/sr-Latn/Rakefile +0 -6
- data/examples/i18n/sr-Latn/features/sabiranje.feature +0 -18
- data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/sr-Latn/lib/calculator.rb +0 -12
- data/examples/i18n/sv/Rakefile +0 -6
- data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +0 -29
- data/examples/i18n/sv/features/summering.feature +0 -18
- data/examples/i18n/sv/lib/kalkulator.rb +0 -11
- data/examples/i18n/tr/Rakefile +0 -6
- data/examples/i18n/tr/features/bolme.feature +0 -10
- data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +0 -29
- data/examples/i18n/tr/features/toplama.feature +0 -18
- data/examples/i18n/tr/lib/hesap_makinesi.rb +0 -15
- data/examples/i18n/uk/Rakefile +0 -6
- data/examples/i18n/uk/features/addition.feature +0 -11
- data/examples/i18n/uk/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/uk/features/division.feature +0 -16
- data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/uk/features/support/env.rb +0 -10
- data/examples/i18n/uk/features/support/world.rb +0 -8
- data/examples/i18n/uk/lib/calculator.rb +0 -25
- data/examples/i18n/uz/Rakefile +0 -6
- data/examples/i18n/uz/features/addition.feature +0 -10
- data/examples/i18n/uz/features/consecutive_calculations.feature +0 -17
- data/examples/i18n/uz/features/division.feature +0 -17
- data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +0 -19
- data/examples/i18n/uz/features/support/env.rb +0 -10
- data/examples/i18n/uz/features/support/world.rb +0 -8
- data/examples/i18n/uz/lib/calculator.rb +0 -25
- data/examples/i18n/zh-CN/Rakefile +0 -4
- data/examples/i18n/zh-CN/features/addition.feature +0 -18
- data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +0 -31
- data/examples/i18n/zh-CN/lib/calculator.rb +0 -10
- data/examples/i18n/zh-TW/Rakefile +0 -4
- data/examples/i18n/zh-TW/features/addition.feature +0 -17
- data/examples/i18n/zh-TW/features/division.feature +0 -11
- data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +0 -29
- data/examples/i18n/zh-TW/lib/calculator.rb +0 -14
- data/examples/rspec_doubles/Rakefile +0 -4
- data/examples/rspec_doubles/features/mocking.feature +0 -9
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +0 -19
- data/examples/rspec_doubles/features/support/env.rb +0 -12
- data/examples/sinatra/README.textile +0 -13
- data/examples/sinatra/Rakefile +0 -6
- data/examples/sinatra/app.rb +0 -14
- data/examples/sinatra/features/add.feature +0 -11
- data/examples/sinatra/features/step_definitions/add_steps.rb +0 -15
- data/examples/sinatra/features/support/env.rb +0 -15
- data/examples/sinatra/views/add.erb +0 -7
- data/examples/sinatra/views/layout.erb +0 -8
- data/examples/tcl/README.textile +0 -11
- data/examples/tcl/Rakefile +0 -6
- data/examples/tcl/features/fibonnacci.feature +0 -17
- data/examples/tcl/features/step_definitions/fib_steps.rb +0 -7
- data/examples/tcl/features/support/env.rb +0 -7
- data/examples/tcl/src/fib.tcl +0 -3
- data/examples/test_unit/Gemfile +0 -4
- data/examples/test_unit/Rakefile +0 -6
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +0 -20
- data/examples/test_unit/features/test_unit.feature +0 -9
- data/examples/watir/README.textile +0 -16
- data/examples/watir/Rakefile +0 -12
- data/examples/watir/cucumber.yml +0 -1
- data/examples/watir/features/search.feature +0 -12
- data/examples/watir/features/step_definitions/search_steps.rb +0 -27
- data/examples/watir/features/support/env.rb +0 -39
- data/examples/watir/features/support/screenshots.rb +0 -47
- data/features/docs/api/list_step_defs_as_json.feature +0 -64
- data/features/docs/api/listen_for_events.feature +0 -59
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +0 -27
- data/features/docs/cli/backtraces.feature +0 -36
- data/features/docs/cli/dry_run.feature +0 -73
- data/features/docs/cli/exclude_files.feature +0 -18
- data/features/docs/cli/execute_with_tag_filter.feature +0 -119
- data/features/docs/cli/fail_fast.feature +0 -48
- data/features/docs/cli/finding_steps.feature +0 -28
- data/features/docs/cli/help.feature +0 -8
- data/features/docs/cli/i18n.feature +0 -42
- data/features/docs/cli/randomize.feature +0 -140
- data/features/docs/cli/require.feature +0 -27
- data/features/docs/cli/retry_failing_tests.feature +0 -92
- data/features/docs/cli/run_scenarios_matching_name.feature +0 -105
- data/features/docs/cli/run_specific_scenarios.feature +0 -77
- data/features/docs/cli/showing_differences.feature +0 -43
- data/features/docs/cli/specifying_multiple_formatters.feature +0 -68
- data/features/docs/cli/strict_mode.feature +0 -70
- data/features/docs/defining_steps/ambiguous_steps.feature +0 -89
- data/features/docs/defining_steps/nested_steps.feature +0 -181
- data/features/docs/defining_steps/nested_steps_i18n.feature +0 -37
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +0 -56
- data/features/docs/defining_steps/one_line_step_definitions.feature +0 -65
- data/features/docs/defining_steps/printing_messages.feature +0 -147
- data/features/docs/defining_steps/skip_scenario.feature +0 -31
- data/features/docs/defining_steps/snippets.feature +0 -56
- data/features/docs/defining_steps/table_diffing.feature +0 -50
- data/features/docs/events/gherkin_source_read_event.feature +0 -43
- data/features/docs/events/step_activated_event.feature +0 -36
- data/features/docs/events/step_definition_registered_event.feature +0 -29
- data/features/docs/events/test_case_finished_event.feature +0 -35
- data/features/docs/events/test_case_started_event.feature +0 -54
- data/features/docs/events/test_run_finished_event.feature +0 -40
- data/features/docs/events/test_run_started_event.feature +0 -41
- data/features/docs/events/test_step_finished_event.feature +0 -47
- data/features/docs/events/test_step_started_event.feature +0 -43
- data/features/docs/exception_in_after_hook.feature +0 -127
- data/features/docs/exception_in_after_step_hook.feature +0 -104
- data/features/docs/exception_in_around_hook.feature +0 -80
- data/features/docs/exception_in_before_hook.feature +0 -98
- data/features/docs/extending_cucumber/custom_filter.feature +0 -29
- data/features/docs/extending_cucumber/custom_formatter.feature +0 -94
- data/features/docs/formatters/api_methods.feature +0 -37
- data/features/docs/formatters/html_formatter.feature +0 -91
- data/features/docs/formatters/json_formatter.feature +0 -767
- data/features/docs/formatters/junit_formatter.feature +0 -455
- data/features/docs/formatters/pretty_formatter.feature +0 -74
- data/features/docs/formatters/progress_formatter.feature +0 -32
- data/features/docs/formatters/rerun_formatter.feature +0 -190
- data/features/docs/formatters/summary_formatter.feature +0 -35
- data/features/docs/formatters/usage_formatter.feature +0 -101
- data/features/docs/getting_started.feature +0 -28
- data/features/docs/gherkin/background.feature +0 -548
- data/features/docs/gherkin/doc_strings.feature +0 -76
- data/features/docs/gherkin/expand_option_for_outlines.feature +0 -47
- data/features/docs/gherkin/language_from_header.feature +0 -32
- data/features/docs/gherkin/outlines.feature +0 -158
- data/features/docs/gherkin/unicode_table.feature +0 -33
- data/features/docs/gherkin/using_descriptions.feature +0 -83
- data/features/docs/gherkin/using_star_notation.feature +0 -37
- data/features/docs/iso-8859-1.feature +0 -6
- data/features/docs/post_configuration_hook.feature +0 -33
- data/features/docs/profiles.feature +0 -120
- data/features/docs/rake_task.feature +0 -146
- data/features/docs/raketask.feature +0 -46
- data/features/docs/work_in_progress.feature +0 -157
- data/features/docs/writing_support_code/after_hooks.feature +0 -102
- data/features/docs/writing_support_code/after_step_hooks.feature +0 -55
- data/features/docs/writing_support_code/around_hooks.feature +0 -266
- data/features/docs/writing_support_code/before_hook.feature +0 -66
- data/features/docs/writing_support_code/hook_order.feature +0 -63
- data/features/docs/writing_support_code/load_path.feature +0 -17
- data/features/docs/writing_support_code/parameter_types.feature +0 -69
- data/features/docs/writing_support_code/state.feature +0 -32
- data/features/docs/writing_support_code/tagged_hooks.feature +0 -95
- data/features/docs/writing_support_code/world.feature +0 -129
- data/features/lib/step_definitions/aruba_steps.rb +0 -21
- data/features/lib/step_definitions/cli_steps.rb +0 -4
- data/features/lib/step_definitions/cucumber_steps.rb +0 -75
- data/features/lib/step_definitions/iso-8859-1_steps.rb +0 -16
- data/features/lib/step_definitions/json_steps.rb +0 -8
- data/features/lib/step_definitions/junit_steps.rb +0 -14
- data/features/lib/step_definitions/language_steps.rb +0 -9
- data/features/lib/step_definitions/profile_steps.rb +0 -16
- data/features/lib/step_definitions/retry_steps.rb +0 -55
- data/features/lib/step_definitions/ruby_steps.rb +0 -4
- data/features/lib/support/env.rb +0 -22
- data/features/lib/support/fake_wire_server.rb +0 -94
- data/features/lib/support/feature_factory.rb +0 -68
- data/features/lib/support/normalise_output.rb +0 -52
- data/features/lib/support/parameter_types.rb +0 -5
- data/gem_tasks/contributors.rake +0 -19
- data/gem_tasks/cov.rake +0 -6
- data/gem_tasks/downloads.rb +0 -8
- data/gem_tasks/environment.rake +0 -4
- data/gem_tasks/examples.rake +0 -12
- data/gem_tasks/fix_cr_lf.rake +0 -22
- data/gem_tasks/flog.rake +0 -5
- data/gem_tasks/rspec.rake +0 -7
- data/gem_tasks/sass.rake +0 -5
- data/gem_tasks/stats +0 -16
- data/gem_tasks/versions.txt +0 -74
- data/scripts/invite-collaborator +0 -40
- data/scripts/update-changelog +0 -86
- data/spec/cucumber/cli/configuration_spec.rb +0 -446
- data/spec/cucumber/cli/main_spec.rb +0 -84
- data/spec/cucumber/cli/options_spec.rb +0 -445
- data/spec/cucumber/cli/profile_loader_spec.rb +0 -66
- data/spec/cucumber/cli/rerun_spec.rb +0 -86
- data/spec/cucumber/configuration_spec.rb +0 -148
- data/spec/cucumber/constantize_spec.rb +0 -20
- data/spec/cucumber/events_spec.rb +0 -9
- data/spec/cucumber/file_specs_spec.rb +0 -61
- data/spec/cucumber/filters/activate_steps_spec.rb +0 -152
- data/spec/cucumber/filters/gated_receiver_spec.rb +0 -48
- data/spec/cucumber/filters/retry_spec.rb +0 -98
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +0 -39
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +0 -58
- data/spec/cucumber/filters/tag_limits_spec.rb +0 -60
- data/spec/cucumber/formatter/ansicolor_spec.rb +0 -33
- data/spec/cucumber/formatter/backtrace_filter_spec.rb +0 -32
- data/spec/cucumber/formatter/console_counts_spec.rb +0 -14
- data/spec/cucumber/formatter/duration_spec.rb +0 -23
- data/spec/cucumber/formatter/fail_fast_spec.rb +0 -88
- data/spec/cucumber/formatter/html_spec.rb +0 -543
- data/spec/cucumber/formatter/interceptor_spec.rb +0 -137
- data/spec/cucumber/formatter/json_spec.rb +0 -815
- data/spec/cucumber/formatter/junit_spec.rb +0 -251
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +0 -2175
- data/spec/cucumber/formatter/pretty_spec.rb +0 -907
- data/spec/cucumber/formatter/progress_spec.rb +0 -170
- data/spec/cucumber/formatter/rerun_spec.rb +0 -97
- data/spec/cucumber/formatter/spec_helper.rb +0 -84
- data/spec/cucumber/glue/proto_world_spec.rb +0 -63
- data/spec/cucumber/glue/registry_and_more_spec.rb +0 -213
- data/spec/cucumber/glue/snippet_spec.rb +0 -174
- data/spec/cucumber/glue/step_definition_spec.rb +0 -207
- data/spec/cucumber/hooks_spec.rb +0 -31
- data/spec/cucumber/multiline_argument/data_table_spec.rb +0 -653
- data/spec/cucumber/project_initializer_spec.rb +0 -88
- data/spec/cucumber/rake/forked_spec.rb +0 -58
- data/spec/cucumber/rake/task_spec.rb +0 -86
- data/spec/cucumber/running_test_case_spec.rb +0 -140
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +0 -8
- data/spec/cucumber/runtime/support_code_spec.rb +0 -17
- data/spec/cucumber/runtime_spec.rb +0 -21
- data/spec/cucumber/sell_cucumbers.feature +0 -19
- data/spec/cucumber/step_argument_spec.rb +0 -19
- data/spec/cucumber/step_match_search_spec.rb +0 -113
- data/spec/cucumber/step_match_spec.rb +0 -86
- data/spec/cucumber/world/pending_spec.rb +0 -48
- data/spec/spec_helper.rb +0 -30
- data/spec/support/standard_step_actions.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6a9339e408c80955872fc7386ee99fc26b6519458369e06f0a65be76b27b6129
|
4
|
+
data.tar.gz: 10667fb8062a67fbf034a80a35a0d6ad53ca087bbe9cef9a9019d3343fddae94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e9417b90d33b309f6a90845de1e66aeea91767146ca534b80f09989600ff50c1cc868f1c46696dccd48767d0cc78794df29cbe97cc227178db27c05bf510687
|
7
|
+
data.tar.gz: 2b2cdf34b49f79ec6bbb4d8b484d211c4afb82f0572baa75463b0bc8f9c614e02d1acb303fc623730b42a61e37343c1d882ffb817a1fd9eebdf7c59da7bf8813
|
data/CHANGELOG.md
CHANGED
@@ -10,25 +10,105 @@ Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blo
|
|
10
10
|
|
11
11
|
----
|
12
12
|
|
13
|
-
## [
|
13
|
+
## [3.2.0](https://github.com/cucumber/cucumber-ruby/compare/v3.1.2...v3.2.0) (2020-07-02)
|
14
|
+
|
15
|
+
### Added
|
16
|
+
|
17
|
+
* `--out` option now supports URL:
|
18
|
+
* default method is `PUT`
|
19
|
+
* you can ussed cURL like options, for example: `--out "http://example.com -X POST -H Content-Type:text/json"` (Backport of [#1395](https://github.com/cucumber/cucumber-ruby/pull/1395) and [#1406](https://github.com/cucumber/cucumber-ruby/pull/1406))
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
* JSON report: Do not fail when trying to embed bytes [#1388](https://github.com/cucumber/cucumber-ruby/issues/1388)
|
24
|
+
|
25
|
+
## [3.1.2](https://github.com/cucumber/cucumber-ruby/compare/v3.1.1...v3.1.2) (2018-07-13)
|
14
26
|
|
15
27
|
### Changed
|
16
28
|
|
17
|
-
*
|
29
|
+
* Upgraded to `cucumber-core` 3.2.0
|
30
|
+
* Change to use the gherkin step location in the Json formatter.
|
31
|
+
([#1243](https://github.com/cucumber/cucumber-ruby/pull/1243),
|
32
|
+
[#1108](https://github.com/cucumber/cucumber-ruby/issues/1108)
|
33
|
+
[brasmusson](https://github.com/brasmusson))
|
34
|
+
|
35
|
+
### Fixed
|
36
|
+
|
37
|
+
* Support ParameterType with empty capture group.
|
38
|
+
([#404](https://github.com/cucumber/cucumber/issues/404)
|
39
|
+
[aslakhellesoy](https://github.com/aslakhellesoy))
|
40
|
+
|
41
|
+
## [3.1.1](https://github.com/cucumber/cucumber-ruby/compare/v3.1.0...v3.1.1) (2018-06-03)
|
18
42
|
|
19
43
|
### Added
|
20
44
|
|
21
45
|
* N/A
|
22
46
|
|
23
|
-
###
|
47
|
+
### Changed
|
48
|
+
|
49
|
+
* Add Rubocop to default Rake task ([#1256](https://github.com/cucumber/cucumber-ruby/pull/1256) [@jaysonesmith](https://github.com/jaysonesmith))
|
50
|
+
* Upgraded `cucumber-expressions` dependency to ~> 6.0.0 ([#1299](https://github.com/cucumber/cucumber-ruby/pull/1299) [@aslakhellesoy](https://github.com/aslakhellesoy))
|
51
|
+
* Upgraded to `gherkin` 5.1.0 ([#1299](https://github.com/cucumber/cucumber-ruby/pull/1299) [@aslakhellesoy](https://github.com/aslakhellesoy))
|
52
|
+
|
53
|
+
### Deprecated
|
24
54
|
|
25
55
|
* N/A
|
26
56
|
|
57
|
+
### Removed
|
58
|
+
|
59
|
+
* N/A
|
60
|
+
|
61
|
+
### Fixed
|
62
|
+
|
63
|
+
* Make `--fail-fast` play nice with `--retry` ([#1283](https://github.com/cucumber/cucumber-ruby/pull/1283) [@yrral86](https://github.com/yrral86))
|
64
|
+
* Fix incompatible encodings error in JUnit formatter ([#1244](https://github.com/cucumber/cucumber-ruby/pull/1244) [@NickAb](https://github.com/NickAb)) (except on JRuby, see [#1259](https://github.com/cucumber/cucumber-ruby/pull/1259))
|
65
|
+
* Fix the handling of failed hooks in the JUnit Formatter ([@brasmusson](https://github.com/brasmusson))
|
66
|
+
* Fixed lengthy stacktrace when running `cucumber -f stepdefs` when steps aren't defined. ([#1286](https://github.com/cucumber/cucumber-ruby/pull/1286) [@xtrasimplicity](https://github.com/xtrasimplicity))
|
67
|
+
* Fixed an error with HTML snippet generation when `frozen_string_literal` is enabled and the `Syntax` gem is not installed. ([#1287](https://github.com/cucumber/cucumber-ruby/pull/1287) [@xtrasimplicity](https://github.com/xtrasimplicity))
|
68
|
+
|
27
69
|
### Improved
|
28
70
|
|
29
71
|
* N/A
|
30
72
|
|
31
|
-
## [
|
73
|
+
## [3.1.0](https://github.com/cucumber/cucumber-ruby/compare/v3.0.2...v3.1.0) (2017-11-28)
|
74
|
+
|
75
|
+
### Added
|
76
|
+
|
77
|
+
* ParameterType transformer runs in World
|
78
|
+
([#1213](https://github.com/cucumber/cucumber-ruby/pull/1213)
|
79
|
+
[@aslakhellesoy](https://github.com/aslakhellesoy))
|
80
|
+
|
81
|
+
### Changed
|
82
|
+
|
83
|
+
* Upgraded to `cucumber-expressions` 5.0.4
|
84
|
+
* Upgraded to `cucumber-tag_expressions` 1.1.0
|
85
|
+
* Upgraded to `gherkin` 5.0.0
|
86
|
+
|
87
|
+
### Fixed
|
88
|
+
|
89
|
+
* Fix the handling of failed hooks in the JUnit Formatter ([@brasmusson](https://github.com/brasmusson))
|
90
|
+
|
91
|
+
## [3.0.2](https://github.com/cucumber/cucumber-ruby/compare/v3.0.1...v3.0.2) (2017-11-11)
|
92
|
+
|
93
|
+
### Removed
|
94
|
+
|
95
|
+
* Cucumber is no longer tested on Ruby 2.1 and below.
|
96
|
+
|
97
|
+
### Fixed
|
98
|
+
|
99
|
+
* Fix html reporter with more than one embedded screenshot ([#1216](https://github.com/cucumber/cucumber-ruby/pull/1216) [@nonkor](https://github.com/nonkor))
|
100
|
+
* Change test expectation to handle Ruby's unstable sorting ([#1210](https://github.com/cucumber/cucumber-ruby/pull/1210) [@jaysonesmith](https://github.com/jaysonesmith))
|
101
|
+
* Fix the printing of newlines in the rerun formatter - a problem introduced in [#1162](https://github.com/cucumber/cucumber-ruby/issues/1162) ([#1207](https://github.com/cucumber/cucumber-ruby/issues/1207) [@brasmusson](https://github.com/brasmusson))
|
102
|
+
* Handle the `--retry` option in profiles ([#1050](https://github.com/cucumber/cucumber-ruby/issues/1050) [@brasmusson](https://github.com/brasmusson))
|
103
|
+
|
104
|
+
### Improved
|
105
|
+
|
106
|
+
* Exclude the legacy_api from rubocop, regenerate Rubocop Todo ([@jaysonesmith](https://github.com/jaysonesmith), [@brasmusson](https://github.com/brasmusson))
|
107
|
+
* Review and handle excluded/ignored cops ([#1208](https://github.com/cucumber/cucumber-ruby/pull/1208) [@jaysonesmith](https://github.com/jaysonesmith))
|
108
|
+
* Fix SymbolProc issues ([#1212](https://github.com/cucumber/cucumber-ruby/pull/1212) [@jaysonesmith](https://github.com/jaysonesmith))
|
109
|
+
* Fix TrailingBlankLines ([#1211](https://github.com/cucumber/cucumber-ruby/pull/1211) [@jaysonesmith](https://github.com/jaysonesmith))
|
110
|
+
|
111
|
+
## [3.0.1](https://github.com/cucumber/cucumber-ruby/compare/v3.0.0...3.0.1) (2017-09-29)
|
32
112
|
|
33
113
|
### Fixed
|
34
114
|
|
data/CONTRIBUTING.md
CHANGED
@@ -59,10 +59,8 @@ help us to correct style violations reported here:
|
|
59
59
|
|
60
60
|
## Release Process
|
61
61
|
|
62
|
-
* Bump the version number in `lib/cucumber/
|
63
|
-
* Make sure `
|
64
|
-
* No need to add a `History.md` header at this point - this should be done when a new change is made, later.
|
65
|
-
* Make sure you have up-to-date and clean copy of cucumber/cucumber.github.com.git at the same level as cucumber repo.
|
62
|
+
* Bump the version number in `lib/cucumber/version`.
|
63
|
+
* Make sure `CHANGELOG.md` is updated with the upcoming version number, and has entries for all fixes.
|
66
64
|
|
67
65
|
Now release it
|
68
66
|
|
@@ -81,6 +79,7 @@ Current release managers:
|
|
81
79
|
* [Oleg Sukhodolsky](https://rubygems.org/profiles/os97673)
|
82
80
|
* [Steve Tooke](https://rubygems.org/profiles/tooky)
|
83
81
|
* [Björn Rasmusson](https://rubygems.org/profiles/brasmusson)
|
82
|
+
* [Andrew Walter](https://rubygems.org/profiles/xtrasimplicity)
|
84
83
|
|
85
84
|
To grant release karma, issue the following commands:
|
86
85
|
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
[](https://opencollective.com/cucumber)
|
2
|
+
[](https://opencollective.com/cucumber)
|
3
|
+
|
4
|
+
[](https://circleci.com/gh/cucumber/cucumber-ruby)
|
4
5
|
|
5
6
|
[](https://codeclimate.com/github/cucumber/cucumber-ruby)
|
6
7
|
[](https://coveralls.io/r/cucumber/cucumber-ruby?branch=master)
|
@@ -9,26 +10,25 @@
|
|
9
10
|
# Cucumber
|
10
11
|
|
11
12
|
Cucumber is a tool for running automated tests written in plain language. Because they're
|
12
|
-
written in plain language, they can be read by anyone on your team. Because they can be
|
13
|
+
written in plain language, they can be read by anyone on your team. Because they can be
|
13
14
|
read by anyone, you can use them to help improve communication, collaboration and trust on
|
14
15
|
your team.
|
15
16
|
|
16
17
|
Where to get more info:
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
* The main website: https://cucumber.io/
|
20
|
+
* Documentation: https://docs.cucumber.io
|
21
|
+
* Ruby API Documentation: http://www.rubydoc.info/github/cucumber/cucumber-ruby/
|
22
|
+
* Support forum: https://groups.google.com/group/cukes
|
23
|
+
* Chat: ([Slack](https://cucumber.io/support#slack) and [Gitter](https://cucumber.io/support#gitter))
|
23
24
|
|
24
25
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for info on contributing to Cucumber.
|
25
26
|
|
26
27
|
## Supported platforms
|
27
|
-
|
28
|
+
* Ruby 2.5
|
28
29
|
* Ruby 2.4
|
29
30
|
* Ruby 2.3
|
30
31
|
* Ruby 2.2
|
31
|
-
* Ruby 2.1
|
32
32
|
* JRuby 9.1
|
33
33
|
|
34
34
|
## Code of Conduct
|
@@ -37,4 +37,4 @@ Everyone interacting in this codebase and issue tracker is expected to follow th
|
|
37
37
|
|
38
38
|
## Copyright
|
39
39
|
|
40
|
-
Copyright (c)
|
40
|
+
Copyright (c) Cucumber Ltd. and Contributors. See LICENSE for details.
|
data/lib/autotest/cucumber.rb
CHANGED
data/lib/autotest/discover.rb
CHANGED
data/lib/cucumber.rb
CHANGED
data/lib/cucumber/cli/main.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'optparse'
|
3
4
|
require 'cucumber'
|
4
5
|
require 'logger'
|
@@ -13,7 +14,7 @@ module Cucumber
|
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
|
-
def initialize(args, _=nil, out=STDOUT, err=STDERR, kernel=Kernel)
|
17
|
+
def initialize(args, _ = nil, out = STDOUT, err = STDERR, kernel = Kernel)
|
17
18
|
@args = args
|
18
19
|
@out = out
|
19
20
|
@err = err
|
@@ -70,7 +71,6 @@ module Cucumber
|
|
70
71
|
|
71
72
|
private
|
72
73
|
|
73
|
-
|
74
74
|
def exit_ok
|
75
75
|
@kernel.exit 0
|
76
76
|
end
|
data/lib/cucumber/cli/options.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'cucumber/cli/profile_loader'
|
3
4
|
require 'cucumber/formatter/ansicolor'
|
4
5
|
require 'cucumber/glue/registry_and_more'
|
@@ -7,9 +8,9 @@ require 'cucumber/core/test/result'
|
|
7
8
|
|
8
9
|
module Cucumber
|
9
10
|
module Cli
|
10
|
-
|
11
11
|
class Options
|
12
12
|
INDENT = ' ' * 53
|
13
|
+
# rubocop:disable Layout/MultilineOperationIndentation
|
13
14
|
BUILTIN_FORMATS = {
|
14
15
|
'html' => ['Cucumber::Formatter::Html', 'Generates a nice looking HTML report.'],
|
15
16
|
'pretty' => ['Cucumber::Formatter::Pretty', 'Prints the feature as is - in colours.'],
|
@@ -27,19 +28,20 @@ module Cucumber
|
|
27
28
|
'json_pretty' => ['Cucumber::Formatter::JsonPretty', 'Prints the feature as prettified JSON'],
|
28
29
|
'summary' => ['Cucumber::Formatter::Summary', 'Summary output of feature and scenarios']
|
29
30
|
}
|
30
|
-
|
31
|
+
# rubocop:enable Layout/MultilineOperationIndentation
|
32
|
+
max = BUILTIN_FORMATS.keys.map(&:length).max
|
31
33
|
FORMAT_HELP_MSG = [
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
'Use --format rerun --out rerun.txt to write out failing',
|
35
|
+
'features. You can rerun them with cucumber @rerun.txt.',
|
36
|
+
'FORMAT can also be the fully qualified class name of',
|
37
|
+
"your own custom formatter. If the class isn't loaded,",
|
38
|
+
'Cucumber will attempt to require a file with a relative',
|
39
|
+
'file name that is the underscore name of the class name.',
|
40
|
+
'Example: --format Foo::BarZap -> Cucumber will look for',
|
41
|
+
'foo/bar_zap.rb. You can place the file with this relative',
|
42
|
+
'path underneath your features/support directory or anywhere',
|
43
|
+
"on Ruby's LOAD_PATH, for example in a Ruby gem."
|
44
|
+
]
|
43
45
|
|
44
46
|
FORMAT_HELP = (BUILTIN_FORMATS.keys.sort.map do |key|
|
45
47
|
" #{key}#{' ' * (max - key.length)} : #{BUILTIN_FORMATS[key][1]}"
|
@@ -51,11 +53,11 @@ module Cucumber
|
|
51
53
|
FAIL_FAST_FLAG = '--fail-fast'
|
52
54
|
RETRY_FLAG = '--retry'
|
53
55
|
OPTIONS_WITH_ARGS = [
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
'-r', '--require', '--i18n-keywords', '-f', '--format', '-o',
|
57
|
+
'--out', '-t', '--tags', '-n', '--name', '-e', '--exclude',
|
58
|
+
PROFILE_SHORT_FLAG, PROFILE_LONG_FLAG, RETRY_FLAG, '-l',
|
59
|
+
'--lines', '--port', '-I', '--snippet-type'
|
60
|
+
]
|
59
61
|
ORDER_TYPES = %w{defined random}
|
60
62
|
TAG_LIMIT_MATCHER = /(?<tag_name>\@\w+):(?<limit>\d+)/x
|
61
63
|
|
@@ -93,32 +95,32 @@ module Cucumber
|
|
93
95
|
|
94
96
|
@args.options do |opts|
|
95
97
|
opts.banner = banner
|
96
|
-
opts.on('-r LIBRARY|DIR', '--require LIBRARY|DIR', *require_files_msg) {|lib| require_files(lib) }
|
98
|
+
opts.on('-r LIBRARY|DIR', '--require LIBRARY|DIR', *require_files_msg) { |lib| require_files(lib) }
|
97
99
|
|
98
|
-
if
|
99
|
-
opts.on('-j DIR', '--jars DIR', 'Load all the jars under DIR') {|jars| load_jars(jars) }
|
100
|
+
if Cucumber::JRUBY
|
101
|
+
opts.on('-j DIR', '--jars DIR', 'Load all the jars under DIR') { |jars| load_jars(jars) }
|
100
102
|
end
|
101
103
|
|
102
|
-
opts.on("#{RETRY_FLAG} ATTEMPTS", *retry_msg) {|v| set_option :retry, v.to_i }
|
104
|
+
opts.on("#{RETRY_FLAG} ATTEMPTS", *retry_msg) { |v| set_option :retry, v.to_i }
|
103
105
|
opts.on('--i18n-languages', *i18n_languages_msg) { list_languages_and_exit }
|
104
|
-
opts.on('--i18n-keywords LANG', *i18n_keywords_msg) {|lang|
|
106
|
+
opts.on('--i18n-keywords LANG', *i18n_keywords_msg) { |lang| language lang }
|
105
107
|
opts.on(FAIL_FAST_FLAG, 'Exit immediately following the first failing scenario') { set_option :fail_fast }
|
106
108
|
opts.on('-f FORMAT', '--format FORMAT', *format_msg, *FORMAT_HELP) do |v|
|
107
109
|
add_option :formats, [*parse_formats(v), @out_stream]
|
108
110
|
end
|
109
|
-
opts.on('--init', *init_msg) {|v| initialize_project }
|
110
|
-
opts.on('-o', '--out [FILE|DIR]', *out_msg) {|v|
|
111
|
-
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) {|v| add_tag v }
|
112
|
-
opts.on('-n NAME', '--name NAME', *name_msg) {|v| add_option :name_regexps, /#{v}/ }
|
113
|
-
opts.on('-e', '--exclude PATTERN', *exclude_msg) {|v| add_option :excludes, Regexp.new(v) }
|
114
|
-
opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", *profile_short_flag_msg) {|v| add_profile v }
|
115
|
-
opts.on(NO_PROFILE_SHORT_FLAG, NO_PROFILE_LONG_FLAG, *no_profile_short_flag_msg) {|v| disable_profile_loading }
|
116
|
-
opts.on('-c', '--[no-]color', *color_msg) {|v|
|
111
|
+
opts.on('--init', *init_msg) { |v| initialize_project }
|
112
|
+
opts.on('-o', '--out [FILE|DIR|URL]', *out_msg) { |v| out_stream v }
|
113
|
+
opts.on('-t TAG_EXPRESSION', '--tags TAG_EXPRESSION', *tags_msg) { |v| add_tag v }
|
114
|
+
opts.on('-n NAME', '--name NAME', *name_msg) { |v| add_option :name_regexps, /#{v}/ }
|
115
|
+
opts.on('-e', '--exclude PATTERN', *exclude_msg) { |v| add_option :excludes, Regexp.new(v) }
|
116
|
+
opts.on(PROFILE_SHORT_FLAG, "#{PROFILE_LONG_FLAG} PROFILE", *profile_short_flag_msg) { |v| add_profile v }
|
117
|
+
opts.on(NO_PROFILE_SHORT_FLAG, NO_PROFILE_LONG_FLAG, *no_profile_short_flag_msg) { |v| disable_profile_loading }
|
118
|
+
opts.on('-c', '--[no-]color', *color_msg) { |v| color v }
|
117
119
|
opts.on('-d', '--dry-run', *dry_run_msg) { set_dry_run_and_duration }
|
118
120
|
opts.on('-m', '--no-multiline', "Don't print multiline strings and tables under steps.") { set_option :no_multiline }
|
119
121
|
opts.on('-s', '--no-source', "Don't print the file and line of the step definition with the steps.") { set_option :source, false }
|
120
122
|
opts.on('-i', '--no-snippets', "Don't print snippets for pending steps.") { set_option :snippets, false }
|
121
|
-
opts.on('-I', '--snippet-type TYPE', *snippet_type_msg) {|v| set_option :snippet_type, v.to_sym }
|
123
|
+
opts.on('-I', '--snippet-type TYPE', *snippet_type_msg) { |v| set_option :snippet_type, v.to_sym }
|
122
124
|
opts.on('-q', '--quiet', 'Alias for --no-snippets --no-source.') { shut_up }
|
123
125
|
opts.on('--no-duration', "Don't print the duration at the end of the summary") { set_option :duration, false }
|
124
126
|
opts.on('-b', '--backtrace', 'Show full backtrace for all errors.') { Cucumber.use_full_backtrace = true }
|
@@ -129,11 +131,11 @@ module Cucumber
|
|
129
131
|
opts.on('-w', '--wip', 'Fail if there are any passing scenarios.') { set_option :wip }
|
130
132
|
opts.on('-v', '--verbose', 'Show the files and features loaded.') { set_option :verbose }
|
131
133
|
opts.on('-g', '--guess', 'Guess best match for Ambiguous steps.') { set_option :guess }
|
132
|
-
opts.on('-l', '--lines LINES', *lines_msg) {|lines| set_option :lines, lines }
|
134
|
+
opts.on('-l', '--lines LINES', *lines_msg) { |lines| set_option :lines, lines }
|
133
135
|
opts.on('-x', '--expand', 'Expand Scenario Outline Tables in output.') { set_option :expand }
|
134
136
|
|
135
137
|
opts.on('--order TYPE[:SEED]', 'Run examples in the specified order. Available types:',
|
136
|
-
|
138
|
+
*<<-TEXT.split("\n")) do |order|
|
137
139
|
[defined] Run scenarios in the order they were defined (default).
|
138
140
|
[random] Shuffle scenarios before running.
|
139
141
|
Specify SEED to reproduce the shuffling from a previous run.
|
@@ -152,7 +154,7 @@ TEXT
|
|
152
154
|
@args.map! { |a| "#{a}:#{@options[:lines]}" } if @options[:lines]
|
153
155
|
|
154
156
|
extract_environment_variables
|
155
|
-
@options[:paths] = @args.dup #whatver is left over
|
157
|
+
@options[:paths] = @args.dup # whatver is left over
|
156
158
|
|
157
159
|
check_formatter_stream_conflicts()
|
158
160
|
|
@@ -201,11 +203,11 @@ TEXT
|
|
201
203
|
end
|
202
204
|
|
203
205
|
def exclude_msg
|
204
|
-
[
|
206
|
+
["Don't run feature files or require ruby files matching PATTERN"]
|
205
207
|
end
|
206
208
|
|
207
209
|
def format_msg
|
208
|
-
[
|
210
|
+
['How to format features (Default: pretty). Available formats:']
|
209
211
|
end
|
210
212
|
|
211
213
|
def i18n_languages_msg
|
@@ -229,7 +231,7 @@ TEXT
|
|
229
231
|
end
|
230
232
|
|
231
233
|
def lines_msg
|
232
|
-
[
|
234
|
+
['Run given line numbers. Equivalent to FILE:LINE syntax']
|
233
235
|
end
|
234
236
|
|
235
237
|
def no_profile_short_flag_msg
|
@@ -249,7 +251,7 @@ TEXT
|
|
249
251
|
end
|
250
252
|
|
251
253
|
def retry_msg
|
252
|
-
[
|
254
|
+
['Specify the number of times to retry failing tests (default: 0)']
|
253
255
|
end
|
254
256
|
|
255
257
|
def name_msg
|
@@ -273,7 +275,7 @@ TEXT
|
|
273
275
|
[formatter, options_hash]
|
274
276
|
end
|
275
277
|
|
276
|
-
def
|
278
|
+
def out_stream(v)
|
277
279
|
@options[:formats] << ['pretty', {}, nil] if @options[:formats].empty?
|
278
280
|
@options[:formats][-1][2] = v
|
279
281
|
end
|
@@ -303,10 +305,14 @@ TEXT
|
|
303
305
|
|
304
306
|
def out_msg
|
305
307
|
[
|
306
|
-
'Write output to a file/directory instead of STDOUT. This option',
|
308
|
+
'Write output to a file/directory/URL instead of STDOUT. This option',
|
307
309
|
'applies to the previously specified --format, or the',
|
308
310
|
'default format if no format is specified. Check the specific',
|
309
|
-
"formatter's docs to see whether to pass a file or
|
311
|
+
"formatter's docs to see whether to pass a file, dir or URL.",
|
312
|
+
"\n",
|
313
|
+
'When using a URL, the output of the formatter will be sent as the HTTP request body.',
|
314
|
+
'HTTP headers and request method can be set with cURL like options.',
|
315
|
+
'Example: --out "http://example.com -X POST -H Content-Type:text/json"'
|
310
316
|
]
|
311
317
|
end
|
312
318
|
|
@@ -332,12 +338,12 @@ TEXT
|
|
332
338
|
|
333
339
|
def banner
|
334
340
|
[
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
+
'Usage: cucumber [options] [ [FILE|DIR|URL][:LINE[:LINE]*] ]+', '',
|
342
|
+
'Examples:',
|
343
|
+
'cucumber examples/i18n/en/features',
|
344
|
+
'cucumber @rerun.txt (See --format rerun)',
|
345
|
+
'cucumber examples/i18n/it/features/somma.feature:6:98:113',
|
346
|
+
'cucumber -s -i http://rubyurl.com/eeCl', '', ''
|
341
347
|
].join("\n")
|
342
348
|
end
|
343
349
|
|
@@ -349,10 +355,10 @@ TEXT
|
|
349
355
|
end
|
350
356
|
|
351
357
|
def require_jars(jars)
|
352
|
-
Dir["#{jars}/**/*.jar"].each {|jar| require jar}
|
358
|
+
Dir["#{jars}/**/*.jar"].each { |jar| require jar }
|
353
359
|
end
|
354
360
|
|
355
|
-
def
|
361
|
+
def language(lang)
|
356
362
|
require 'gherkin/dialect'
|
357
363
|
|
358
364
|
return indicate_invalid_language_and_exit(lang) unless ::Gherkin::DIALECTS.keys.include? lang
|
@@ -391,7 +397,7 @@ TEXT
|
|
391
397
|
tag_limits[tag_name] = limit
|
392
398
|
end
|
393
399
|
|
394
|
-
def
|
400
|
+
def color(color)
|
395
401
|
Cucumber::Term::ANSIColor.coloring = color
|
396
402
|
end
|
397
403
|
|
@@ -403,7 +409,7 @@ TEXT
|
|
403
409
|
@profiles << p
|
404
410
|
end
|
405
411
|
|
406
|
-
def set_option(option, value=nil)
|
412
|
+
def set_option(option, value = nil)
|
407
413
|
@options[option] = value.nil? ? true : value
|
408
414
|
end
|
409
415
|
|
@@ -508,6 +514,8 @@ TEXT
|
|
508
514
|
@options[:formats] = stdout_formats[0..0] + non_stdout_formats
|
509
515
|
end
|
510
516
|
|
517
|
+
@options[:retry] = other_options[:retry] if @options[:retry] == 0
|
518
|
+
|
511
519
|
self
|
512
520
|
end
|
513
521
|
|
@@ -551,7 +559,8 @@ TEXT
|
|
551
559
|
data = Cucumber::MultilineArgument::DataTable.from(
|
552
560
|
::Gherkin::DIALECTS.keys.map do |key|
|
553
561
|
[key, ::Gherkin::DIALECTS[key].fetch('name'), ::Gherkin::DIALECTS[key].fetch('native')]
|
554
|
-
end
|
562
|
+
end
|
563
|
+
)
|
555
564
|
@out_stream.write(data.to_s({ color: false, prefixes: Hash.new('') }))
|
556
565
|
Kernel.exit(0)
|
557
566
|
end
|
@@ -571,7 +580,7 @@ TEXT
|
|
571
580
|
:dry_run => false,
|
572
581
|
:formats => [],
|
573
582
|
:excludes => [],
|
574
|
-
:tag_expressions
|
583
|
+
:tag_expressions => [],
|
575
584
|
:tag_limits => {},
|
576
585
|
:name_regexps => [],
|
577
586
|
:env_vars => {},
|
@@ -583,6 +592,5 @@ TEXT
|
|
583
592
|
}
|
584
593
|
end
|
585
594
|
end
|
586
|
-
|
587
595
|
end
|
588
596
|
end
|