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
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Feature: Print snippets
|
|
2
|
-
In order to make it easier to implement step definitions
|
|
3
|
-
Developers should get a scaffolding for undefined step definitions
|
|
4
|
-
|
|
5
|
-
Scenario: Cucumber doesn't know what language, and defaults to Ruby
|
|
6
|
-
Given a standard Cucumber project directory structure
|
|
7
|
-
And a file named "features/x.feature" with:
|
|
8
|
-
"""
|
|
9
|
-
Feature: X
|
|
10
|
-
Scenario: Y
|
|
11
|
-
Given Z
|
|
12
|
-
Given Q
|
|
13
|
-
"""
|
|
14
|
-
When I run cucumber features
|
|
15
|
-
Then STDERR should be empty
|
|
16
|
-
And it should pass with
|
|
17
|
-
"""
|
|
18
|
-
Feature: X
|
|
19
|
-
|
|
20
|
-
Scenario: Y # features/x.feature:2
|
|
21
|
-
Given Z # features/x.feature:3
|
|
22
|
-
Given Q # features/x.feature:4
|
|
23
|
-
|
|
24
|
-
1 scenario (1 undefined)
|
|
25
|
-
2 steps (2 undefined)
|
|
26
|
-
|
|
27
|
-
You can implement step definitions for undefined steps with these snippets:
|
|
28
|
-
|
|
29
|
-
Given(/^Z$/) do
|
|
30
|
-
pending # express the regexp above with the code you wish you had
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
Given(/^Q$/) do
|
|
34
|
-
pending # express the regexp above with the code you wish you had
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
If you want snippets in a different programming language,
|
|
38
|
-
just make sure a file with the appropriate file extension
|
|
39
|
-
exists where cucumber looks for step definitions.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"""
|
|
43
|
-
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
Feature: Cucumber command line
|
|
2
|
-
In order to write better software
|
|
3
|
-
Developers should be able to execute requirements as tests
|
|
4
|
-
|
|
5
|
-
@rspec2
|
|
6
|
-
Scenario: Run single failing scenario with default diff enabled
|
|
7
|
-
When I run cucumber -q features/failing_expectation.feature
|
|
8
|
-
Then it should fail with
|
|
9
|
-
"""
|
|
10
|
-
Feature: Failing expectation
|
|
11
|
-
|
|
12
|
-
Scenario: Failing expectation
|
|
13
|
-
Given failing expectation
|
|
14
|
-
expected: "that"
|
|
15
|
-
got: "this" (using ==) (RSpec::Expectations::ExpectationNotMetError)
|
|
16
|
-
./features/step_definitions/sample_steps.rb:63:in `/^failing expectation$/'
|
|
17
|
-
features/failing_expectation.feature:4:in `Given failing expectation'
|
|
18
|
-
|
|
19
|
-
Failing Scenarios:
|
|
20
|
-
cucumber features/failing_expectation.feature:3
|
|
21
|
-
|
|
22
|
-
1 scenario (1 failed)
|
|
23
|
-
1 step (1 failed)
|
|
24
|
-
|
|
25
|
-
"""
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
@spork
|
|
2
|
-
Feature: DRb Server Integration
|
|
3
|
-
To prevent waiting for Rails and other large Ruby applications to load their environments
|
|
4
|
-
for each feature run Cucumber ships with a DRb client that can speak to a server which
|
|
5
|
-
loads up the environment only once.
|
|
6
|
-
|
|
7
|
-
Background: App with Spork support
|
|
8
|
-
Spork is a gem that has a DRb server and the scenarios below illustrate how to use it.
|
|
9
|
-
However, any DRb server that adheres to the protocol that the client expects would work.
|
|
10
|
-
|
|
11
|
-
Given a standard Cucumber project directory structure
|
|
12
|
-
And a file named "features/support/env.rb" with:
|
|
13
|
-
"""
|
|
14
|
-
require 'rubygems'
|
|
15
|
-
require 'spork'
|
|
16
|
-
|
|
17
|
-
Spork.prefork do
|
|
18
|
-
puts "I'm loading all the heavy stuff..."
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
Spork.each_run do
|
|
22
|
-
puts "I'm loading the stuff just for this run..."
|
|
23
|
-
end
|
|
24
|
-
"""
|
|
25
|
-
And a file named "features/sample.feature" with:
|
|
26
|
-
"""
|
|
27
|
-
# language: en
|
|
28
|
-
Feature: Sample
|
|
29
|
-
Scenario: this is a test
|
|
30
|
-
Given I am just testing stuff
|
|
31
|
-
"""
|
|
32
|
-
And a file named "features/essai.feature" with:
|
|
33
|
-
"""
|
|
34
|
-
# language: fr
|
|
35
|
-
Fonctionnalité: Essai
|
|
36
|
-
Scenario: ceci est un test
|
|
37
|
-
Soit je teste
|
|
38
|
-
"""
|
|
39
|
-
And a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
|
|
40
|
-
"""
|
|
41
|
-
Given /^I am just testing stuff$/ do
|
|
42
|
-
# no-op
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
Soit /^je teste$/ do
|
|
46
|
-
# no-op
|
|
47
|
-
end
|
|
48
|
-
"""
|
|
49
|
-
|
|
50
|
-
Scenario: Feature Passing with --drb flag
|
|
51
|
-
Given I am running spork in the background
|
|
52
|
-
|
|
53
|
-
When I run cucumber features --drb
|
|
54
|
-
Then it should pass
|
|
55
|
-
And STDERR should be empty
|
|
56
|
-
And the output should contain
|
|
57
|
-
"""
|
|
58
|
-
1 step (1 passed)
|
|
59
|
-
"""
|
|
60
|
-
And the output should contain
|
|
61
|
-
"""
|
|
62
|
-
I'm loading the stuff just for this run...
|
|
63
|
-
"""
|
|
64
|
-
And the output should not contain
|
|
65
|
-
"""
|
|
66
|
-
I'm loading all the heavy stuff...
|
|
67
|
-
"""
|
|
68
|
-
|
|
69
|
-
Scenario: Feature Failing with --drb flag
|
|
70
|
-
Given a file named "features/step_definitions/all_your_steps_are_belong_to_us.rb" with:
|
|
71
|
-
"""
|
|
72
|
-
Given /^I am just testing stuff$/ do
|
|
73
|
-
raise "Oh noes!"
|
|
74
|
-
end
|
|
75
|
-
"""
|
|
76
|
-
And I am running spork in the background
|
|
77
|
-
|
|
78
|
-
When I run cucumber features --drb
|
|
79
|
-
Then it should fail
|
|
80
|
-
And the output should contain
|
|
81
|
-
"""
|
|
82
|
-
1 step (1 failed)
|
|
83
|
-
"""
|
|
84
|
-
And the output should contain
|
|
85
|
-
"""
|
|
86
|
-
I'm loading the stuff just for this run...
|
|
87
|
-
"""
|
|
88
|
-
And the output should not contain
|
|
89
|
-
"""
|
|
90
|
-
I'm loading all the heavy stuff...
|
|
91
|
-
"""
|
|
92
|
-
|
|
93
|
-
Scenario: Feature Run with --drb flag with no DRb server running
|
|
94
|
-
Cucumber will fall back on running the features locally in this case.
|
|
95
|
-
|
|
96
|
-
Given I am not running a DRb server in the background
|
|
97
|
-
|
|
98
|
-
When I run cucumber features --drb
|
|
99
|
-
Then it should pass
|
|
100
|
-
And STDERR should match
|
|
101
|
-
"""
|
|
102
|
-
No DRb server is running. Running features locally:
|
|
103
|
-
"""
|
|
104
|
-
And the output should contain
|
|
105
|
-
"""
|
|
106
|
-
I'm loading all the heavy stuff...
|
|
107
|
-
I'm loading the stuff just for this run...
|
|
108
|
-
"""
|
|
109
|
-
And the output should contain
|
|
110
|
-
"""
|
|
111
|
-
1 step (1 passed)
|
|
112
|
-
"""
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
Scenario: Feature Run with --drb flag *defined in a profile* with no DRb server running
|
|
116
|
-
|
|
117
|
-
Given I am not running a DRb server in the background
|
|
118
|
-
And the following profile is defined:
|
|
119
|
-
"""
|
|
120
|
-
server: --drb features
|
|
121
|
-
"""
|
|
122
|
-
|
|
123
|
-
When I run cucumber --profile server
|
|
124
|
-
Then it should pass
|
|
125
|
-
And STDERR should match
|
|
126
|
-
"""
|
|
127
|
-
No DRb server is running. Running features locally:
|
|
128
|
-
"""
|
|
129
|
-
And the output should contain
|
|
130
|
-
"""
|
|
131
|
-
I'm loading all the heavy stuff...
|
|
132
|
-
I'm loading the stuff just for this run...
|
|
133
|
-
"""
|
|
134
|
-
|
|
135
|
-
Scenario: Feature Run with --drb specifying a non-standard port
|
|
136
|
-
|
|
137
|
-
Given I am running spork in the background on port 9000
|
|
138
|
-
|
|
139
|
-
When I run cucumber features --drb --port 9000
|
|
140
|
-
Then it should pass
|
|
141
|
-
And STDERR should be empty
|
|
142
|
-
And the output should contain
|
|
143
|
-
"""
|
|
144
|
-
1 step (1 passed)
|
|
145
|
-
"""
|
|
146
|
-
And the output should contain
|
|
147
|
-
"""
|
|
148
|
-
I'm loading the stuff just for this run...
|
|
149
|
-
"""
|
|
150
|
-
And the output should not contain
|
|
151
|
-
"""
|
|
152
|
-
I'm loading all the heavy stuff...
|
|
153
|
-
"""
|
|
154
|
-
|
|
155
|
-
Scenario: Feature Run with $CUCUMBER_DRB environment variable
|
|
156
|
-
|
|
157
|
-
Given I have environment variable CUCUMBER_DRB set to "9000"
|
|
158
|
-
And I am running spork in the background on port 9000
|
|
159
|
-
|
|
160
|
-
When I run cucumber features/ --drb
|
|
161
|
-
Then it should pass
|
|
162
|
-
And STDERR should be empty
|
|
163
|
-
And the output should contain
|
|
164
|
-
"""
|
|
165
|
-
1 step (1 passed)
|
|
166
|
-
"""
|
|
167
|
-
And the output should contain
|
|
168
|
-
"""
|
|
169
|
-
I'm loading the stuff just for this run...
|
|
170
|
-
"""
|
|
171
|
-
And the output should not contain
|
|
172
|
-
"""
|
|
173
|
-
I'm loading all the heavy stuff...
|
|
174
|
-
"""
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Feature: Exclude ruby and feature files from runs
|
|
2
|
-
Developers should be able to easily exclude files from cucumber runs
|
|
3
|
-
This is a nice feature to have in conjunction with profiles, so you can exclude
|
|
4
|
-
certain environment files from certain runs.
|
|
5
|
-
|
|
6
|
-
Scenario: exclude ruby files
|
|
7
|
-
Given a standard Cucumber project directory structure
|
|
8
|
-
And a file named "features/support/dont_require_me.rb"
|
|
9
|
-
And a file named "features/step_definitions/fooz.rb"
|
|
10
|
-
And a file named "features/step_definitions/foof.rb"
|
|
11
|
-
And a file named "features/step_definitions/foot.rb"
|
|
12
|
-
And a file named "features/support/require_me.rb"
|
|
13
|
-
|
|
14
|
-
When I run cucumber features -q --verbose --exclude features/support/dont --exclude foo[zf]
|
|
15
|
-
|
|
16
|
-
Then "features/support/require_me.rb" should be required
|
|
17
|
-
And "features/step_definitions/foot.rb" should be required
|
|
18
|
-
And "features/support/dont_require_me.rb" should not be required
|
|
19
|
-
And "features/step_definitions/foof.rb" should not be required
|
|
20
|
-
And "features/step_definitions/fooz.rb" should not be required
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
Feature: --expand option
|
|
2
|
-
In order to make it easier to writhe certain editor plugins
|
|
3
|
-
and also for some people to understand scenarios, Cucumber
|
|
4
|
-
should expand examples in outlines.
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given a standard Cucumber project directory structure
|
|
8
|
-
And a file named "features/expand_me.feature" with:
|
|
9
|
-
"""
|
|
10
|
-
Feature: submit guess
|
|
11
|
-
|
|
12
|
-
Background:
|
|
13
|
-
Given the players' names:
|
|
14
|
-
| maker | breaker |
|
|
15
|
-
| Moriarty | Holmes |
|
|
16
|
-
|
|
17
|
-
Scenario Outline: submit guess
|
|
18
|
-
Given the secret code is <code>
|
|
19
|
-
When I guess <guess>
|
|
20
|
-
Then the mark should be <mark>
|
|
21
|
-
|
|
22
|
-
Examples: all colors correct
|
|
23
|
-
| code | guess | mark |
|
|
24
|
-
| r g y c | r g y c | bbbb |
|
|
25
|
-
| r g y c | r g c y | bbww |
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
Scenario: Expand the outline
|
|
29
|
-
When I run cucumber -i -q --expand features/expand_me.feature
|
|
30
|
-
Then STDERR should be empty
|
|
31
|
-
And it should pass with
|
|
32
|
-
"""
|
|
33
|
-
Feature: submit guess
|
|
34
|
-
|
|
35
|
-
Background:
|
|
36
|
-
Given the players' names:
|
|
37
|
-
| maker | breaker |
|
|
38
|
-
| Moriarty | Holmes |
|
|
39
|
-
|
|
40
|
-
Scenario Outline: submit guess
|
|
41
|
-
Given the secret code is <code>
|
|
42
|
-
When I guess <guess>
|
|
43
|
-
Then the mark should be <mark>
|
|
44
|
-
|
|
45
|
-
Examples: all colors correct
|
|
46
|
-
|
|
47
|
-
Scenario: | r g y c | r g y c | bbbb |
|
|
48
|
-
Given the secret code is r g y c
|
|
49
|
-
When I guess r g y c
|
|
50
|
-
Then the mark should be bbbb
|
|
51
|
-
|
|
52
|
-
Scenario: | r g y c | r g c y | bbww |
|
|
53
|
-
Given the secret code is r g y c
|
|
54
|
-
When I guess r g c y
|
|
55
|
-
Then the mark should be bbww
|
|
56
|
-
|
|
57
|
-
2 scenarios (2 undefined)
|
|
58
|
-
8 steps (8 undefined)
|
|
59
|
-
|
|
60
|
-
"""
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
Feature: JUnit output formatter
|
|
2
|
-
In order for developers to create test reports with ant
|
|
3
|
-
Cucumber should be able to output JUnit xml files
|
|
4
|
-
|
|
5
|
-
Background:
|
|
6
|
-
Given I am in junit
|
|
7
|
-
And the tmp directory is empty
|
|
8
|
-
|
|
9
|
-
Scenario: one feature, one passing scenario, one failing scenario
|
|
10
|
-
When I run cucumber --format junit --out tmp/ features/one_passing_one_failing.feature
|
|
11
|
-
Then it should fail with
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
"""
|
|
15
|
-
And "fixtures/junit/tmp/TEST-features-one_passing_one_failing.xml" with junit duration "0.005" should contain
|
|
16
|
-
"""
|
|
17
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
18
|
-
<testsuite errors="0" failures="1" name="One passing scenario, one failing scenario" skipped="0" tests="2" time="0.005">
|
|
19
|
-
<testcase classname="One passing scenario, one failing scenario" name="Passing" time="0.005">
|
|
20
|
-
<system-out/>
|
|
21
|
-
<system-err/>
|
|
22
|
-
</testcase>
|
|
23
|
-
<testcase classname="One passing scenario, one failing scenario" name="Failing" time="0.005">
|
|
24
|
-
<failure message="failed Failing" type="failed">
|
|
25
|
-
<![CDATA[Scenario: Failing
|
|
26
|
-
|
|
27
|
-
Given a failing scenario
|
|
28
|
-
|
|
29
|
-
Message:
|
|
30
|
-
]]>
|
|
31
|
-
<![CDATA[ (RuntimeError)
|
|
32
|
-
features/one_passing_one_failing.feature:7:in `Given a failing scenario']]>
|
|
33
|
-
</failure>
|
|
34
|
-
<system-out/>
|
|
35
|
-
<system-err/>
|
|
36
|
-
</testcase>
|
|
37
|
-
<system-out>
|
|
38
|
-
<![CDATA[]]>
|
|
39
|
-
</system-out>
|
|
40
|
-
<system-err>
|
|
41
|
-
<![CDATA[]]>
|
|
42
|
-
</system-err>
|
|
43
|
-
</testsuite>
|
|
44
|
-
|
|
45
|
-
"""
|
|
46
|
-
|
|
47
|
-
Scenario: one feature in a subdirectory, one passing scenario, one failing scenario
|
|
48
|
-
When I run cucumber --format junit --out tmp/ features/some_subdirectory/one_passing_one_failing.feature --require features
|
|
49
|
-
Then it should fail with
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
"""
|
|
53
|
-
And "fixtures/junit/tmp/TEST-features-some_subdirectory-one_passing_one_failing.xml" with junit duration "0.005" should contain
|
|
54
|
-
"""
|
|
55
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
56
|
-
<testsuite errors="0" failures="1" name="Subdirectory - One passing scenario, one failing scenario" skipped="0" tests="2" time="0.005">
|
|
57
|
-
<testcase classname="Subdirectory - One passing scenario, one failing scenario" name="Passing" time="0.005">
|
|
58
|
-
<system-out/>
|
|
59
|
-
<system-err/>
|
|
60
|
-
</testcase>
|
|
61
|
-
<testcase classname="Subdirectory - One passing scenario, one failing scenario" name="Failing" time="0.005">
|
|
62
|
-
<failure message="failed Failing" type="failed">
|
|
63
|
-
<![CDATA[Scenario: Failing
|
|
64
|
-
|
|
65
|
-
Given a failing scenario
|
|
66
|
-
|
|
67
|
-
Message:
|
|
68
|
-
]]>
|
|
69
|
-
<![CDATA[ (RuntimeError)
|
|
70
|
-
features/some_subdirectory/one_passing_one_failing.feature:7:in `Given a failing scenario']]>
|
|
71
|
-
</failure>
|
|
72
|
-
<system-out/>
|
|
73
|
-
<system-err/>
|
|
74
|
-
</testcase>
|
|
75
|
-
<system-out>
|
|
76
|
-
<![CDATA[]]>
|
|
77
|
-
</system-out>
|
|
78
|
-
<system-err>
|
|
79
|
-
<![CDATA[]]>
|
|
80
|
-
</system-err>
|
|
81
|
-
</testsuite>
|
|
82
|
-
|
|
83
|
-
"""
|
|
84
|
-
|
|
85
|
-
Scenario: pending and undefined steps are reported as skipped
|
|
86
|
-
When I run cucumber --format junit --out tmp/ features/pending.feature
|
|
87
|
-
Then it should pass with
|
|
88
|
-
"""
|
|
89
|
-
|
|
90
|
-
"""
|
|
91
|
-
And "fixtures/junit/tmp/TEST-features-pending.xml" with junit duration "0.009" should contain
|
|
92
|
-
"""
|
|
93
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
94
|
-
<testsuite errors="0" failures="0" name="Pending step" skipped="2" tests="2" time="0.009">
|
|
95
|
-
<testcase classname="Pending step" name="Pending" time="0.009">
|
|
96
|
-
<skipped/>
|
|
97
|
-
<system-out/>
|
|
98
|
-
<system-err/>
|
|
99
|
-
</testcase>
|
|
100
|
-
<testcase classname="Pending step" name="Undefined" time="0.009">
|
|
101
|
-
<skipped/>
|
|
102
|
-
<system-out/>
|
|
103
|
-
<system-err/>
|
|
104
|
-
</testcase>
|
|
105
|
-
<system-out>
|
|
106
|
-
<![CDATA[]]>
|
|
107
|
-
</system-out>
|
|
108
|
-
<system-err>
|
|
109
|
-
<![CDATA[]]>
|
|
110
|
-
</system-err>
|
|
111
|
-
</testsuite>
|
|
112
|
-
|
|
113
|
-
"""
|
|
114
|
-
|
|
115
|
-
Scenario: pending and undefined steps with strict option should fail
|
|
116
|
-
When I run cucumber --format junit --out tmp/ features/pending.feature --strict
|
|
117
|
-
Then it should fail with
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
"""
|
|
121
|
-
And "fixtures/junit/tmp/TEST-features-pending.xml" with junit duration "0.000160" should contain
|
|
122
|
-
"""
|
|
123
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
124
|
-
<testsuite errors="0" failures="2" name="Pending step" skipped="0" tests="2" time="0.000160">
|
|
125
|
-
<testcase classname="Pending step" name="Pending" time="0.000160">
|
|
126
|
-
<failure message="pending Pending" type="pending">
|
|
127
|
-
<![CDATA[Scenario: Pending
|
|
128
|
-
|
|
129
|
-
]]>
|
|
130
|
-
<![CDATA[TODO (Cucumber::Pending)
|
|
131
|
-
features/pending.feature:4:in `Given a pending step']]>
|
|
132
|
-
</failure>
|
|
133
|
-
<system-out/>
|
|
134
|
-
<system-err/>
|
|
135
|
-
</testcase>
|
|
136
|
-
<testcase classname="Pending step" name="Undefined" time="0.000160">
|
|
137
|
-
<failure message="undefined Undefined" type="undefined">
|
|
138
|
-
<![CDATA[Scenario: Undefined
|
|
139
|
-
|
|
140
|
-
]]>
|
|
141
|
-
<![CDATA[Undefined step: "an undefined step" (Cucumber::Undefined)
|
|
142
|
-
features/pending.feature:7:in `Given an undefined step']]>
|
|
143
|
-
</failure>
|
|
144
|
-
<system-out/>
|
|
145
|
-
<system-err/>
|
|
146
|
-
</testcase>
|
|
147
|
-
<system-out>
|
|
148
|
-
<![CDATA[]]>
|
|
149
|
-
</system-out>
|
|
150
|
-
<system-err>
|
|
151
|
-
<![CDATA[]]>
|
|
152
|
-
</system-err>
|
|
153
|
-
</testsuite>
|
|
154
|
-
|
|
155
|
-
"""
|
|
156
|
-
|
|
157
|
-
Scenario: run all features
|
|
158
|
-
When I run cucumber --format junit --out tmp/ features
|
|
159
|
-
Then it should fail with
|
|
160
|
-
"""
|
|
161
|
-
|
|
162
|
-
"""
|
|
163
|
-
And "fixtures/junit/tmp/TEST-features-one_passing_one_failing.xml" should exist
|
|
164
|
-
And "fixtures/junit/tmp/TEST-features-pending.xml" should exist
|
|
165
|
-
|
|
166
|
-
Scenario: show correct error message if no --out is passed
|
|
167
|
-
When I run cucumber --format junit features
|
|
168
|
-
Then STDERR should not match
|
|
169
|
-
"""
|
|
170
|
-
can't convert .* into String \(TypeError\)
|
|
171
|
-
"""
|
|
172
|
-
And STDERR should match
|
|
173
|
-
"""
|
|
174
|
-
You \*must\* specify \-\-out DIR for the junit formatter
|
|
175
|
-
"""
|
|
176
|
-
|
|
177
|
-
Scenario: one feature, one scenario outline, two examples: one passing, one failing
|
|
178
|
-
When I run cucumber --format junit --out tmp/ features/scenario_outline.feature
|
|
179
|
-
Then it should fail with
|
|
180
|
-
"""
|
|
181
|
-
|
|
182
|
-
"""
|
|
183
|
-
And "fixtures/junit/tmp/TEST-features-scenario_outline.xml" with junit duration "0.005" should contain
|
|
184
|
-
"""
|
|
185
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
186
|
-
<testsuite errors="0" failures="1" name="Scenario outlines" skipped="0" tests="2" time="0.005">
|
|
187
|
-
<testcase classname="Scenario outlines" name="Using scenario outlines (outline example : | passing |)" time="0.005">
|
|
188
|
-
<system-out/>
|
|
189
|
-
<system-err/>
|
|
190
|
-
</testcase>
|
|
191
|
-
<testcase classname="Scenario outlines" name="Using scenario outlines (outline example : | failing |)" time="0.005">
|
|
192
|
-
<failure message="failed Using scenario outlines (outline example : | failing |)" type="failed">
|
|
193
|
-
<![CDATA[Scenario Outline: Using scenario outlines
|
|
194
|
-
|
|
195
|
-
Example row: | failing |
|
|
196
|
-
|
|
197
|
-
Message:
|
|
198
|
-
]]>
|
|
199
|
-
<![CDATA[ (RuntimeError)
|
|
200
|
-
features/scenario_outline.feature:4:in `Given a <type> scenario']]>
|
|
201
|
-
</failure>
|
|
202
|
-
<system-out/>
|
|
203
|
-
<system-err/>
|
|
204
|
-
</testcase>
|
|
205
|
-
<system-out>
|
|
206
|
-
<![CDATA[]]>
|
|
207
|
-
</system-out>
|
|
208
|
-
<system-err>
|
|
209
|
-
<![CDATA[]]>
|
|
210
|
-
</system-err>
|
|
211
|
-
</testsuite>
|
|
212
|
-
|
|
213
|
-
"""
|
|
214
|
-
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
Feature: Language from header
|
|
2
|
-
In order to simplify command line and
|
|
3
|
-
settings in IDEs, Cucumber should pick
|
|
4
|
-
up parser language from a header.
|
|
5
|
-
|
|
6
|
-
Scenario: LOLCAT
|
|
7
|
-
Given a standard Cucumber project directory structure
|
|
8
|
-
And a file named "features/lolcat.feature" with:
|
|
9
|
-
"""
|
|
10
|
-
# language: en-lol
|
|
11
|
-
OH HAI: STUFFING
|
|
12
|
-
B4: HUNGRY
|
|
13
|
-
MISHUN: CUKES
|
|
14
|
-
DEN KTHXBAI
|
|
15
|
-
"""
|
|
16
|
-
When I run cucumber -i features/lolcat.feature
|
|
17
|
-
Then it should pass with
|
|
18
|
-
"""
|
|
19
|
-
# language: en-lol
|
|
20
|
-
OH HAI: STUFFING
|
|
21
|
-
|
|
22
|
-
B4: HUNGRY # features/lolcat.feature:3
|
|
23
|
-
|
|
24
|
-
MISHUN: CUKES # features/lolcat.feature:4
|
|
25
|
-
DEN KTHXBAI # features/lolcat.feature:5
|
|
26
|
-
|
|
27
|
-
1 scenario (1 undefined)
|
|
28
|
-
1 step (1 undefined)
|
|
29
|
-
|
|
30
|
-
"""
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
Feature: Listener Debugger
|
|
2
|
-
In order to easily visualise the listener API
|
|
3
|
-
As a developer
|
|
4
|
-
I want a formatter that prints the calls to the listener as a feature is run
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given a standard Cucumber project directory structure
|
|
8
|
-
|
|
9
|
-
Scenario: title
|
|
10
|
-
Given a file named "features/sample.feature" with:
|
|
11
|
-
"""
|
|
12
|
-
Feature: Sample
|
|
13
|
-
|
|
14
|
-
Scenario: Sample
|
|
15
|
-
Given Sample
|
|
16
|
-
|
|
17
|
-
"""
|
|
18
|
-
When I run cucumber -f debug features/sample.feature
|
|
19
|
-
Then STDERR should be empty
|
|
20
|
-
Then it should pass with
|
|
21
|
-
"""
|
|
22
|
-
before_features
|
|
23
|
-
before_feature
|
|
24
|
-
before_tags
|
|
25
|
-
after_tags
|
|
26
|
-
feature_name
|
|
27
|
-
before_feature_element
|
|
28
|
-
before_tags
|
|
29
|
-
after_tags
|
|
30
|
-
scenario_name
|
|
31
|
-
before_steps
|
|
32
|
-
before_step
|
|
33
|
-
before_step_result
|
|
34
|
-
step_name
|
|
35
|
-
after_step_result
|
|
36
|
-
after_step
|
|
37
|
-
after_steps
|
|
38
|
-
after_feature_element
|
|
39
|
-
after_feature
|
|
40
|
-
after_features
|
|
41
|
-
|
|
42
|
-
"""
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
Feature: Multiline description names
|
|
2
|
-
In order to accurately document feature elements
|
|
3
|
-
As a cucumberist
|
|
4
|
-
I want to have multiline names
|
|
5
|
-
|
|
6
|
-
Scenario: multiline scenario
|
|
7
|
-
When I run cucumber features/multiline_name.feature --no-snippets
|
|
8
|
-
Then STDERR should be empty
|
|
9
|
-
Then it should pass with
|
|
10
|
-
"""
|
|
11
|
-
Feature: multiline
|
|
12
|
-
|
|
13
|
-
Background: I'm a multiline name # features/multiline_name.feature:3
|
|
14
|
-
which goes on and on and on for three lines
|
|
15
|
-
yawn
|
|
16
|
-
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
17
|
-
|
|
18
|
-
Scenario: I'm a multiline name # features/multiline_name.feature:8
|
|
19
|
-
which goes on and on and on for three lines
|
|
20
|
-
yawn
|
|
21
|
-
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
22
|
-
|
|
23
|
-
Scenario Outline: I'm a multiline name # features/multiline_name.feature:13
|
|
24
|
-
which goes on and on and on for three lines
|
|
25
|
-
yawn
|
|
26
|
-
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
27
|
-
|
|
28
|
-
Examples:
|
|
29
|
-
| state |
|
|
30
|
-
| passing |
|
|
31
|
-
|
|
32
|
-
Scenario Outline: name # features/multiline_name.feature:21
|
|
33
|
-
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
34
|
-
|
|
35
|
-
Examples: I'm a multiline name
|
|
36
|
-
which goes on and on and on for three lines
|
|
37
|
-
yawn
|
|
38
|
-
| state |
|
|
39
|
-
| passing |
|
|
40
|
-
|
|
41
|
-
3 scenarios (3 passed)
|
|
42
|
-
6 steps (6 passed)
|
|
43
|
-
|
|
44
|
-
"""
|