cucumber 3.0.0.pre.1 → 3.0.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.cucumberproignore +6 -0
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +1075 -0
- data/.travis.yml +42 -8
- data/CONTRIBUTING.md +8 -1
- data/Gemfile +16 -10
- data/History.md +96 -36
- data/README.md +12 -3
- data/Rakefile +12 -2
- data/appveyor.yml +26 -0
- data/cucumber.gemspec +15 -10
- data/cucumber.yml +9 -10
- data/examples/i18n/Rakefile +1 -1
- data/examples/i18n/ar/features/step_definitions/calculator_steps.rb +2 -2
- data/examples/i18n/ar/lib/calculator.rb +2 -2
- data/examples/i18n/bg/features/step_definitions/calculator_steps.rb +6 -6
- data/examples/i18n/ca/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/ca/lib/calculadora.rb +2 -2
- data/examples/i18n/cs/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/cs/lib/calculator.rb +3 -3
- data/examples/i18n/da/features/step_definitions/lommeregner_steps.rb +4 -4
- data/examples/i18n/da/lib/lommeregner.rb +2 -2
- data/examples/i18n/de/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/de/lib/calculator.rb +2 -2
- data/examples/i18n/el/features/step_definitions/calculator_steps.rb +5 -5
- data/examples/i18n/el/lib/calculator.rb +2 -2
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +4 -4
- data/examples/i18n/en-lol/lib/basket.rb +2 -2
- data/examples/i18n/en-lol/lib/belly.rb +2 -2
- data/examples/i18n/en/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/en/lib/calculator.rb +2 -2
- data/examples/i18n/eo/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/eo/lib/calculator.rb +2 -2
- data/examples/i18n/es/features/step_definitions/calculador_steps.rb +5 -5
- data/examples/i18n/es/lib/calculador.rb +2 -2
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +4 -4
- data/examples/i18n/et/lib/kalkulaator.rb +3 -3
- data/examples/i18n/fi/features/step_definitions/laskin_steps.rb +3 -3
- data/examples/i18n/fi/lib/laskin.rb +1 -1
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +8 -8
- data/examples/i18n/fr/features/support/env.rb +1 -1
- data/examples/i18n/fr/lib/calculatrice.rb +2 -2
- data/examples/i18n/he/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/he/lib/calculator.rb +1 -1
- data/examples/i18n/hi/features/step_definitions/calculator_steps.rb +3 -3
- data/examples/i18n/hi/lib/calculator.rb +1 -1
- data/examples/i18n/ht/features/step_definitions/kalkilatris_steps.rb +4 -4
- data/examples/i18n/ht/lib/kalkilatris.rb +2 -2
- data/examples/i18n/hu/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/hu/lib/calculator.rb +1 -1
- data/examples/i18n/id/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/id/lib/calculator.rb +2 -2
- data/examples/i18n/it/features/step_definitions/calcolatrice_steps.rb +4 -4
- data/examples/i18n/it/lib/calcolatrice.rb +3 -3
- data/examples/i18n/ja/features/step_definitions/calculator_steps.rb +3 -3
- data/examples/i18n/ja/features/support/env.rb +1 -1
- data/examples/i18n/ja/lib/calculator.rb +2 -2
- data/examples/i18n/ko/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/ko/lib/calculator.rb +2 -2
- data/examples/i18n/lt/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/lt/lib/calculator.rb +2 -2
- data/examples/i18n/lv/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/lv/lib/calculator.rb +2 -2
- data/examples/i18n/no/features/step_definitions/kalkulator_steps.rb +3 -3
- data/examples/i18n/no/features/support/env.rb +1 -1
- data/examples/i18n/no/lib/kalkulator.rb +2 -2
- data/examples/i18n/pl/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/pl/lib/calculator.rb +2 -2
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +3 -3
- data/examples/i18n/pt/features/support/env.rb +1 -1
- data/examples/i18n/pt/lib/calculadora.rb +1 -1
- data/examples/i18n/ro/features/step_definitions/calculator_steps.rb +5 -5
- data/examples/i18n/ro/lib/calculator.rb +1 -1
- data/examples/i18n/ru/features/step_definitions/calculator_steps.rb +5 -5
- data/examples/i18n/sk/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/sk/lib/calculator.rb +2 -2
- data/examples/i18n/sr-Cyrl/features/step_definitions/calculator_steps.rb +3 -3
- data/examples/i18n/sr-Cyrl/features/support/env.rb +1 -1
- data/examples/i18n/sr-Cyrl/lib/calculator.rb +2 -2
- data/examples/i18n/sr-Latn/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/sr-Latn/lib/calculator.rb +2 -2
- data/examples/i18n/sv/features/step_definitions/kalkulator_steps.rb +3 -3
- data/examples/i18n/sv/lib/kalkulator.rb +2 -2
- data/examples/i18n/tr/features/step_definitions/hesap_makinesi_adimlari.rb +4 -4
- data/examples/i18n/tr/lib/hesap_makinesi.rb +2 -2
- data/examples/i18n/uk/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/uz/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/zh-CN/features/step_definitions/calculator_steps.rb +5 -5
- data/examples/i18n/zh-CN/lib/calculator.rb +2 -2
- data/examples/i18n/zh-TW/features/step_definitions/calculator_steps.rb +4 -4
- data/examples/i18n/zh-TW/lib/calculator.rb +2 -2
- data/examples/rspec_doubles/features/step_definitions/calvin_steps.rb +3 -3
- data/examples/sinatra/features/step_definitions/add_steps.rb +4 -4
- data/examples/tcl/features/step_definitions/fib_steps.rb +2 -2
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +4 -4
- data/examples/watir/features/step_definitions/search_steps.rb +3 -3
- data/examples/watir/features/support/screenshots.rb +5 -5
- data/features/docs/api/list_step_defs_as_json.feature +21 -7
- data/features/docs/api/listen_for_events.feature +1 -1
- data/features/docs/api/run_cli_main_with_existing_runtime.feature +1 -0
- data/features/docs/cli/dry_run.feature +3 -0
- data/features/docs/cli/execute_with_tag_filter.feature +4 -4
- data/features/docs/cli/fail_fast.feature +2 -0
- data/features/docs/{gherkin/language_help.feature → cli/i18n.feature} +6 -6
- data/features/docs/cli/randomize.feature +2 -2
- data/features/docs/cli/retry_failing_tests.feature +28 -3
- data/features/docs/cli/run_scenarios_matching_name.feature +1 -0
- data/features/docs/cli/specifying_multiple_formatters.feature +3 -0
- data/features/docs/cli/strict_mode.feature +6 -0
- data/features/docs/defining_steps/nested_steps.feature +5 -1
- data/features/docs/defining_steps/nested_steps_i18n.feature +1 -0
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +2 -0
- data/features/docs/defining_steps/printing_messages.feature +1 -1
- data/features/docs/defining_steps/skip_scenario.feature +1 -0
- data/features/docs/defining_steps/snippets.feature +18 -18
- data/features/docs/events/gherkin_source_read_event.feature +43 -0
- data/features/docs/events/step_activated_event.feature +36 -0
- data/features/docs/events/step_definition_registered_event.feature +29 -0
- data/features/docs/events/test_case_finished_event.feature +35 -0
- data/features/docs/events/test_case_starting_event.feature +54 -0
- data/features/docs/events/test_run_finished_event.feature +40 -0
- data/features/docs/events/test_run_starting_event.feature +41 -0
- data/features/docs/events/test_step_finished_event.feature +47 -0
- data/features/docs/events/test_step_starting_event.feature +43 -0
- data/features/docs/exception_in_after_hook.feature +3 -2
- data/features/docs/exception_in_after_step_hook.feature +2 -0
- data/features/docs/exception_in_around_hook.feature +2 -0
- data/features/docs/exception_in_before_hook.feature +3 -1
- data/features/docs/extending_cucumber/custom_formatter.feature +21 -1
- data/features/docs/formatters/json_formatter.feature +4 -4
- data/features/docs/formatters/junit_formatter.feature +7 -6
- data/features/docs/formatters/pretty_formatter.feature +1 -0
- data/features/docs/formatters/progress_formatter.feature +1 -0
- data/features/docs/formatters/rerun_formatter.feature +2 -0
- data/features/docs/formatters/summary_formatter.feature +1 -0
- data/features/docs/formatters/usage_formatter.feature +3 -0
- data/features/docs/getting_started.feature +2 -1
- data/features/docs/gherkin/background.feature +5 -5
- data/features/docs/gherkin/doc_strings.feature +2 -0
- data/features/docs/gherkin/expand_option_for_outlines.feature +1 -0
- data/features/docs/gherkin/outlines.feature +4 -0
- data/features/docs/gherkin/unicode_table.feature +1 -0
- data/features/docs/gherkin/using_descriptions.feature +1 -0
- data/features/docs/gherkin/using_star_notation.feature +1 -1
- data/features/docs/post_configuration_hook.feature +1 -1
- data/features/docs/rake_task.feature +5 -0
- data/features/docs/raketask.feature +3 -1
- data/features/docs/work_in_progress.feature +5 -2
- data/features/docs/writing_support_code/after_step_hooks.feature +3 -1
- data/features/docs/writing_support_code/around_hooks.feature +6 -0
- data/features/docs/writing_support_code/before_hook.feature +1 -0
- data/features/docs/writing_support_code/hook_order.feature +3 -1
- data/features/docs/writing_support_code/parameter_types.feature +75 -0
- data/features/docs/writing_support_code/tagged_hooks.feature +1 -1
- data/features/lib/step_definitions/aruba_steps.rb +4 -10
- data/features/lib/step_definitions/cli_steps.rb +2 -2
- data/features/lib/step_definitions/cucumber_steps.rb +8 -12
- data/features/lib/step_definitions/iso-8859-1_steps.rb +2 -2
- data/features/lib/step_definitions/json_steps.rb +1 -1
- data/features/lib/step_definitions/junit_steps.rb +1 -1
- data/features/lib/step_definitions/language_steps.rb +2 -2
- data/features/lib/step_definitions/profile_steps.rb +6 -6
- data/features/lib/step_definitions/retry_steps.rb +3 -3
- data/features/lib/step_definitions/ruby_steps.rb +1 -1
- data/features/lib/support/env.rb +1 -1
- data/features/lib/support/fake_wire_server.rb +7 -2
- data/features/lib/support/feature_factory.rb +1 -1
- data/features/lib/support/normalise_output.rb +13 -12
- data/features/lib/support/parameter_types.rb +8 -0
- data/gem_tasks/contributors.rake +9 -6
- data/gem_tasks/environment.rake +1 -5
- data/gem_tasks/examples.rake +1 -1
- data/gem_tasks/fix_cr_lf.rake +1 -1
- data/gem_tasks/flog.rake +2 -2
- data/gem_tasks/rspec.rake +1 -1
- data/lib/autotest/cucumber_mixin.rb +15 -15
- data/lib/autotest/discover.rb +2 -2
- data/lib/cucumber/cli/configuration.rb +7 -13
- data/lib/cucumber/cli/main.rb +6 -6
- data/lib/cucumber/cli/options.rb +163 -126
- data/lib/cucumber/cli/profile_loader.rb +24 -20
- data/lib/cucumber/configuration.rb +12 -17
- data/lib/cucumber/constantize.rb +1 -1
- data/lib/cucumber/core_ext/string.rb +1 -1
- data/lib/cucumber/deprecate.rb +1 -1
- data/lib/cucumber/events.rb +11 -1
- data/lib/cucumber/events/gherkin_source_read.rb +17 -0
- data/lib/cucumber/events/{step_match.rb → step_activated.rb} +2 -2
- data/lib/cucumber/events/step_definition_registered.rb +1 -1
- data/lib/cucumber/events/test_case_finished.rb +18 -0
- data/lib/cucumber/events/test_case_starting.rb +15 -0
- data/lib/cucumber/events/test_run_starting.rb +16 -0
- data/lib/cucumber/events/test_step_finished.rb +20 -0
- data/lib/cucumber/events/test_step_starting.rb +17 -0
- data/lib/cucumber/filters.rb +1 -0
- data/lib/cucumber/filters/activate_steps.rb +1 -1
- data/lib/cucumber/filters/broadcast_test_run_starting_event.rb +27 -0
- data/lib/cucumber/filters/retry.rb +1 -1
- data/lib/cucumber/filters/tag_limits.rb +3 -3
- data/lib/cucumber/filters/tag_limits/verifier.rb +1 -1
- data/lib/cucumber/formatter/ansicolor.rb +8 -11
- data/lib/cucumber/formatter/backtrace_filter.rb +19 -7
- data/lib/cucumber/formatter/console.rb +16 -19
- data/lib/cucumber/formatter/console_counts.rb +8 -21
- data/lib/cucumber/formatter/console_issues.rb +30 -9
- data/lib/cucumber/formatter/duration.rb +1 -1
- data/lib/cucumber/formatter/fail_fast.rb +1 -1
- data/lib/cucumber/formatter/html.rb +168 -242
- data/lib/cucumber/formatter/html_builder.rb +110 -0
- data/lib/cucumber/formatter/inline-js.js +30 -0
- data/lib/cucumber/formatter/interceptor.rb +2 -2
- data/lib/cucumber/formatter/json.rb +12 -12
- data/lib/cucumber/formatter/junit.rb +11 -11
- data/lib/cucumber/formatter/legacy_api/adapter.rb +27 -27
- data/lib/cucumber/formatter/legacy_api/ast.rb +16 -20
- data/lib/cucumber/formatter/legacy_api/results.rb +6 -8
- data/lib/cucumber/formatter/pretty.rb +17 -17
- data/lib/cucumber/formatter/progress.rb +11 -12
- data/lib/cucumber/formatter/rerun.rb +1 -1
- data/lib/cucumber/formatter/steps.rb +1 -1
- data/lib/cucumber/formatter/unicode.rb +1 -1
- data/lib/cucumber/formatter/usage.rb +12 -12
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +1 -1
- data/lib/cucumber/gherkin/formatter/escaping.rb +1 -1
- data/lib/cucumber/{rb_support/rb_dsl.rb → glue/dsl.rb} +44 -17
- data/lib/cucumber/glue/hook.rb +43 -0
- data/lib/cucumber/glue/invoke_in_world.rb +70 -0
- data/lib/cucumber/glue/proto_world.rb +225 -0
- data/lib/cucumber/{rb_support/rb_language.rb → glue/registry_and_more.rb} +45 -86
- data/lib/cucumber/{rb_support → glue}/snippet.rb +62 -25
- data/lib/cucumber/glue/step_definition.rb +143 -0
- data/lib/cucumber/glue/world_factory.rb +23 -0
- data/lib/cucumber/hooks.rb +4 -4
- data/lib/cucumber/multiline_argument.rb +2 -2
- data/lib/cucumber/multiline_argument/data_table.rb +40 -178
- data/lib/cucumber/multiline_argument/data_table/diff_matrices.rb +158 -0
- data/lib/cucumber/platform.rb +3 -5
- data/lib/cucumber/rake/task.rb +11 -11
- data/lib/cucumber/rspec/disable_option_parser.rb +1 -1
- data/lib/cucumber/rspec/doubles.rb +1 -1
- data/lib/cucumber/running_test_case.rb +2 -2
- data/lib/cucumber/runtime.rb +46 -34
- data/lib/cucumber/runtime/after_hooks.rb +1 -1
- data/lib/cucumber/runtime/for_programming_languages.rb +1 -36
- data/lib/cucumber/runtime/support_code.rb +19 -15
- data/lib/cucumber/runtime/user_interface.rb +4 -11
- data/lib/cucumber/step_argument.rb +0 -2
- data/lib/cucumber/step_definition_light.rb +1 -0
- data/lib/cucumber/step_match.rb +16 -15
- data/lib/cucumber/step_match_search.rb +2 -3
- data/lib/cucumber/term/ansicolor.rb +1 -1
- data/lib/cucumber/version +1 -1
- data/lib/simplecov_setup.rb +1 -1
- data/scripts/invite-collaborator +40 -0
- data/scripts/update-history +83 -0
- data/spec/cucumber/cli/configuration_spec.rb +95 -97
- data/spec/cucumber/cli/main_spec.rb +7 -7
- data/spec/cucumber/cli/options_spec.rb +112 -78
- data/spec/cucumber/cli/profile_loader_spec.rb +24 -5
- data/spec/cucumber/cli/rerun_spec.rb +20 -20
- data/spec/cucumber/configuration_spec.rb +47 -47
- data/spec/cucumber/constantize_spec.rb +2 -2
- data/spec/cucumber/events_spec.rb +9 -0
- data/spec/cucumber/file_specs_spec.rb +25 -25
- data/spec/cucumber/filters/activate_steps_spec.rb +16 -16
- data/spec/cucumber/filters/gated_receiver_spec.rb +6 -6
- data/spec/cucumber/filters/retry_spec.rb +22 -9
- data/spec/cucumber/filters/tag_limits/test_case_index_spec.rb +11 -11
- data/spec/cucumber/filters/tag_limits/verifier_spec.rb +14 -14
- data/spec/cucumber/filters/tag_limits_spec.rb +8 -8
- data/spec/cucumber/formatter/ansicolor_spec.rb +9 -9
- data/spec/cucumber/formatter/backtrace_filter_spec.rb +32 -0
- data/spec/cucumber/formatter/console_counts_spec.rb +1 -1
- data/spec/cucumber/formatter/duration_spec.rb +3 -3
- data/spec/cucumber/formatter/fail_fast_spec.rb +21 -21
- data/spec/cucumber/formatter/html_spec.rb +58 -58
- data/spec/cucumber/formatter/json_spec.rb +44 -46
- data/spec/cucumber/formatter/junit_spec.rb +43 -45
- data/spec/cucumber/formatter/legacy_api/adapter_spec.rb +43 -43
- data/spec/cucumber/formatter/pretty_spec.rb +107 -107
- data/spec/cucumber/formatter/progress_spec.rb +20 -20
- data/spec/cucumber/formatter/rerun_spec.rb +1 -1
- data/spec/cucumber/formatter/spec_helper.rb +6 -5
- data/spec/cucumber/{rb_support/rb_world_spec.rb → glue/proto_world_spec.rb} +20 -5
- data/spec/cucumber/glue/registry_and_more_spec.rb +213 -0
- data/spec/cucumber/{rb_support → glue}/snippet_spec.rb +61 -25
- data/spec/cucumber/glue/step_definition_spec.rb +207 -0
- data/spec/cucumber/hooks_spec.rb +3 -3
- data/spec/cucumber/multiline_argument/data_table_spec.rb +177 -133
- data/spec/cucumber/project_initializer_spec.rb +10 -10
- data/spec/cucumber/rake/forked_spec.rb +10 -10
- data/spec/cucumber/rake/task_spec.rb +20 -20
- data/spec/cucumber/running_test_case_spec.rb +35 -35
- data/spec/cucumber/runtime/for_programming_languages_spec.rb +1 -30
- data/spec/cucumber/runtime_spec.rb +2 -2
- data/spec/cucumber/step_argument_spec.rb +5 -5
- data/spec/cucumber/step_match_search_spec.rb +31 -41
- data/spec/cucumber/step_match_spec.rb +33 -33
- data/spec/cucumber/world/pending_spec.rb +10 -10
- metadata +117 -47
- data/features/docs/formatters/debug_formatter.feature +0 -47
- data/features/docs/writing_support_code/transforms.feature +0 -98
- data/features/lib/step_definitions/wire_steps.rb +0 -59
- data/gem_tasks/cucumber.rake +0 -26
- data/lib/cucumber/core_ext/instance_exec.rb +0 -71
- data/lib/cucumber/formatter/debug.rb +0 -36
- data/lib/cucumber/rb_support/rb_hook.rb +0 -20
- data/lib/cucumber/rb_support/rb_step_definition.rb +0 -132
- data/lib/cucumber/rb_support/rb_transform.rb +0 -60
- data/lib/cucumber/rb_support/rb_world.rb +0 -171
- data/spec/cucumber/core_ext/instance_exec_spec.rb +0 -5
- data/spec/cucumber/formatter/debug_spec.rb +0 -65
- data/spec/cucumber/rb_support/rb_language_spec.rb +0 -321
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +0 -200
- data/spec/cucumber/rb_support/rb_transform_spec.rb +0 -47
@@ -20,7 +20,7 @@ module Cucumber
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
context
|
23
|
+
context 'With no options' do
|
24
24
|
before(:each) do
|
25
25
|
allow(File).to receive(:directory?) { true }
|
26
26
|
@formatter = TestDoubleJunitFormatter.new(actual_runtime.configuration.with_options(out_stream: ''))
|
@@ -30,7 +30,7 @@ module Cucumber
|
|
30
30
|
$stdout = STDOUT
|
31
31
|
end
|
32
32
|
|
33
|
-
describe
|
33
|
+
describe 'is able to strip control chars from cdata' do
|
34
34
|
before(:each) do
|
35
35
|
run_defined_feature
|
36
36
|
@doc = Nokogiri.XML(@formatter.written_files.values.first)
|
@@ -43,47 +43,45 @@ module Cucumber
|
|
43
43
|
"
|
44
44
|
class Junit
|
45
45
|
def before_step(step)
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
46
|
+
return unless step.name.match('a passing ctrl scenario')
|
47
|
+
Interceptor::Pipe.unwrap! :stdout
|
48
|
+
@fake_io = $stdout = StringIO.new
|
49
|
+
$stdout.sync = true
|
50
|
+
@interceptedout = Interceptor::Pipe.wrap(:stdout)
|
52
51
|
end
|
53
52
|
|
54
53
|
def after_step(step)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
54
|
+
return unless step.name.match('a passing ctrl scenario')
|
55
|
+
@interceptedout.write("boo\b\cx\e\a\f boo ")
|
56
|
+
$stdout = STDOUT
|
57
|
+
@fake_io.close
|
60
58
|
end
|
61
59
|
end
|
62
60
|
|
63
61
|
it { expect(@doc.xpath('//testsuite/testcase/system-out').first.content).to match(/\s+boo boo\s+/) }
|
64
62
|
end
|
65
63
|
|
66
|
-
describe
|
64
|
+
describe 'a feature with no name' do
|
67
65
|
define_feature <<-FEATURE
|
68
66
|
Feature:
|
69
67
|
Scenario: Passing
|
70
68
|
Given a passing scenario
|
71
69
|
FEATURE
|
72
70
|
|
73
|
-
it
|
71
|
+
it 'raises an exception' do
|
74
72
|
expect(-> {
|
75
73
|
run_defined_feature
|
76
74
|
}).to raise_error(Junit::UnNamedFeatureError)
|
77
75
|
end
|
78
76
|
end
|
79
77
|
|
80
|
-
describe
|
78
|
+
describe 'given a single feature' do
|
81
79
|
before(:each) do
|
82
80
|
run_defined_feature
|
83
81
|
@doc = Nokogiri.XML(@formatter.written_files.values.first)
|
84
82
|
end
|
85
83
|
|
86
|
-
describe
|
84
|
+
describe 'with a single scenario' do
|
87
85
|
define_feature <<-FEATURE
|
88
86
|
Feature: One passing scenario, one failing scenario
|
89
87
|
|
@@ -91,7 +89,7 @@ module Cucumber
|
|
91
89
|
Given a passing scenario
|
92
90
|
FEATURE
|
93
91
|
|
94
|
-
it { expect(@doc.to_s).to match
|
92
|
+
it { expect(@doc.to_s).to match(/One passing scenario, one failing scenario/) }
|
95
93
|
|
96
94
|
it 'has not a root system-out node' do
|
97
95
|
expect(@doc.xpath('//testsuite/system-out').size).to eq 0
|
@@ -110,7 +108,7 @@ module Cucumber
|
|
110
108
|
end
|
111
109
|
end
|
112
110
|
|
113
|
-
describe
|
111
|
+
describe 'with a scenario in a subdirectory' do
|
114
112
|
define_feature %{
|
115
113
|
Feature: One passing scenario, one failing scenario
|
116
114
|
|
@@ -123,7 +121,7 @@ module Cucumber
|
|
123
121
|
end
|
124
122
|
end
|
125
123
|
|
126
|
-
describe
|
124
|
+
describe 'with a scenario outline table' do
|
127
125
|
define_steps do
|
128
126
|
Given(/.*/) { }
|
129
127
|
end
|
@@ -146,16 +144,16 @@ module Cucumber
|
|
146
144
|
| Big Mac |
|
147
145
|
FEATURE
|
148
146
|
|
149
|
-
it { expect(@doc.to_s).to match
|
150
|
-
it { expect(@doc.to_s).to match
|
151
|
-
it { expect(@doc.to_s).to match
|
152
|
-
it { expect(@doc.to_s).to match
|
153
|
-
it { expect(@doc.to_s).not_to match
|
154
|
-
it { expect(@doc.to_s).not_to match
|
155
|
-
it { expect(@doc.to_s).not_to match
|
147
|
+
it { expect(@doc.to_s).to match(/Eat things when hungry/) }
|
148
|
+
it { expect(@doc.to_s).to match(/Cucumber/) }
|
149
|
+
it { expect(@doc.to_s).to match(/Whisky/) }
|
150
|
+
it { expect(@doc.to_s).to match(/Big Mac/) }
|
151
|
+
it { expect(@doc.to_s).not_to match(/Things/) }
|
152
|
+
it { expect(@doc.to_s).not_to match(/Good|Evil/) }
|
153
|
+
it { expect(@doc.to_s).not_to match(/type="skipped"/)}
|
156
154
|
end
|
157
155
|
|
158
|
-
describe
|
156
|
+
describe 'scenario with skipped test in junit report' do
|
159
157
|
define_feature <<-FEATURE
|
160
158
|
Feature: junit report with skipped test
|
161
159
|
|
@@ -168,10 +166,10 @@ module Cucumber
|
|
168
166
|
| still undefined |
|
169
167
|
FEATURE
|
170
168
|
|
171
|
-
it { expect(@doc.to_s).to match
|
169
|
+
it { expect(@doc.to_s).to match(/skipped="2"/)}
|
172
170
|
end
|
173
171
|
|
174
|
-
describe
|
172
|
+
describe 'with a regular data table scenario' do
|
175
173
|
define_steps do
|
176
174
|
Given(/the following items on a shortlist/) { |table| }
|
177
175
|
When(/I go.*/) { }
|
@@ -191,13 +189,13 @@ module Cucumber
|
|
191
189
|
|
192
190
|
FEATURE
|
193
191
|
# these type of tables shouldn't crash (or generate test cases)
|
194
|
-
it { expect(@doc.to_s).not_to match
|
195
|
-
it { expect(@doc.to_s).not_to match
|
192
|
+
it { expect(@doc.to_s).not_to match(/milk/) }
|
193
|
+
it { expect(@doc.to_s).not_to match(/cookies/) }
|
196
194
|
end
|
197
195
|
end
|
198
196
|
end
|
199
|
-
|
200
|
-
context
|
197
|
+
|
198
|
+
context 'In --expand mode' do
|
201
199
|
let(:runtime) { Runtime.new({:expand => true}) }
|
202
200
|
before(:each) do
|
203
201
|
allow(File).to receive(:directory?) { true }
|
@@ -208,13 +206,13 @@ module Cucumber
|
|
208
206
|
$stdout = STDOUT
|
209
207
|
end
|
210
208
|
|
211
|
-
describe
|
209
|
+
describe 'given a single feature' do
|
212
210
|
before(:each) do
|
213
211
|
run_defined_feature
|
214
212
|
@doc = Nokogiri.XML(@formatter.written_files.values.first)
|
215
213
|
end
|
216
|
-
|
217
|
-
describe
|
214
|
+
|
215
|
+
describe 'with a scenario outline table' do
|
218
216
|
define_steps do
|
219
217
|
Given(/.*/) { }
|
220
218
|
end
|
@@ -237,16 +235,16 @@ module Cucumber
|
|
237
235
|
| Big Mac |
|
238
236
|
FEATURE
|
239
237
|
|
240
|
-
it { expect(@doc.to_s).to match
|
241
|
-
it { expect(@doc.to_s).to match
|
242
|
-
it { expect(@doc.to_s).to match
|
243
|
-
it { expect(@doc.to_s).to match
|
244
|
-
it { expect(@doc.to_s).not_to match
|
245
|
-
it { expect(@doc.to_s).not_to match
|
246
|
-
it { expect(@doc.to_s).not_to match
|
238
|
+
it { expect(@doc.to_s).to match(/Eat things when hungry/) }
|
239
|
+
it { expect(@doc.to_s).to match(/Cucumber/) }
|
240
|
+
it { expect(@doc.to_s).to match(/Whisky/) }
|
241
|
+
it { expect(@doc.to_s).to match(/Big Mac/) }
|
242
|
+
it { expect(@doc.to_s).not_to match(/Things/) }
|
243
|
+
it { expect(@doc.to_s).not_to match(/Good|Evil/) }
|
244
|
+
it { expect(@doc.to_s).not_to match(/type="skipped"/)}
|
247
245
|
end
|
248
246
|
end
|
249
|
-
|
247
|
+
|
250
248
|
end
|
251
249
|
end
|
252
250
|
end
|
@@ -59,7 +59,7 @@ module Cucumber
|
|
59
59
|
source_location
|
60
60
|
end
|
61
61
|
|
62
|
-
def invoke(
|
62
|
+
def invoke(_pseudo_method, _arguments, &_block)
|
63
63
|
@proc.call
|
64
64
|
end
|
65
65
|
end
|
@@ -106,7 +106,7 @@ module Cucumber
|
|
106
106
|
step 'passing'
|
107
107
|
end
|
108
108
|
end
|
109
|
-
end
|
109
|
+
end
|
110
110
|
]
|
111
111
|
runner = Core::Test::Runner.new(events)
|
112
112
|
compile gherkin_docs, runner, default_filters
|
@@ -147,7 +147,7 @@ module Cucumber
|
|
147
147
|
:after_steps,
|
148
148
|
:after_feature_element,
|
149
149
|
:after_feature,
|
150
|
-
:after_features
|
150
|
+
:after_features
|
151
151
|
]
|
152
152
|
end
|
153
153
|
|
@@ -170,7 +170,7 @@ module Cucumber
|
|
170
170
|
:scenario_name,
|
171
171
|
:after_feature_element,
|
172
172
|
:after_feature,
|
173
|
-
:after_features
|
173
|
+
:after_features
|
174
174
|
]
|
175
175
|
end
|
176
176
|
|
@@ -207,7 +207,7 @@ module Cucumber
|
|
207
207
|
:scenario_name,
|
208
208
|
:after_feature_element,
|
209
209
|
:after_feature,
|
210
|
-
:after_features
|
210
|
+
:after_features
|
211
211
|
]
|
212
212
|
end
|
213
213
|
|
@@ -238,7 +238,7 @@ module Cucumber
|
|
238
238
|
:after_steps,
|
239
239
|
:after_feature_element,
|
240
240
|
:after_feature,
|
241
|
-
:after_features
|
241
|
+
:after_features
|
242
242
|
]
|
243
243
|
end
|
244
244
|
|
@@ -276,7 +276,7 @@ module Cucumber
|
|
276
276
|
:after_steps,
|
277
277
|
:after_feature_element,
|
278
278
|
:after_feature,
|
279
|
-
:after_features
|
279
|
+
:after_features
|
280
280
|
]
|
281
281
|
end
|
282
282
|
|
@@ -322,7 +322,7 @@ module Cucumber
|
|
322
322
|
:after_steps,
|
323
323
|
:after_feature_element,
|
324
324
|
:after_feature,
|
325
|
-
:after_features
|
325
|
+
:after_features
|
326
326
|
]
|
327
327
|
end
|
328
328
|
|
@@ -357,7 +357,7 @@ module Cucumber
|
|
357
357
|
:scenario_name,
|
358
358
|
:after_feature_element,
|
359
359
|
:after_feature,
|
360
|
-
:after_features
|
360
|
+
:after_features
|
361
361
|
]
|
362
362
|
end
|
363
363
|
|
@@ -416,7 +416,7 @@ module Cucumber
|
|
416
416
|
:after_steps,
|
417
417
|
:after_feature_element,
|
418
418
|
:after_feature,
|
419
|
-
:after_features
|
419
|
+
:after_features
|
420
420
|
]
|
421
421
|
end
|
422
422
|
|
@@ -498,7 +498,7 @@ module Cucumber
|
|
498
498
|
:after_examples_array,
|
499
499
|
:after_feature_element,
|
500
500
|
:after_feature,
|
501
|
-
:after_features
|
501
|
+
:after_features
|
502
502
|
]
|
503
503
|
end
|
504
504
|
|
@@ -580,7 +580,7 @@ module Cucumber
|
|
580
580
|
:after_steps,
|
581
581
|
:after_feature_element,
|
582
582
|
:after_feature,
|
583
|
-
:after_features
|
583
|
+
:after_features
|
584
584
|
]
|
585
585
|
end
|
586
586
|
|
@@ -685,7 +685,7 @@ module Cucumber
|
|
685
685
|
:after_examples_array,
|
686
686
|
:after_feature_element,
|
687
687
|
:after_feature,
|
688
|
-
:after_features
|
688
|
+
:after_features
|
689
689
|
]
|
690
690
|
end
|
691
691
|
|
@@ -758,7 +758,7 @@ module Cucumber
|
|
758
758
|
:after_examples_array,
|
759
759
|
:after_feature_element,
|
760
760
|
:after_feature,
|
761
|
-
:after_features
|
761
|
+
:after_features
|
762
762
|
]
|
763
763
|
end
|
764
764
|
|
@@ -846,7 +846,7 @@ module Cucumber
|
|
846
846
|
:after_examples_array,
|
847
847
|
:after_feature_element,
|
848
848
|
:after_feature,
|
849
|
-
:after_features
|
849
|
+
:after_features
|
850
850
|
]
|
851
851
|
end
|
852
852
|
|
@@ -896,7 +896,7 @@ module Cucumber
|
|
896
896
|
:after_steps,
|
897
897
|
:after_feature_element,
|
898
898
|
:after_feature,
|
899
|
-
:after_features
|
899
|
+
:after_features
|
900
900
|
]
|
901
901
|
end
|
902
902
|
|
@@ -940,7 +940,7 @@ module Cucumber
|
|
940
940
|
:after_steps,
|
941
941
|
:after_feature_element,
|
942
942
|
:after_feature,
|
943
|
-
:after_features
|
943
|
+
:after_features
|
944
944
|
]
|
945
945
|
end
|
946
946
|
|
@@ -994,7 +994,7 @@ module Cucumber
|
|
994
994
|
:after_examples_array,
|
995
995
|
:after_feature_element,
|
996
996
|
:after_feature,
|
997
|
-
:after_features
|
997
|
+
:after_features
|
998
998
|
]
|
999
999
|
end
|
1000
1000
|
|
@@ -1063,7 +1063,7 @@ module Cucumber
|
|
1063
1063
|
:after_examples_array,
|
1064
1064
|
:after_feature_element,
|
1065
1065
|
:after_feature,
|
1066
|
-
:after_features
|
1066
|
+
:after_features
|
1067
1067
|
]
|
1068
1068
|
end
|
1069
1069
|
|
@@ -1132,7 +1132,7 @@ module Cucumber
|
|
1132
1132
|
:after_steps,
|
1133
1133
|
:after_feature_element,
|
1134
1134
|
:after_feature,
|
1135
|
-
:after_features
|
1135
|
+
:after_features
|
1136
1136
|
]
|
1137
1137
|
end
|
1138
1138
|
|
@@ -1192,7 +1192,7 @@ module Cucumber
|
|
1192
1192
|
:after_examples_array,
|
1193
1193
|
:after_feature_element,
|
1194
1194
|
:after_feature,
|
1195
|
-
:after_features
|
1195
|
+
:after_features
|
1196
1196
|
]
|
1197
1197
|
end
|
1198
1198
|
|
@@ -1267,7 +1267,7 @@ module Cucumber
|
|
1267
1267
|
:after_examples_array,
|
1268
1268
|
:after_feature_element,
|
1269
1269
|
:after_feature,
|
1270
|
-
:after_features
|
1270
|
+
:after_features
|
1271
1271
|
]
|
1272
1272
|
end
|
1273
1273
|
|
@@ -1359,7 +1359,7 @@ module Cucumber
|
|
1359
1359
|
:after_examples_array,
|
1360
1360
|
:after_feature_element,
|
1361
1361
|
:after_feature,
|
1362
|
-
:after_features
|
1362
|
+
:after_features
|
1363
1363
|
]
|
1364
1364
|
end
|
1365
1365
|
|
@@ -1413,7 +1413,7 @@ module Cucumber
|
|
1413
1413
|
:after_examples_array,
|
1414
1414
|
:after_feature_element,
|
1415
1415
|
:after_feature,
|
1416
|
-
:after_features
|
1416
|
+
:after_features
|
1417
1417
|
]
|
1418
1418
|
end
|
1419
1419
|
|
@@ -1473,7 +1473,7 @@ module Cucumber
|
|
1473
1473
|
:after_steps,
|
1474
1474
|
:after_feature_element,
|
1475
1475
|
:after_feature,
|
1476
|
-
:after_features
|
1476
|
+
:after_features
|
1477
1477
|
]
|
1478
1478
|
end
|
1479
1479
|
|
@@ -1534,7 +1534,7 @@ module Cucumber
|
|
1534
1534
|
:after_examples_array,
|
1535
1535
|
:after_feature_element,
|
1536
1536
|
:after_feature,
|
1537
|
-
:after_features
|
1537
|
+
:after_features
|
1538
1538
|
]
|
1539
1539
|
end
|
1540
1540
|
end
|
@@ -1542,7 +1542,7 @@ module Cucumber
|
|
1542
1542
|
context 'with exception in after step hook' do
|
1543
1543
|
|
1544
1544
|
class FailingAfterStepHook
|
1545
|
-
def find_after_step_hooks(
|
1545
|
+
def find_after_step_hooks(_test_case)
|
1546
1546
|
failing_hook = HookWrapper.new(proc { raise Failure })
|
1547
1547
|
Runtime::StepHooks.new [failing_hook]
|
1548
1548
|
end
|
@@ -1581,7 +1581,7 @@ module Cucumber
|
|
1581
1581
|
:after_steps,
|
1582
1582
|
:after_feature_element,
|
1583
1583
|
:after_feature,
|
1584
|
-
:after_features
|
1584
|
+
:after_features
|
1585
1585
|
])
|
1586
1586
|
end
|
1587
1587
|
end
|
@@ -1628,7 +1628,7 @@ module Cucumber
|
|
1628
1628
|
:after_steps,
|
1629
1629
|
:after_feature_element,
|
1630
1630
|
:after_feature,
|
1631
|
-
:after_features
|
1631
|
+
:after_features
|
1632
1632
|
])
|
1633
1633
|
end
|
1634
1634
|
|
@@ -1679,7 +1679,7 @@ module Cucumber
|
|
1679
1679
|
:after_steps,
|
1680
1680
|
:after_feature_element,
|
1681
1681
|
:after_feature,
|
1682
|
-
:after_features
|
1682
|
+
:after_features
|
1683
1683
|
])
|
1684
1684
|
end
|
1685
1685
|
|
@@ -1741,7 +1741,7 @@ module Cucumber
|
|
1741
1741
|
:after_examples_array,
|
1742
1742
|
:after_feature_element,
|
1743
1743
|
:after_feature,
|
1744
|
-
:after_features
|
1744
|
+
:after_features
|
1745
1745
|
])
|
1746
1746
|
end
|
1747
1747
|
end
|
@@ -1791,7 +1791,7 @@ module Cucumber
|
|
1791
1791
|
:after_steps,
|
1792
1792
|
:after_feature_element,
|
1793
1793
|
:after_feature,
|
1794
|
-
:after_features
|
1794
|
+
:after_features
|
1795
1795
|
])
|
1796
1796
|
end
|
1797
1797
|
end
|
@@ -1839,7 +1839,7 @@ module Cucumber
|
|
1839
1839
|
:exception,
|
1840
1840
|
:after_feature_element,
|
1841
1841
|
:after_feature,
|
1842
|
-
:after_features
|
1842
|
+
:after_features
|
1843
1843
|
])
|
1844
1844
|
end
|
1845
1845
|
|
@@ -1900,7 +1900,7 @@ module Cucumber
|
|
1900
1900
|
:after_examples_array,
|
1901
1901
|
:after_feature_element,
|
1902
1902
|
:after_feature,
|
1903
|
-
:after_features
|
1903
|
+
:after_features
|
1904
1904
|
])
|
1905
1905
|
end
|
1906
1906
|
end
|
@@ -1948,7 +1948,7 @@ module Cucumber
|
|
1948
1948
|
:exception,
|
1949
1949
|
:after_feature_element,
|
1950
1950
|
:after_feature,
|
1951
|
-
:after_features
|
1951
|
+
:after_features
|
1952
1952
|
])
|
1953
1953
|
end
|
1954
1954
|
end
|
@@ -1980,7 +1980,7 @@ module Cucumber
|
|
1980
1980
|
:exception,
|
1981
1981
|
:after_feature_element,
|
1982
1982
|
:after_feature,
|
1983
|
-
:after_features
|
1983
|
+
:after_features
|
1984
1984
|
])
|
1985
1985
|
end
|
1986
1986
|
end
|
@@ -2020,7 +2020,7 @@ module Cucumber
|
|
2020
2020
|
:exception,
|
2021
2021
|
:after_feature_element,
|
2022
2022
|
:after_feature,
|
2023
|
-
:after_features
|
2023
|
+
:after_features
|
2024
2024
|
])
|
2025
2025
|
end
|
2026
2026
|
end
|
@@ -2068,7 +2068,7 @@ module Cucumber
|
|
2068
2068
|
:after_steps,
|
2069
2069
|
:after_feature_element,
|
2070
2070
|
:after_feature,
|
2071
|
-
:after_features
|
2071
|
+
:after_features
|
2072
2072
|
])
|
2073
2073
|
end
|
2074
2074
|
end
|
@@ -2076,7 +2076,7 @@ module Cucumber
|
|
2076
2076
|
|
2077
2077
|
describe 'before_step_result message' do
|
2078
2078
|
context 'when the step matches' do
|
2079
|
-
it
|
2079
|
+
it 'sends the step match to the formatter' do
|
2080
2080
|
expect(formatter).to receive(:before_step_result) do |_, step_match, *|
|
2081
2081
|
expect(step_match).to be_a SimpleStepMatch
|
2082
2082
|
end
|
@@ -2091,7 +2091,7 @@ module Cucumber
|
|
2091
2091
|
end
|
2092
2092
|
|
2093
2093
|
context "when the step doesn't match" do
|
2094
|
-
it
|
2094
|
+
it 'sends a null object to the formatter' do
|
2095
2095
|
end
|
2096
2096
|
end
|
2097
2097
|
end
|
@@ -2109,7 +2109,7 @@ module Cucumber
|
|
2109
2109
|
end
|
2110
2110
|
end
|
2111
2111
|
|
2112
|
-
context
|
2112
|
+
context 'after_feature_element callback' do
|
2113
2113
|
it 'passes an object reflecting the status of the scenario' do
|
2114
2114
|
expect( formatter ).to receive(:after_feature_element).once do |scenario|
|
2115
2115
|
expect( scenario ).to be_failed
|
@@ -2159,11 +2159,11 @@ module Cucumber
|
|
2159
2159
|
]
|
2160
2160
|
end
|
2161
2161
|
|
2162
|
-
def method_missing(message, *
|
2162
|
+
def method_missing(message, *_args)
|
2163
2163
|
@messages << message
|
2164
2164
|
end
|
2165
2165
|
|
2166
|
-
def respond_to_missing?(
|
2166
|
+
def respond_to_missing?(_name, _include_private = false)
|
2167
2167
|
true
|
2168
2168
|
end
|
2169
2169
|
end
|