cucumber 1.3.10 → 2.0.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 +4 -4
- data/.coveralls.yml +1 -0
- data/.rspec +1 -1
- data/.travis.yml +4 -3
- data/CONTRIBUTING.md +9 -0
- data/Gemfile +9 -2
- data/History.md +212 -22
- data/LICENSE +2 -2
- data/README.md +4 -4
- data/Rakefile +10 -1
- data/bin/cucumber +1 -5
- data/cucumber.gemspec +10 -13
- data/cucumber.yml +14 -24
- data/examples/{ramaze → i18n/el}/Rakefile +1 -1
- data/examples/i18n/el/features/addition.feature +17 -0
- data/examples/i18n/el/features/division.feature +10 -0
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +24 -0
- data/examples/i18n/el/lib/calculator.rb +14 -0
- data/examples/i18n/fr/Rakefile +3 -1
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +2 -2
- data/examples/i18n/ht/Rakefile +6 -0
- data/examples/i18n/ht/features/adisyon.feature +17 -0
- data/examples/i18n/ht/features/divizyon.feature +10 -0
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +25 -0
- data/examples/i18n/ht/lib/kalkilatris.rb +14 -0
- data/examples/i18n/zh-CN/features/{step_definitons → step_definitions}/calculator_steps.rb +4 -4
- data/examples/tcl/features/step_definitions/fib_steps.rb +1 -1
- data/{legacy_features → features/docs}/api/list_step_defs_as_json.feature +14 -14
- data/{legacy_features → features/docs}/api/run_cli_main_with_existing_runtime.feature +5 -10
- data/features/{backtraces.feature → docs/cli/backtraces.feature} +2 -2
- data/features/docs/cli/dry_run.feature +73 -0
- data/features/docs/cli/exclude_files.feature +18 -0
- data/features/docs/cli/execute_with_tag_filter.feature +117 -0
- data/features/docs/cli/randomize.feature +46 -0
- data/features/docs/cli/require.feature +27 -0
- data/features/docs/cli/run_scenarios_matching_name.feature +104 -0
- data/features/docs/cli/run_specific_scenarios.feature +75 -0
- data/features/docs/cli/showing_differences.feature +43 -0
- data/features/docs/cli/specifying_multiple_formatters.feature +44 -0
- data/features/docs/cli/strict_mode.feature +64 -0
- data/features/{nested_steps.feature → docs/defining_steps/nested_steps.feature} +52 -6
- data/features/{nested_steps_i18n.feature → docs/defining_steps/nested_steps_i18n.feature} +0 -2
- data/features/{step_definitions.feature → docs/defining_steps/one_line_step_definitions.feature} +3 -3
- data/features/docs/defining_steps/printing_messages.feature +148 -0
- data/features/docs/defining_steps/skip_scenario.feature +62 -0
- data/features/docs/defining_steps/snippets.feature +56 -0
- data/{legacy_features → features/docs/defining_steps}/table_diffing.feature +21 -16
- data/features/{transforms.feature → docs/defining_steps/transforms.feature} +2 -2
- data/{legacy_features/exception_in_after_block.feature → features/docs/exception_in_after_hook.feature} +25 -26
- data/{legacy_features/exception_in_after_step_block.feature → features/docs/exception_in_after_step_hook.feature} +22 -24
- data/features/docs/exception_in_around_hook.feature +80 -0
- data/{legacy_features/exception_in_before_block.feature → features/docs/exception_in_before_hook.feature} +18 -20
- data/features/docs/extending_cucumber/custom_filter.feature +29 -0
- data/features/docs/extending_cucumber/custom_formatter.feature +94 -0
- data/features/docs/formatters/debug_formatter.feature +47 -0
- data/features/{formatter_step_file_colon_line.feature → docs/formatters/formatter_step_file_colon_line.feature} +2 -4
- data/features/{html_formatter.feature → docs/formatters/html_formatter.feature} +10 -14
- data/features/docs/formatters/json_formatter.feature +760 -0
- data/features/docs/formatters/junit_formatter.feature +316 -0
- data/features/docs/formatters/pretty_formatter.feature +73 -0
- data/features/{progress_formatter.feature → docs/formatters/progress_formatter.feature} +1 -1
- data/features/docs/formatters/rerun_formatter.feature +136 -0
- data/features/docs/formatters/usage_formatter.feature +102 -0
- data/features/docs/getting_started.feature +27 -0
- data/features/{background.feature → docs/gherkin/background.feature} +149 -91
- data/features/{doc_strings.feature → docs/gherkin/doc_strings.feature} +1 -0
- data/features/docs/gherkin/expand_option_for_outlines.feature +46 -0
- data/features/docs/gherkin/language_from_header.feature +32 -0
- data/features/docs/gherkin/outlines.feature +158 -0
- data/features/docs/gherkin/unicode_table.feature +32 -0
- data/features/docs/gherkin/using_descriptions.feature +88 -0
- data/features/docs/gherkin/using_star_notation.feature +37 -0
- data/{legacy_features → features/docs}/post_configuration_hook.feature +17 -18
- data/{legacy_features → features/docs}/profiles.feature +30 -36
- data/{legacy_features → features/docs}/rake_task.feature +30 -41
- data/features/{raketask.feature → docs/raketask.feature} +6 -13
- data/{legacy_features/wire_protocol_erb.feature → features/docs/wire_protocol/erb_configuration.feature} +7 -8
- data/features/docs/wire_protocol/handle_unexpected_response.feature +30 -0
- data/features/docs/wire_protocol/invoke_message.feature +216 -0
- data/features/docs/wire_protocol/readme.md +26 -0
- data/features/docs/wire_protocol/snippets_message.feature +51 -0
- data/features/docs/wire_protocol/step_matches_message.feature +81 -0
- data/{legacy_features/wire_protocol_table_diffing.feature → features/docs/wire_protocol/table_diffing.feature} +19 -12
- data/{legacy_features/wire_protocol_tags.feature → features/docs/wire_protocol/tags.feature} +7 -7
- data/{legacy_features/wire_protocol_timeouts.feature → features/docs/wire_protocol/timeouts.feature} +7 -6
- data/{legacy_features → features/docs}/work_in_progress.feature +52 -54
- data/features/docs/writing_support_code/after_hooks.feature +80 -0
- data/{legacy_features → features/docs/writing_support_code}/around_hooks.feature +56 -28
- data/features/docs/writing_support_code/before_hook.feature +65 -0
- data/features/docs/writing_support_code/hook_order.feature +61 -0
- data/features/{load_path.feature → docs/writing_support_code/load_path.feature} +3 -0
- data/features/docs/writing_support_code/state.feature +32 -0
- data/features/docs/writing_support_code/tagged_hooks.feature +95 -0
- data/features/lib/step_definitions/aruba_steps.rb +22 -0
- data/features/lib/step_definitions/cucumber_steps.rb +50 -0
- data/features/{step_definitions → lib/step_definitions}/iso-8859-1_steps.rb +3 -15
- data/features/lib/step_definitions/json_steps.rb +7 -0
- data/features/lib/step_definitions/junit_steps.rb +13 -0
- data/features/lib/step_definitions/language_steps.rb +4 -5
- data/features/lib/step_definitions/profile_steps.rb +15 -0
- data/features/lib/step_definitions/ruby_steps.rb +3 -0
- data/features/lib/step_definitions/wire_steps.rb +58 -0
- data/features/lib/support/env.rb +21 -0
- data/{legacy_features → features/lib}/support/fake_wire_server.rb +10 -7
- data/features/{support → lib/support}/feature_factory.rb +1 -1
- data/features/lib/support/normalise_output.rb +33 -0
- data/gem_tasks/cov.rake +5 -0
- data/gem_tasks/cucumber.rake +3 -8
- data/gem_tasks/rspec.rake +0 -2
- data/lib/cucumber/ast.rb +8 -25
- data/lib/cucumber/cli/configuration.rb +33 -37
- data/lib/cucumber/cli/main.rb +14 -27
- data/lib/cucumber/cli/options.rb +22 -60
- data/lib/cucumber/cli/profile_loader.rb +1 -1
- data/lib/cucumber/configuration.rb +4 -0
- data/lib/cucumber/constantize.rb +7 -6
- data/lib/cucumber/core_ext/instance_exec.rb +7 -38
- data/lib/cucumber/core_ext/proc.rb +1 -1
- data/lib/cucumber/encoding.rb +5 -0
- data/lib/cucumber/errors.rb +21 -10
- data/lib/cucumber/file_specs.rb +37 -0
- data/lib/cucumber/filters/activate_steps.rb +33 -0
- data/lib/cucumber/filters/apply_after_hooks.rb +9 -0
- data/lib/cucumber/filters/apply_after_step_hooks.rb +12 -0
- data/lib/cucumber/filters/apply_around_hooks.rb +12 -0
- data/lib/cucumber/filters/apply_before_hooks.rb +9 -0
- data/lib/cucumber/filters/gated_receiver.rb +25 -0
- data/lib/cucumber/filters/prepare_world.rb +45 -0
- data/lib/cucumber/filters/quit.rb +28 -0
- data/lib/cucumber/filters/randomizer.rb +40 -0
- data/lib/cucumber/filters/tag_limits/test_case_index.rb +31 -0
- data/lib/cucumber/filters/tag_limits/verifier.rb +59 -0
- data/lib/cucumber/filters/tag_limits.rb +45 -0
- data/lib/cucumber/filters.rb +9 -0
- data/lib/cucumber/formatter/ansicolor.rb +0 -8
- data/lib/cucumber/formatter/console.rb +66 -36
- data/lib/cucumber/formatter/debug.rb +10 -8
- data/lib/cucumber/formatter/fanout.rb +27 -0
- data/lib/cucumber/formatter/gherkin_formatter_adapter.rb +122 -12
- data/lib/cucumber/formatter/html.rb +67 -18
- data/lib/cucumber/formatter/ignore_missing_messages.rb +20 -0
- data/lib/cucumber/formatter/interceptor.rb +17 -3
- data/lib/cucumber/formatter/json.rb +1 -1
- data/lib/cucumber/formatter/junit.rb +105 -5
- data/lib/cucumber/formatter/legacy_api/adapter.rb +1060 -0
- data/lib/cucumber/formatter/legacy_api/ast.rb +376 -0
- data/lib/cucumber/formatter/legacy_api/results.rb +51 -0
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +30 -0
- data/lib/cucumber/formatter/pretty.rb +16 -8
- data/lib/cucumber/formatter/progress.rb +10 -0
- data/lib/cucumber/formatter/rerun.rb +14 -71
- data/lib/cucumber/formatter/unicode.rb +8 -21
- data/lib/cucumber/formatter/usage.rb +7 -1
- data/lib/cucumber/hooks.rb +97 -0
- data/lib/cucumber/language_support/language_methods.rb +0 -54
- data/lib/cucumber/{ast/table.rb → multiline_argument/data_table.rb} +77 -84
- data/lib/cucumber/multiline_argument/doc_string.rb +10 -0
- data/lib/cucumber/multiline_argument.rb +74 -0
- data/lib/cucumber/platform.rb +21 -20
- data/lib/cucumber/project_initializer.rb +43 -0
- data/lib/cucumber/rake/task.rb +3 -54
- data/lib/cucumber/rb_support/rb_hook.rb +2 -2
- data/lib/cucumber/rb_support/rb_language.rb +4 -34
- data/lib/cucumber/rb_support/rb_step_definition.rb +11 -2
- data/lib/cucumber/rb_support/rb_transform.rb +3 -1
- data/lib/cucumber/rb_support/rb_world.rb +13 -20
- data/lib/cucumber/rb_support/snippet.rb +61 -20
- data/lib/cucumber/rspec/doubles.rb +9 -6
- data/lib/cucumber/running_test_case.rb +115 -0
- data/lib/cucumber/runtime/after_hooks.rb +24 -0
- data/lib/cucumber/runtime/before_hooks.rb +23 -0
- data/lib/cucumber/runtime/for_programming_languages.rb +14 -10
- data/lib/cucumber/runtime/step_hooks.rb +22 -0
- data/lib/cucumber/runtime/support_code.rb +78 -21
- data/lib/cucumber/runtime/user_interface.rb +4 -0
- data/lib/cucumber/runtime.rb +153 -98
- data/lib/cucumber/step_match.rb +27 -3
- data/lib/cucumber/term/ansicolor.rb +1 -9
- data/lib/cucumber/wire_support/wire_language.rb +23 -9
- data/lib/cucumber/wire_support/wire_packet.rb +1 -1
- data/lib/cucumber/wire_support/wire_protocol/requests.rb +13 -5
- data/lib/cucumber/wire_support/wire_step_definition.rb +1 -8
- data/lib/cucumber.rb +8 -6
- data/spec/cucumber/cli/configuration_spec.rb +165 -134
- data/spec/cucumber/cli/main_spec.rb +36 -99
- data/spec/cucumber/cli/options_spec.rb +238 -272
- data/spec/cucumber/cli/profile_loader_spec.rb +18 -7
- data/spec/cucumber/configuration_spec.rb +3 -3
- data/spec/cucumber/constantize_spec.rb +2 -1
- data/spec/cucumber/core_ext/instance_exec_spec.rb +4 -0
- data/spec/cucumber/core_ext/proc_spec.rb +32 -43
- data/spec/cucumber/file_specs_spec.rb +60 -0
- data/spec/cucumber/filters/activate_steps_spec.rb +57 -0
- data/spec/cucumber/filters/gated_receiver_spec.rb +47 -0
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +38 -0
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +57 -0
- data/spec/cucumber/filters/tag_limits_spec.rb +59 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +11 -10
- data/spec/cucumber/formatter/debug_spec.rb +64 -0
- data/spec/cucumber/formatter/duration_spec.rb +6 -6
- data/spec/cucumber/formatter/html_spec.rb +233 -39
- data/spec/cucumber/formatter/interceptor_spec.rb +38 -31
- data/spec/cucumber/formatter/junit_spec.rb +213 -151
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +2090 -0
- data/spec/cucumber/formatter/pretty_spec.rb +481 -49
- data/spec/cucumber/formatter/progress_spec.rb +63 -16
- data/spec/cucumber/formatter/rerun_spec.rb +107 -0
- data/spec/cucumber/formatter/spec_helper.rb +32 -17
- data/spec/cucumber/hooks_spec.rb +30 -0
- data/spec/cucumber/{ast/table_spec.rb → multiline_argument/data_table_spec.rb} +128 -208
- data/spec/cucumber/project_initializer_spec.rb +87 -0
- data/spec/cucumber/rake/forked_spec.rb +13 -22
- data/spec/cucumber/rb_support/rb_language_spec.rb +78 -69
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +90 -44
- data/spec/cucumber/rb_support/rb_transform_spec.rb +24 -3
- data/spec/cucumber/rb_support/regexp_argument_matcher_spec.rb +6 -4
- data/spec/cucumber/rb_support/snippet_spec.rb +47 -38
- data/spec/cucumber/running_test_case_spec.rb +83 -0
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +18 -13
- data/spec/cucumber/runtime/support_code_spec.rb +29 -29
- data/spec/cucumber/runtime_spec.rb +35 -34
- data/spec/cucumber/step_match_spec.rb +30 -20
- data/spec/cucumber/wire_support/configuration_spec.rb +8 -5
- data/spec/cucumber/wire_support/connection_spec.rb +12 -8
- data/spec/cucumber/wire_support/wire_exception_spec.rb +14 -8
- data/spec/cucumber/wire_support/wire_language_spec.rb +8 -9
- data/spec/cucumber/wire_support/wire_packet_spec.rb +17 -13
- data/spec/cucumber/world/pending_spec.rb +36 -36
- data/spec/simplecov_setup.rb +18 -0
- data/spec/spec_helper.rb +6 -13
- metadata +348 -350
- data/.gitattributes +0 -1
- data/.ruby-version +0 -1
- data/examples/python/README.textile +0 -8
- data/examples/python/Rakefile +0 -4
- data/examples/python/features/fibonacci.feature +0 -19
- data/examples/python/features/step_definitions/fib_steps.py +0 -11
- data/examples/python/lib/fib.py +0 -7
- data/examples/ramaze/README.textile +0 -7
- data/examples/ramaze/app.rb +0 -21
- data/examples/ramaze/features/add.feature +0 -11
- data/examples/ramaze/features/step_definitions/add_steps.rb +0 -15
- data/examples/ramaze/features/support/env.rb +0 -32
- data/examples/ramaze/layout/default.html.erb +0 -8
- data/examples/ramaze/view/index.html.erb +0 -5
- data/examples/ruby2python/README.textile +0 -8
- data/examples/ruby2python/Rakefile +0 -4
- data/examples/ruby2python/features/fibonacci.feature +0 -19
- data/examples/ruby2python/features/step_definitions/fib_steps.rb +0 -7
- data/examples/ruby2python/features/support/env.rb +0 -21
- data/examples/ruby2python/lib/fib.py +0 -7
- data/examples/v8/Rakefile +0 -6
- data/examples/v8/features/fibonacci.feature +0 -43
- data/examples/v8/features/step_definitions/fib_steps.js +0 -49
- data/examples/v8/features/support/env.js +0 -14
- data/examples/v8/lib/fibonacci.js +0 -19
- data/features/.cucumber/stepdefs.json +0 -627
- data/features/assertions.feature +0 -73
- data/features/autoformat_profile_output.feature +0 -23
- data/features/before_hook.feature +0 -43
- data/features/bootstrap.feature +0 -27
- data/features/custom_formatter.feature +0 -41
- data/features/drb_server_integration.feature +0 -63
- data/features/execute_with_tag_filter.feature +0 -63
- data/features/formatter_callbacks.feature +0 -189
- data/features/json_formatter.feature +0 -338
- data/features/parsing.feature +0 -18
- data/features/pretty_formatter.feature +0 -31
- data/features/rerun_formatter.feature +0 -35
- data/features/run_specific_scenarios.feature +0 -47
- data/features/stats_formatters.feature +0 -73
- data/features/step_definitions/cucumber-features/cucumber_ruby_mappings.rb +0 -197
- data/features/step_definitions/cucumber_steps.rb +0 -55
- data/features/step_definitions/drb_steps.rb +0 -3
- data/features/support/env.rb +0 -57
- data/features/tagged_hooks.feature +0 -59
- data/fixtures/json/features/background.feature +0 -7
- data/fixtures/json/features/embed.feature +0 -4
- data/fixtures/json/features/one_passing_one_failing.feature +0 -11
- data/fixtures/json/features/step_definitions/steps.rb +0 -32
- data/fixtures/json/features/tables.feature +0 -13
- data/fixtures/junit/features/one_passing_one_failing.feature +0 -8
- data/fixtures/junit/features/pending.feature +0 -7
- data/fixtures/junit/features/scenario_outline.feature +0 -9
- data/fixtures/junit/features/some_subdirectory/one_passing_one_failing.feature +0 -8
- data/fixtures/junit/features/step_definitions/steps.rb +0 -11
- data/fixtures/self_test/README.textile +0 -6
- data/fixtures/self_test/Rakefile +0 -6
- data/fixtures/self_test/features/call_undefined_step_from_step_def.feature +0 -7
- data/fixtures/self_test/features/failing_expectation.feature +0 -4
- data/fixtures/self_test/features/lots_of_undefined.feature +0 -8
- data/fixtures/self_test/features/multiline_name.feature +0 -27
- data/fixtures/self_test/features/outline_sample.feature +0 -15
- data/fixtures/self_test/features/sample.feature +0 -21
- data/fixtures/self_test/features/search_sample.feature +0 -32
- data/fixtures/self_test/features/step_definitions/sample_steps.rb +0 -84
- data/fixtures/self_test/features/support/bubble_256x256.png +0 -0
- data/fixtures/self_test/features/support/env.rb +0 -26
- data/fixtures/self_test/features/tags_sample.feature +0 -17
- data/fixtures/self_test/features/tons_of_cukes.feature +0 -52
- data/fixtures/self_test/features/undefined_multiline_args.feature +0 -12
- data/fixtures/self_test/list-of-features.txt +0 -1
- data/fixtures/steps_library/features/step_definitions/steps_lib1.rb +0 -8
- data/fixtures/steps_library/features/step_definitions/steps_lib2.rb +0 -8
- data/fixtures/tickets/Rakefile +0 -20
- data/fixtures/tickets/features/172.feature +0 -28
- data/fixtures/tickets/features/177/1.feature +0 -28
- data/fixtures/tickets/features/177/2.feature +0 -20
- data/fixtures/tickets/features/177/3.feature +0 -18
- data/fixtures/tickets/features/180.feature +0 -7
- data/fixtures/tickets/features/229/tagged_hooks.feature +0 -8
- data/fixtures/tickets/features/229/tagged_hooks.rb +0 -14
- data/fixtures/tickets/features/236.feature +0 -13
- data/fixtures/tickets/features/241.feature +0 -12
- data/fixtures/tickets/features/246.feature +0 -4
- data/fixtures/tickets/features/248.feature +0 -11
- data/fixtures/tickets/features/270/back.feature +0 -14
- data/fixtures/tickets/features/270/back.steps.rb +0 -14
- data/fixtures/tickets/features/272/hooks.feature +0 -26
- data/fixtures/tickets/features/272/hooks_steps.rb +0 -53
- data/fixtures/tickets/features/279/py_string_indent.feature +0 -25
- data/fixtures/tickets/features/279/py_string_indent.steps.rb +0 -12
- data/fixtures/tickets/features/279/wrong.feature_ +0 -11
- data/fixtures/tickets/features/301/filter_background_tagged_hooks.feature +0 -6
- data/fixtures/tickets/features/301/filter_background_tagged_hooks_steps.rb +0 -12
- data/fixtures/tickets/features/306/only_background.feature +0 -4
- data/fixtures/tickets/features/around_timeout.feature +0 -6
- data/fixtures/tickets/features/gherkin_67.feature +0 -12
- data/fixtures/tickets/features/gherkin_68.feature +0 -4
- data/fixtures/tickets/features/half_manual.feature +0 -11
- data/fixtures/tickets/features/lib/eatting_machine.rb +0 -18
- data/fixtures/tickets/features/lib/pantry.rb +0 -20
- data/fixtures/tickets/features/scenario_outline.feature +0 -95
- data/fixtures/tickets/features/step_definitons/246_steps.rb +0 -3
- data/fixtures/tickets/features/step_definitons/248_steps.rb +0 -15
- data/fixtures/tickets/features/step_definitons/around_timeout_steps.rb +0 -9
- data/fixtures/tickets/features/step_definitons/half_manual_steps.rb +0 -11
- data/fixtures/tickets/features/step_definitons/scenario_outline_steps.rb +0 -42
- data/fixtures/tickets/features/step_definitons/tickets_steps.rb +0 -88
- data/fixtures/tickets/features/table_diffing.feature +0 -13
- data/fixtures/tickets/features/tickets.feature +0 -28
- data/fixtures/tickets/features.html +0 -138
- data/gem_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
- data/gem_tasks/yard/default/layout/html/footer.erb +0 -5
- data/gem_tasks/yard/default/layout/html/index.erb +0 -1
- data/gem_tasks/yard/default/layout/html/layout.erb +0 -25
- data/gem_tasks/yard/default/layout/html/logo.erb +0 -1
- data/gem_tasks/yard/default/layout/html/setup.rb +0 -4
- data/gem_tasks/yard.rake +0 -40
- data/legacy_features/README.md +0 -14
- data/legacy_features/announce.feature +0 -152
- data/legacy_features/bug_371.feature +0 -32
- data/legacy_features/bug_464.feature +0 -16
- data/legacy_features/bug_475.feature +0 -42
- data/legacy_features/bug_585_tab_indentation.feature +0 -22
- data/legacy_features/bug_600.feature +0 -73
- data/legacy_features/cucumber_cli.feature +0 -584
- data/legacy_features/cucumber_cli_outlines.feature +0 -117
- data/legacy_features/default_snippets.feature +0 -43
- data/legacy_features/diffing.feature +0 -25
- data/legacy_features/drb_server_integration.feature +0 -174
- data/legacy_features/exclude_files.feature +0 -20
- data/legacy_features/expand.feature +0 -60
- data/legacy_features/junit_formatter.feature +0 -214
- data/legacy_features/language_from_header.feature +0 -30
- data/legacy_features/listener_debugger_formatter.feature +0 -42
- data/legacy_features/multiline_names.feature +0 -44
- data/legacy_features/report_called_undefined_steps.feature +0 -35
- data/legacy_features/rerun_formatter.feature +0 -52
- data/legacy_features/simplest.feature +0 -11
- data/legacy_features/snippet.feature +0 -23
- data/legacy_features/snippets_when_using_star_keyword.feature +0 -38
- data/legacy_features/step_definitions/cucumber_steps.rb +0 -179
- data/legacy_features/step_definitions/extra_steps.rb +0 -2
- data/legacy_features/step_definitions/simplest_steps.rb +0 -3
- data/legacy_features/step_definitions/wire_steps.rb +0 -34
- data/legacy_features/support/env.rb +0 -161
- data/legacy_features/support/env.rb.simplest +0 -7
- data/legacy_features/table_mapping.feature +0 -34
- data/legacy_features/transform.feature +0 -245
- data/legacy_features/unicode_table.feature +0 -35
- data/legacy_features/wire_protocol.feature +0 -332
- data/lib/README.rdoc +0 -12
- data/lib/cucumber/ast/background.rb +0 -116
- data/lib/cucumber/ast/comment.rb +0 -31
- data/lib/cucumber/ast/doc_string.rb +0 -61
- data/lib/cucumber/ast/empty_background.rb +0 -33
- data/lib/cucumber/ast/examples.rb +0 -49
- data/lib/cucumber/ast/feature.rb +0 -99
- data/lib/cucumber/ast/features.rb +0 -38
- data/lib/cucumber/ast/has_steps.rb +0 -74
- data/lib/cucumber/ast/location.rb +0 -41
- data/lib/cucumber/ast/multiline_argument.rb +0 -30
- data/lib/cucumber/ast/names.rb +0 -13
- data/lib/cucumber/ast/outline_table.rb +0 -194
- data/lib/cucumber/ast/scenario.rb +0 -103
- data/lib/cucumber/ast/scenario_outline.rb +0 -146
- data/lib/cucumber/ast/step.rb +0 -122
- data/lib/cucumber/ast/step_collection.rb +0 -92
- data/lib/cucumber/ast/step_invocation.rb +0 -196
- data/lib/cucumber/ast/tags.rb +0 -28
- data/lib/cucumber/ast/tree_walker.rb +0 -191
- data/lib/cucumber/ast/visitor.rb +0 -11
- data/lib/cucumber/broadcaster.rb +0 -13
- data/lib/cucumber/cli/drb_client.rb +0 -43
- data/lib/cucumber/feature_file.rb +0 -94
- data/lib/cucumber/formatter/ordered_xml_markup.rb +0 -24
- data/lib/cucumber/js_support/js_dsl.js +0 -57
- data/lib/cucumber/js_support/js_language.rb +0 -185
- data/lib/cucumber/js_support/js_snippets.rb +0 -27
- data/lib/cucumber/parser/gherkin_builder.rb +0 -284
- data/lib/cucumber/parser.rb +0 -2
- data/lib/cucumber/py_support/py_dsl.py +0 -10
- data/lib/cucumber/py_support/py_language.py +0 -10
- data/lib/cucumber/py_support/py_language.rb +0 -80
- data/lib/cucumber/runtime/features_loader.rb +0 -62
- data/lib/cucumber/runtime/results.rb +0 -64
- data/lib/cucumber/step_mother.rb +0 -10
- data/spec/cucumber/ast/background_spec.rb +0 -122
- data/spec/cucumber/ast/doc_string_spec.rb +0 -40
- data/spec/cucumber/ast/feature_factory.rb +0 -72
- data/spec/cucumber/ast/feature_spec.rb +0 -63
- data/spec/cucumber/ast/features_spec.rb +0 -51
- data/spec/cucumber/ast/outline_table_spec.rb +0 -21
- data/spec/cucumber/ast/scenario_outline_spec.rb +0 -74
- data/spec/cucumber/ast/step_spec.rb +0 -68
- data/spec/cucumber/ast/tree_walker_spec.rb +0 -19
- data/spec/cucumber/broadcaster_spec.rb +0 -15
- data/spec/cucumber/cli/drb_client_spec.rb +0 -76
- data/spec/cucumber/rake/rcov_spec.rb +0 -71
- data/spec/cucumber/runtime/results_spec.rb +0 -81
- data/spec/cucumber/wire_support/wire_step_definition_spec.rb +0 -20
- /data/examples/i18n/ar/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/bg/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/ca/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/cs/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/da/features/{step_definitons → step_definitions}/lommeregner_steps.rb +0 -0
- /data/examples/i18n/de/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/en/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/eo/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/es/features/{step_definitons → step_definitions}/calculador_steps.rb +0 -0
- /data/examples/i18n/fi/features/{step_definitons → step_definitions}/laskin_steps.rb +0 -0
- /data/examples/i18n/he/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/hi/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/hu/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/id/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/it/features/{step_definitons → step_definitions}/calcolatrice_steps.rb +0 -0
- /data/examples/i18n/ja/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/ko/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/lt/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/lv/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/no/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
- /data/examples/i18n/pl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/ro/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/ru/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/sk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/sr-Cyrl/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/sr-Latn/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/sv/features/{step_definitons → step_definitions}/kalkulator_steps.rb +0 -0
- /data/examples/i18n/tr/features/{step_definitons → step_definitions}/hesap_makinesi_adimlari.rb +0 -0
- /data/examples/i18n/uk/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/uz/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/examples/i18n/zh-TW/features/{step_definitons → step_definitions}/calculator_steps.rb +0 -0
- /data/features/{nested_steps_with_second_arg.feature → docs/defining_steps/nested_steps_with_second_arg.feature} +0 -0
- /data/features/{iso-8859-1.feature → docs/iso-8859-1.feature} +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Feature: Using descriptions to give features context
|
|
2
|
+
|
|
3
|
+
When writing your feature files its very helpful to use description
|
|
4
|
+
text at the beginning of the feature file, to write a preamble to the
|
|
5
|
+
feature describing clearly exactly what the feature does.
|
|
6
|
+
|
|
7
|
+
You can also write descriptions attached to individual scenarios - see
|
|
8
|
+
the examples below for how this can be used.
|
|
9
|
+
|
|
10
|
+
It's possible to have your descriptions run over more than one line,
|
|
11
|
+
and you can have blank lines too. As long as you don't start a line
|
|
12
|
+
with a Given, When, Then, Background:, Scenario: or similar, you're
|
|
13
|
+
fine: otherwise Gherkin will start to pay attention.
|
|
14
|
+
|
|
15
|
+
Background:
|
|
16
|
+
Given the standard step definitions
|
|
17
|
+
|
|
18
|
+
Scenario: Everything with a description
|
|
19
|
+
Given a file named "features/test.feature" with:
|
|
20
|
+
"""
|
|
21
|
+
Feature: descriptions everywhere
|
|
22
|
+
|
|
23
|
+
We can put a useful description here of the feature, which can
|
|
24
|
+
span multiple lines.
|
|
25
|
+
|
|
26
|
+
Background:
|
|
27
|
+
|
|
28
|
+
We can also put in descriptions showing what the background is
|
|
29
|
+
doing.
|
|
30
|
+
|
|
31
|
+
Given this step passes
|
|
32
|
+
|
|
33
|
+
Scenario: I'm a scenario with a description
|
|
34
|
+
|
|
35
|
+
You can also put descriptions in front of individual scenarios.
|
|
36
|
+
|
|
37
|
+
Given this step passes
|
|
38
|
+
|
|
39
|
+
Scenario Outline: I'm a scenario outline with a description
|
|
40
|
+
|
|
41
|
+
Scenario outlines can have descriptions.
|
|
42
|
+
|
|
43
|
+
Given this step <state>
|
|
44
|
+
Examples: Examples
|
|
45
|
+
|
|
46
|
+
Specific examples for an outline are allowed to have
|
|
47
|
+
descriptions, too.
|
|
48
|
+
|
|
49
|
+
| state |
|
|
50
|
+
| passes |
|
|
51
|
+
"""
|
|
52
|
+
When I run `cucumber -q`
|
|
53
|
+
Then the stderr should not contain anything
|
|
54
|
+
Then it should pass with exactly:
|
|
55
|
+
"""
|
|
56
|
+
Feature: descriptions everywhere
|
|
57
|
+
|
|
58
|
+
We can put a useful description here of the feature, which can
|
|
59
|
+
span multiple lines.
|
|
60
|
+
|
|
61
|
+
Background:
|
|
62
|
+
|
|
63
|
+
We can also put in descriptions showing what the background is
|
|
64
|
+
doing.
|
|
65
|
+
Given this step passes
|
|
66
|
+
|
|
67
|
+
Scenario: I'm a scenario with a description
|
|
68
|
+
|
|
69
|
+
You can also put descriptions in front of individual scenarios.
|
|
70
|
+
Given this step passes
|
|
71
|
+
|
|
72
|
+
Scenario Outline: I'm a scenario outline with a description
|
|
73
|
+
|
|
74
|
+
Scenario outlines can have descriptions.
|
|
75
|
+
Given this step <state>
|
|
76
|
+
|
|
77
|
+
Examples: Examples
|
|
78
|
+
|
|
79
|
+
Specific examples for an outline are allowed to have
|
|
80
|
+
descriptions, too.
|
|
81
|
+
| state |
|
|
82
|
+
| passes |
|
|
83
|
+
|
|
84
|
+
2 scenarios (2 passed)
|
|
85
|
+
4 steps (4 passed)
|
|
86
|
+
0m0.012s
|
|
87
|
+
|
|
88
|
+
"""
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Feature: Using star notation instead of Given/When/Then
|
|
2
|
+
|
|
3
|
+
Cucumber supports the star notation when writing features: instead of
|
|
4
|
+
using Given/When/Then, you can simply use a star rather like you would
|
|
5
|
+
use a bullet point.
|
|
6
|
+
|
|
7
|
+
When you run the feature for the first time, you still get a nice
|
|
8
|
+
message showing you the code snippet you need to use to implement the
|
|
9
|
+
step.
|
|
10
|
+
|
|
11
|
+
Scenario: Use some *
|
|
12
|
+
Given a file named "features/f.feature" with:
|
|
13
|
+
"""
|
|
14
|
+
Feature: Star-notation feature
|
|
15
|
+
Scenario: S
|
|
16
|
+
* I have some cukes
|
|
17
|
+
"""
|
|
18
|
+
When I run `cucumber features/f.feature`
|
|
19
|
+
Then the stderr should not contain anything
|
|
20
|
+
And it should pass with:
|
|
21
|
+
"""
|
|
22
|
+
Feature: Star-notation feature
|
|
23
|
+
|
|
24
|
+
Scenario: S # features/f.feature:2
|
|
25
|
+
* I have some cukes # features/f.feature:3
|
|
26
|
+
|
|
27
|
+
1 scenario (1 undefined)
|
|
28
|
+
1 step (1 undefined)
|
|
29
|
+
"""
|
|
30
|
+
And it should pass with:
|
|
31
|
+
"""
|
|
32
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
33
|
+
|
|
34
|
+
Given(/^I have some cukes$/) do
|
|
35
|
+
pending # Write code here that turns the phrase above into concrete actions
|
|
36
|
+
end
|
|
37
|
+
"""
|
|
@@ -4,47 +4,46 @@ Feature: Post Configuration Hook [#423]
|
|
|
4
4
|
As a developer
|
|
5
5
|
I want to manipulate the Cucumber configuration after it has been created
|
|
6
6
|
|
|
7
|
+
# Fails on Travis under JRuby
|
|
8
|
+
@spawn
|
|
9
|
+
@wip-jruby
|
|
7
10
|
Scenario: Using options directly gets a deprecation warning
|
|
8
|
-
|
|
9
|
-
Given a standard Cucumber project directory structure
|
|
10
|
-
And a file named "features/support/env.rb" with:
|
|
11
|
+
Given a file named "features/support/env.rb" with:
|
|
11
12
|
"""
|
|
12
13
|
AfterConfiguration do |config|
|
|
13
14
|
config.options[:blah]
|
|
14
15
|
end
|
|
15
16
|
"""
|
|
16
|
-
When I run cucumber features
|
|
17
|
-
Then
|
|
17
|
+
When I run `cucumber features`
|
|
18
|
+
Then the stderr should contain:
|
|
18
19
|
"""
|
|
19
20
|
Deprecated
|
|
20
21
|
"""
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
Scenario: Changing the output format
|
|
24
|
+
Given a file named "features/support/env.rb" with:
|
|
24
25
|
"""
|
|
25
26
|
AfterConfiguration do |config|
|
|
26
27
|
config.formats << ['html', config.out_stream]
|
|
27
28
|
end
|
|
28
29
|
"""
|
|
29
|
-
When I run cucumber features
|
|
30
|
-
Then
|
|
31
|
-
And the output should contain
|
|
30
|
+
When I run `cucumber features`
|
|
31
|
+
Then the stderr should not contain anything
|
|
32
|
+
And the output should contain:
|
|
32
33
|
"""
|
|
33
34
|
html
|
|
34
35
|
"""
|
|
35
36
|
|
|
36
37
|
Scenario: feature directories read from configuration
|
|
37
|
-
|
|
38
|
-
Given a standard Cucumber project directory structure
|
|
39
|
-
And a file named "features/support/env.rb" with:
|
|
38
|
+
Given a file named "features/support/env.rb" with:
|
|
40
39
|
"""
|
|
41
40
|
AfterConfiguration do |config|
|
|
42
|
-
config.out_stream << "AfterConfiguration hook read feature directories: #{config.feature_dirs.join(', ')}"
|
|
41
|
+
config.out_stream << "AfterConfiguration hook read feature directories: #{config.feature_dirs.join(', ')}"
|
|
43
42
|
end
|
|
44
43
|
"""
|
|
45
|
-
When I run cucumber features
|
|
46
|
-
Then
|
|
47
|
-
And the output should contain
|
|
44
|
+
When I run `cucumber features`
|
|
45
|
+
Then the stderr should not contain anything
|
|
46
|
+
And the output should contain:
|
|
48
47
|
"""
|
|
49
48
|
AfterConfiguration hook read feature directories: features
|
|
50
|
-
"""
|
|
49
|
+
"""
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Feature: Profiles
|
|
2
|
+
|
|
2
3
|
In order to save time and prevent carpal tunnel syndrome
|
|
3
4
|
Cucumber users can save and reuse commonly used cucumber flags in a 'cucumber.yml' file.
|
|
4
5
|
These named arguments are called profiles and the yml file should be in the root of your project.
|
|
@@ -7,15 +8,14 @@ Feature: Profiles
|
|
|
7
8
|
http://wiki.github.com/cucumber/cucumber/cucumber.yml
|
|
8
9
|
|
|
9
10
|
Background: Basic App
|
|
10
|
-
Given a
|
|
11
|
-
And a file named "features/sample.feature" with:
|
|
11
|
+
Given a file named "features/sample.feature" with:
|
|
12
12
|
"""
|
|
13
13
|
Feature: Sample
|
|
14
14
|
Scenario: this is a test
|
|
15
|
-
Given
|
|
15
|
+
Given this step raises an error
|
|
16
16
|
"""
|
|
17
|
-
And
|
|
18
|
-
And
|
|
17
|
+
And an empty file named "features/support/env.rb"
|
|
18
|
+
And an empty file named "features/support/super_env.rb"
|
|
19
19
|
And the following profiles are defined:
|
|
20
20
|
"""
|
|
21
21
|
default: features/sample.feature --require features/support/env.rb -v
|
|
@@ -23,8 +23,8 @@ Feature: Profiles
|
|
|
23
23
|
"""
|
|
24
24
|
|
|
25
25
|
Scenario: Explicitly defining a profile to run
|
|
26
|
-
When I run cucumber features/sample.feature --profile super
|
|
27
|
-
Then the output should contain
|
|
26
|
+
When I run `cucumber features/sample.feature --profile super`
|
|
27
|
+
Then the output should contain:
|
|
28
28
|
"""
|
|
29
29
|
Using the super profile...
|
|
30
30
|
"""
|
|
@@ -36,29 +36,29 @@ Feature: Profiles
|
|
|
36
36
|
<% requires = "--require features/support/super_env.rb" %>
|
|
37
37
|
super: <%= "features/sample.feature #{requires} -v" %>
|
|
38
38
|
"""
|
|
39
|
-
When I run cucumber features/sample.feature --profile super
|
|
40
|
-
Then the output should contain
|
|
39
|
+
When I run `cucumber features/sample.feature --profile super`
|
|
40
|
+
Then the output should contain:
|
|
41
41
|
"""
|
|
42
42
|
Using the super profile...
|
|
43
43
|
"""
|
|
44
44
|
And exactly these files should be loaded: features/support/super_env.rb
|
|
45
45
|
|
|
46
46
|
Scenario: Defining multiple profiles to run
|
|
47
|
-
When I run cucumber features/sample.feature --profile default --profile super
|
|
48
|
-
Then the output should contain
|
|
47
|
+
When I run `cucumber features/sample.feature --profile default --profile super`
|
|
48
|
+
Then the output should contain:
|
|
49
49
|
"""
|
|
50
50
|
Using the default and super profiles...
|
|
51
51
|
"""
|
|
52
52
|
And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
|
|
53
53
|
|
|
54
54
|
Scenario: Arguments passed in but no profile specified
|
|
55
|
-
When I run cucumber -v
|
|
55
|
+
When I run `cucumber -v`
|
|
56
56
|
Then the default profile should be used
|
|
57
57
|
And exactly these files should be loaded: features/support/env.rb
|
|
58
58
|
|
|
59
59
|
Scenario: Trying to use a missing profile
|
|
60
|
-
When I run cucumber -p foo
|
|
61
|
-
Then
|
|
60
|
+
When I run `cucumber -p foo`
|
|
61
|
+
Then the stderr should contain:
|
|
62
62
|
"""
|
|
63
63
|
Could not find profile: 'foo'
|
|
64
64
|
|
|
@@ -69,26 +69,25 @@ Feature: Profiles
|
|
|
69
69
|
"""
|
|
70
70
|
|
|
71
71
|
Scenario Outline: Disabling the default profile
|
|
72
|
-
When I run cucumber -v features/ <
|
|
73
|
-
Then the output should contain
|
|
72
|
+
When I run `cucumber -v features/ <flag>`
|
|
73
|
+
Then the output should contain:
|
|
74
74
|
"""
|
|
75
75
|
Disabling profiles...
|
|
76
76
|
"""
|
|
77
77
|
And exactly these files should be loaded: features/support/env.rb, features/support/super_env.rb
|
|
78
78
|
|
|
79
79
|
Examples:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
| flag |
|
|
81
|
+
| -P |
|
|
82
|
+
| --no-profile |
|
|
84
83
|
|
|
85
84
|
Scenario: Overriding the profile's features to run
|
|
86
85
|
Given a file named "features/another.feature" with:
|
|
87
86
|
"""
|
|
88
87
|
Feature: Just this one should be ran
|
|
89
88
|
"""
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
When I run `cucumber -p default features/another.feature`
|
|
90
|
+
Then exactly these features should be ran: features/another.feature
|
|
92
91
|
|
|
93
92
|
Scenario: Overriding the profile's formatter
|
|
94
93
|
You will most likely want to define a formatter in your default formatter.
|
|
@@ -101,26 +100,21 @@ Feature: Profiles
|
|
|
101
100
|
"""
|
|
102
101
|
default: features/sample.feature --require features/support/env.rb -v --format profile
|
|
103
102
|
"""
|
|
104
|
-
When I run cucumber features --format pretty
|
|
105
|
-
|
|
103
|
+
When I run `cucumber features --format pretty`
|
|
104
|
+
Then the output should contain:
|
|
106
105
|
"""
|
|
107
106
|
Feature: Sample
|
|
108
107
|
"""
|
|
109
108
|
|
|
110
109
|
Scenario Outline: Showing profiles when listing failing scenarios
|
|
111
|
-
Given
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
raise 'BANG'
|
|
115
|
-
end
|
|
116
|
-
"""
|
|
117
|
-
When I run cucumber -q -p super -p default -f <format> features/sample.feature --require features/step_definitions/steps.rb
|
|
118
|
-
Then it should fail
|
|
119
|
-
And the output should contain
|
|
110
|
+
Given the standard step definitions
|
|
111
|
+
When I run `cucumber -q -p super -p default -f <format> features/sample.feature --require features/step_definitions/steps.rb`
|
|
112
|
+
Then it should fail with:
|
|
120
113
|
"""
|
|
121
114
|
cucumber -p super features/sample.feature:2
|
|
122
115
|
"""
|
|
116
|
+
|
|
123
117
|
Examples:
|
|
124
|
-
| format
|
|
125
|
-
| pretty
|
|
126
|
-
| progress|
|
|
118
|
+
| format |
|
|
119
|
+
| pretty |
|
|
120
|
+
| progress |
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
@spawn
|
|
1
2
|
Feature: Rake task
|
|
2
3
|
In order to ease the development process
|
|
3
4
|
As a developer and CI server administrator
|
|
4
5
|
Cucumber features should be executable via Rake
|
|
5
6
|
|
|
6
7
|
Background:
|
|
7
|
-
Given a standard Cucumber project directory structure
|
|
8
8
|
And a file named "features/missing_step_definitions.feature" with:
|
|
9
9
|
"""
|
|
10
10
|
Feature: Sample
|
|
@@ -16,7 +16,6 @@ Feature: Rake task
|
|
|
16
16
|
Given I don't want this ran
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
|
-
|
|
20
19
|
Scenario: rake task with a defined profile
|
|
21
20
|
Given the following profile is defined:
|
|
22
21
|
"""
|
|
@@ -24,16 +23,14 @@ Feature: Rake task
|
|
|
24
23
|
"""
|
|
25
24
|
And a file named "Rakefile" with:
|
|
26
25
|
"""
|
|
27
|
-
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
28
26
|
require 'cucumber/rake/task'
|
|
29
27
|
|
|
30
28
|
Cucumber::Rake::Task.new do |t|
|
|
31
29
|
t.profile = "foo"
|
|
32
30
|
end
|
|
33
31
|
"""
|
|
34
|
-
When I run rake cucumber
|
|
35
|
-
Then it should pass
|
|
36
|
-
And the output should contain
|
|
32
|
+
When I run `rake cucumber`
|
|
33
|
+
Then it should pass with:
|
|
37
34
|
"""
|
|
38
35
|
Feature: Sample
|
|
39
36
|
|
|
@@ -44,31 +41,29 @@ Feature: Rake task
|
|
|
44
41
|
1 step (1 undefined)
|
|
45
42
|
"""
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
require 'cucumber/rake/task'
|
|
44
|
+
Scenario: rake task without a profile
|
|
45
|
+
Given a file named "Rakefile" with:
|
|
46
|
+
"""
|
|
47
|
+
require 'cucumber/rake/task'
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Feature: Sample
|
|
49
|
+
Cucumber::Rake::Task.new do |t|
|
|
50
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
51
|
+
end
|
|
52
|
+
"""
|
|
53
|
+
When I run `rake cucumber`
|
|
54
|
+
Then it should pass with:
|
|
55
|
+
"""
|
|
56
|
+
Feature: Sample
|
|
62
57
|
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
Scenario: Wanted
|
|
59
|
+
Given I want to run this
|
|
65
60
|
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
Scenario: Unwanted
|
|
62
|
+
Given I don't want this ran
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
2 scenarios (2 undefined)
|
|
65
|
+
2 steps (2 undefined)
|
|
66
|
+
"""
|
|
72
67
|
|
|
73
68
|
Scenario: rake task with a defined profile and cucumber_opts
|
|
74
69
|
Given the following profile is defined:
|
|
@@ -77,7 +72,6 @@ Feature: Rake task
|
|
|
77
72
|
"""
|
|
78
73
|
And a file named "Rakefile" with:
|
|
79
74
|
"""
|
|
80
|
-
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
81
75
|
require 'cucumber/rake/task'
|
|
82
76
|
|
|
83
77
|
Cucumber::Rake::Task.new do |t|
|
|
@@ -85,9 +79,8 @@ Feature: Rake task
|
|
|
85
79
|
t.cucumber_opts = %w{--quiet --no-color}
|
|
86
80
|
end
|
|
87
81
|
"""
|
|
88
|
-
When I run rake cucumber
|
|
89
|
-
Then it should pass
|
|
90
|
-
And the output should contain
|
|
82
|
+
When I run `rake cucumber`
|
|
83
|
+
Then it should pass with:
|
|
91
84
|
"""
|
|
92
85
|
Feature: Sample
|
|
93
86
|
|
|
@@ -99,15 +92,14 @@ Feature: Rake task
|
|
|
99
92
|
"""
|
|
100
93
|
|
|
101
94
|
Scenario: respect requires
|
|
102
|
-
Given
|
|
103
|
-
And
|
|
95
|
+
Given an empty file named "features/support/env.rb"
|
|
96
|
+
And an empty file named "features/support/dont_require_me.rb"
|
|
104
97
|
And the following profile is defined:
|
|
105
98
|
"""
|
|
106
99
|
no_bomb: features/missing_step_definitions.feature:3 --require features/support/env.rb --verbose
|
|
107
100
|
"""
|
|
108
101
|
And a file named "Rakefile" with:
|
|
109
102
|
"""
|
|
110
|
-
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
111
103
|
require 'cucumber/rake/task'
|
|
112
104
|
|
|
113
105
|
Cucumber::Rake::Task.new do |t|
|
|
@@ -115,10 +107,9 @@ Feature: Rake task
|
|
|
115
107
|
t.cucumber_opts = %w{--quiet --no-color}
|
|
116
108
|
end
|
|
117
109
|
"""
|
|
118
|
-
|
|
119
|
-
When I run rake cucumber
|
|
110
|
+
When I run `rake cucumber`
|
|
120
111
|
Then it should pass
|
|
121
|
-
And the output should not contain
|
|
112
|
+
And the output should not contain:
|
|
122
113
|
"""
|
|
123
114
|
* features/support/dont_require_me.rb
|
|
124
115
|
"""
|
|
@@ -133,16 +124,14 @@ Feature: Rake task
|
|
|
133
124
|
"""
|
|
134
125
|
And a file named "Rakefile" with:
|
|
135
126
|
"""
|
|
136
|
-
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
137
127
|
require 'cucumber/rake/task'
|
|
138
128
|
|
|
139
129
|
Cucumber::Rake::Task.new do |t|
|
|
140
130
|
t.cucumber_opts = %w{--quiet --no-color}
|
|
141
131
|
end
|
|
142
132
|
"""
|
|
143
|
-
When I run rake cucumber
|
|
144
|
-
Then it should pass
|
|
145
|
-
And the output should contain
|
|
133
|
+
When I run `rake cucumber`
|
|
134
|
+
Then it should pass with:
|
|
146
135
|
"""
|
|
147
136
|
Feature: The futures green
|
|
148
137
|
|
|
@@ -1,30 +1,23 @@
|
|
|
1
1
|
@spawn
|
|
2
2
|
Feature: Raketask
|
|
3
|
+
|
|
3
4
|
In order to use cucumber's rake task
|
|
4
5
|
As a Cuker
|
|
5
6
|
I do not want to see rake's backtraces when it fails
|
|
6
7
|
Also I want to get zero exit status code on failures
|
|
7
|
-
And non-zero exit status code when
|
|
8
|
+
And non-zero exit status code when it pases
|
|
8
9
|
|
|
9
10
|
Background:
|
|
11
|
+
Given the standard step definitions
|
|
10
12
|
Given a file named "features/passing_and_failing.feature" with:
|
|
11
13
|
"""
|
|
12
14
|
Feature: Sample
|
|
13
15
|
|
|
14
16
|
Scenario: Passing
|
|
15
|
-
Given
|
|
17
|
+
Given this step passes
|
|
16
18
|
|
|
17
19
|
Scenario: Failing
|
|
18
|
-
Given
|
|
19
|
-
"""
|
|
20
|
-
Given a file named "features/step_definitions/steps.rb" with:
|
|
21
|
-
"""
|
|
22
|
-
Given(/^passing$/) do
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
Given /^failing$/ do
|
|
26
|
-
raise "FAIL"
|
|
27
|
-
end
|
|
20
|
+
Given this step raises an error
|
|
28
21
|
"""
|
|
29
22
|
Given a file named "Rakefile" with:
|
|
30
23
|
"""
|
|
@@ -48,4 +41,4 @@ Feature: Raketask
|
|
|
48
41
|
Scenario: Failing feature
|
|
49
42
|
When I run `bundle exec rake fail`
|
|
50
43
|
Then the exit status should not be 0
|
|
51
|
-
|
|
44
|
+
But the output should not contain "rake aborted!"
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@wire
|
|
2
|
-
Feature:
|
|
3
|
-
|
|
2
|
+
Feature: ERB configuration
|
|
3
|
+
|
|
4
4
|
As a developer on server with multiple users
|
|
5
5
|
I want to be able to configure which port my wire server runs on
|
|
6
6
|
So that I can avoid port conflicts
|
|
7
7
|
|
|
8
8
|
Background:
|
|
9
|
-
Given a
|
|
10
|
-
And a file named "features/wired.feature" with:
|
|
9
|
+
Given a file named "features/wired.feature" with:
|
|
11
10
|
"""
|
|
12
11
|
Feature: High strung
|
|
13
12
|
Scenario: Wired
|
|
@@ -24,8 +23,8 @@ Feature: Wire Protocol with ERB
|
|
|
24
23
|
And there is a wire server running on port 12345 which understands the following protocol:
|
|
25
24
|
| request | response |
|
|
26
25
|
| ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[]] |
|
|
27
|
-
When I run cucumber --dry-run --no-snippets -f progress
|
|
28
|
-
|
|
26
|
+
When I run `cucumber --dry-run --no-snippets -f progress`
|
|
27
|
+
Then it should pass with:
|
|
29
28
|
"""
|
|
30
29
|
U
|
|
31
30
|
|
|
@@ -45,8 +44,8 @@ Feature: Wire Protocol with ERB
|
|
|
45
44
|
And there is a wire server running on port 16816 which understands the following protocol:
|
|
46
45
|
| request | response |
|
|
47
46
|
| ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[]] |
|
|
48
|
-
When I run cucumber --dry-run --no-snippets -f progress
|
|
49
|
-
|
|
47
|
+
When I run `cucumber --dry-run --no-snippets -f progress`
|
|
48
|
+
Then it should pass with:
|
|
50
49
|
"""
|
|
51
50
|
U
|
|
52
51
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
@wire
|
|
2
|
+
Feature: Handle unexpected response
|
|
3
|
+
|
|
4
|
+
When the server sends us back a message we don't understand, this is how Cucumber will behave.
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named "features/wired.feature" with:
|
|
8
|
+
"""
|
|
9
|
+
Feature: High strung
|
|
10
|
+
Scenario: Wired
|
|
11
|
+
Given we're all wired
|
|
12
|
+
|
|
13
|
+
"""
|
|
14
|
+
And a file named "features/step_definitions/some_remote_place.wire" with:
|
|
15
|
+
"""
|
|
16
|
+
host: localhost
|
|
17
|
+
port: 54321
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
Scenario: Unexpected response
|
|
22
|
+
Given there is a wire server running on port 54321 which understands the following protocol:
|
|
23
|
+
| request | response |
|
|
24
|
+
| ["begin_scenario"] | ["yikes"] |
|
|
25
|
+
| ["step_matches",{"name_to_match":"we're all wired"}] | ["success",[{"id":"1", "args":[]}]] |
|
|
26
|
+
When I run `cucumber -f pretty`
|
|
27
|
+
Then the output should contain:
|
|
28
|
+
"""
|
|
29
|
+
undefined method `handle_yikes'
|
|
30
|
+
"""
|