cucumber 2.0.2 → 2.1.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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -6
  3. data/CONTRIBUTING.md +3 -1
  4. data/Gemfile +1 -1
  5. data/History.md +17 -0
  6. data/README.md +3 -3
  7. data/bin/cucumber +1 -2
  8. data/cucumber.gemspec +2 -2
  9. data/examples/i18n/ht/features/adisyon.feature +7 -7
  10. data/features/docs/api/listen_for_events.feature +58 -0
  11. data/features/docs/cli/fail_fast.feature +46 -0
  12. data/features/docs/defining_steps/nested_steps_with_second_arg.feature +3 -22
  13. data/features/docs/extending_cucumber/custom_formatter.feature +40 -4
  14. data/features/docs/gherkin/doc_strings.feature +5 -5
  15. data/features/docs/gherkin/language_help.feature +15 -15
  16. data/features/docs/gherkin/using_descriptions.feature +0 -5
  17. data/lib/cucumber/cli/configuration.rb +10 -92
  18. data/lib/cucumber/cli/main.rb +1 -7
  19. data/lib/cucumber/cli/options.rb +47 -12
  20. data/lib/cucumber/configuration.rb +195 -7
  21. data/lib/cucumber/events.rb +20 -0
  22. data/lib/cucumber/events/after_test_case.rb +25 -0
  23. data/lib/cucumber/events/after_test_step.rb +30 -0
  24. data/lib/cucumber/events/before_test_case.rb +18 -0
  25. data/lib/cucumber/events/before_test_step.rb +23 -0
  26. data/lib/cucumber/events/bus.rb +86 -0
  27. data/lib/cucumber/events/step_match.rb +23 -0
  28. data/lib/cucumber/filters/prepare_world.rb +2 -2
  29. data/lib/cucumber/formatter/backtrace_filter.rb +9 -8
  30. data/lib/cucumber/formatter/console.rb +1 -1
  31. data/lib/cucumber/formatter/event_bus_report.rb +37 -0
  32. data/lib/cucumber/formatter/fail_fast.rb +18 -0
  33. data/lib/cucumber/formatter/html.rb +1 -1
  34. data/lib/cucumber/formatter/io.rb +3 -1
  35. data/lib/cucumber/formatter/json.rb +19 -1
  36. data/lib/cucumber/formatter/legacy_api/adapter.rb +5 -13
  37. data/lib/cucumber/formatter/legacy_api/ast.rb +2 -2
  38. data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +3 -1
  39. data/lib/cucumber/formatter/pretty.rb +5 -7
  40. data/lib/cucumber/formatter/progress.rb +1 -1
  41. data/lib/cucumber/formatter/rerun.rb +1 -1
  42. data/lib/cucumber/formatter/steps.rb +1 -1
  43. data/lib/cucumber/formatter/usage.rb +12 -8
  44. data/lib/cucumber/gherkin/data_table_parser.rb +23 -0
  45. data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +99 -0
  46. data/lib/cucumber/gherkin/formatter/argument.rb +17 -0
  47. data/lib/cucumber/gherkin/formatter/escaping.rb +17 -0
  48. data/lib/cucumber/gherkin/formatter/hashable.rb +27 -0
  49. data/lib/cucumber/gherkin/i18n.rb +15 -0
  50. data/lib/cucumber/gherkin/steps_parser.rb +41 -0
  51. data/lib/cucumber/language_support/language_methods.rb +6 -5
  52. data/lib/cucumber/multiline_argument.rb +0 -3
  53. data/lib/cucumber/multiline_argument/data_table.rb +6 -5
  54. data/lib/cucumber/multiline_argument/doc_string.rb +1 -2
  55. data/lib/cucumber/platform.rb +1 -1
  56. data/lib/cucumber/rake/task.rb +2 -2
  57. data/lib/cucumber/rb_support/rb_hook.rb +1 -6
  58. data/lib/cucumber/rb_support/rb_language.rb +15 -5
  59. data/lib/cucumber/rb_support/rb_step_definition.rb +11 -17
  60. data/lib/cucumber/rb_support/rb_world.rb +6 -4
  61. data/lib/cucumber/rb_support/regexp_argument_matcher.rb +2 -2
  62. data/lib/cucumber/runtime.rb +36 -16
  63. data/lib/cucumber/runtime/support_code.rb +19 -15
  64. data/lib/cucumber/step_definition_light.rb +5 -5
  65. data/lib/cucumber/step_definitions.rb +2 -2
  66. data/lib/cucumber/step_match.rb +11 -2
  67. data/lib/cucumber/wire_support/wire_protocol/requests.rb +2 -2
  68. data/lib/cucumber/wire_support/wire_step_definition.rb +4 -2
  69. data/{spec → lib}/simplecov_setup.rb +0 -0
  70. data/spec/cucumber/cli/configuration_spec.rb +2 -104
  71. data/spec/cucumber/cli/main_spec.rb +0 -22
  72. data/spec/cucumber/cli/options_spec.rb +3 -1
  73. data/spec/cucumber/configuration_spec.rb +123 -0
  74. data/spec/cucumber/events/bus_spec.rb +94 -0
  75. data/spec/cucumber/formatter/event_bus_report_spec.rb +79 -0
  76. data/spec/cucumber/formatter/fail_fast_spec.rb +88 -0
  77. data/spec/cucumber/formatter/json_spec.rb +43 -1
  78. data/spec/cucumber/formatter/rerun_spec.rb +4 -20
  79. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +29 -0
  80. data/spec/cucumber/runtime_spec.rb +2 -28
  81. data/spec/spec_helper.rb +1 -1
  82. data/spec/support/standard_step_actions.rb +18 -0
  83. metadata +37 -13
  84. data/lib/cucumber/core_ext/proc.rb +0 -36
  85. data/spec/cucumber/core_ext/proc_spec.rb +0 -69
@@ -0,0 +1,79 @@
1
+ require 'cucumber/configuration'
2
+ require 'cucumber/runtime'
3
+ require 'cucumber/formatter/spec_helper'
4
+ require 'cucumber/formatter/event_bus_report'
5
+
6
+ module Cucumber
7
+ module Formatter
8
+ describe EventBusReport do
9
+ extend SpecHelperDsl
10
+ include SpecHelper
11
+
12
+ context "With no options" do
13
+ let(:config) { Cucumber::Configuration.new }
14
+
15
+ before(:each) do
16
+ @formatter = EventBusReport.new(config)
17
+ end
18
+
19
+ describe "given a single feature" do
20
+
21
+ describe "a scenario with a single passing step" do
22
+ define_feature <<-FEATURE
23
+ Feature:
24
+ Scenario: Test Scenario
25
+ Given passing
26
+ FEATURE
27
+
28
+ define_steps do
29
+ Given(/pass/) {}
30
+ end
31
+
32
+ it "emits a BeforeTestCase event" do
33
+ received_event = nil
34
+ config.on_event Cucumber::Events::BeforeTestCase do |event|
35
+ received_event = event
36
+ end
37
+ run_defined_feature
38
+ expect(received_event.test_case.name).to eq "Test Scenario"
39
+ end
40
+
41
+ it "emits a BeforeTestStep event" do
42
+ received_event = nil
43
+ config.on_event Cucumber::Events::BeforeTestStep do |event|
44
+ received_event = event
45
+ end
46
+ run_defined_feature
47
+ expect(received_event.test_case.name).to eq "Test Scenario"
48
+ expect(received_event.test_step.name).to eq "passing"
49
+ end
50
+
51
+ it "emits an AfterTestStep event with a passed result" do
52
+ received_event = nil
53
+ config.on_event Cucumber::Events::AfterTestStep do |event|
54
+ received_event = event
55
+ end
56
+ run_defined_feature
57
+ expect(received_event.test_case.name).to eq "Test Scenario"
58
+ expect(received_event.test_step.name).to eq "passing"
59
+ expect(received_event.result).to be_passed
60
+ end
61
+
62
+ it "emits an AfterTestCase event with a passed result" do
63
+ received_event = nil
64
+ config.on_event Cucumber::Events::AfterTestCase do |event|
65
+ received_event = event
66
+ end
67
+ run_defined_feature
68
+ expect(received_event.test_case.name).to eq "Test Scenario"
69
+ expect(received_event.result).to be_passed
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+
78
+
79
+
@@ -0,0 +1,88 @@
1
+ require 'cucumber/formatter/fail_fast'
2
+ require 'cucumber/core'
3
+ require 'cucumber/core/gherkin/writer'
4
+ require 'cucumber/core/test/result'
5
+ require 'cucumber/core/filter'
6
+ require 'cucumber/core/ast'
7
+ require 'cucumber'
8
+ require 'support/standard_step_actions'
9
+
10
+ module Cucumber::Formatter
11
+ describe FailFast do
12
+ include Cucumber::Core
13
+ include Cucumber::Core::Gherkin::Writer
14
+
15
+ let(:configuration) { Cucumber::Configuration.new }
16
+ before { FailFast.new(configuration) }
17
+ let(:report) { EventBusReport.new(configuration) }
18
+
19
+ context 'failing scenario' do
20
+ before(:each) do
21
+ @gherkin = gherkin('foo.feature') do
22
+ feature do
23
+ scenario do
24
+ step 'failing'
25
+ end
26
+
27
+ scenario do
28
+ step 'failing'
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ after(:each) do
35
+ Cucumber.wants_to_quit = false
36
+ end
37
+
38
+ it 'sets Cucumber.wants_to_quit' do
39
+ execute([@gherkin], report, [StandardStepActions.new])
40
+ expect(Cucumber.wants_to_quit).to be true
41
+ end
42
+ end
43
+
44
+ context 'passing scenario' do
45
+ before(:each) do
46
+ @gherkin = gherkin('foo.feature') do
47
+ feature do
48
+ scenario do
49
+ step 'passing'
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ it 'doesn\'t set Cucumber.wants_to_quit' do
56
+ execute([@gherkin], report, [StandardStepActions.new])
57
+ expect(Cucumber.wants_to_quit).to be_falsey
58
+ end
59
+ end
60
+
61
+ context 'undefined scenario' do
62
+ before(:each) do
63
+ @gherkin = gherkin('foo.feature') do
64
+ feature do
65
+ scenario do
66
+ step 'undefined'
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ it 'doesn\'t set Cucumber.wants_to_quit' do
73
+ execute([@gherkin], report, [StandardStepActions.new])
74
+ expect(Cucumber.wants_to_quit).to be_falsey
75
+ end
76
+
77
+ context 'in strict mode' do
78
+ let(:configuration) { Cucumber::Configuration.new strict: true }
79
+
80
+ it 'sets Cucumber.wants_to_quit' do
81
+ execute([@gherkin], report, [StandardStepActions.new])
82
+ expect(Cucumber.wants_to_quit).to be_truthy
83
+ end
84
+ end
85
+ end
86
+
87
+ end
88
+ end
@@ -715,6 +715,48 @@ module Cucumber
715
715
  end
716
716
  end
717
717
 
718
+ describe "with a scenario when only an around hook is failing" do
719
+ define_feature <<-FEATURE
720
+ Feature: Banana party
721
+
722
+ Scenario: Monkey eats bananas
723
+ Given there are bananas
724
+ FEATURE
725
+
726
+ define_steps do
727
+ Around() { |scenario, block| block.call; raise RuntimeError, "error" }
728
+ Given(/^there are bananas$/) {}
729
+ end
730
+
731
+ it "includes the around hook result in the json data" do
732
+ expect(load_normalised_json(@out)).to eq MultiJson.load(%{
733
+ [{"id": "banana-party",
734
+ "uri": "spec.feature",
735
+ "keyword": "Feature",
736
+ "name": "Banana party",
737
+ "line": 1,
738
+ "description": "",
739
+ "elements":
740
+ [{"id": "banana-party;monkey-eats-bananas",
741
+ "keyword": "Scenario",
742
+ "name": "Monkey eats bananas",
743
+ "line": 3,
744
+ "description": "",
745
+ "type": "scenario",
746
+ "steps":
747
+ [{"keyword": "Given ",
748
+ "name": "there are bananas",
749
+ "line": 4,
750
+ "match": {"location": "spec/cucumber/formatter/json_spec.rb:728"},
751
+ "result": {"status": "passed",
752
+ "duration": 1}}],
753
+ "around":
754
+ [{"match": {"location": "unknown_hook_location:1"},
755
+ "result": {"status": "failed",
756
+ "error_message": "error (RuntimeError)\\n./spec/cucumber/formatter/json_spec.rb:727:in `Around'",
757
+ "duration": 1}}]}]}]})
758
+ end
759
+ end
718
760
  end
719
761
 
720
762
  def load_normalised_json(out)
@@ -727,7 +769,7 @@ module Cucumber
727
769
  json.each do |feature|
728
770
  elements = feature.fetch('elements') { [] }
729
771
  elements.each do |scenario|
730
- ['steps', 'before', 'after'].each do |type|
772
+ ['steps', 'before', 'after', 'around'].each do |type|
731
773
  if scenario[type]
732
774
  scenario[type].each do |step_or_hook|
733
775
  normalise_json_step_or_hook(step_or_hook)
@@ -2,6 +2,7 @@ require 'cucumber/formatter/rerun'
2
2
  require 'cucumber/core'
3
3
  require 'cucumber/core/gherkin/writer'
4
4
  require 'cucumber/core/filter'
5
+ require 'support/standard_step_actions'
5
6
 
6
7
  module Cucumber::Formatter
7
8
  describe Rerun do
@@ -10,23 +11,6 @@ module Cucumber::Formatter
10
11
 
11
12
  # after_test_case
12
13
  context 'when 2 scenarios fail in the same file' do
13
- class WithSteps < Cucumber::Core::Filter.new
14
- def test_case(test_case)
15
- test_steps = test_case.test_steps.map do |step|
16
- case step.name
17
- when /fail/
18
- step.with_action { raise Failure }
19
- when /pass/
20
- step.with_action {}
21
- else
22
- step
23
- end
24
- end
25
-
26
- test_case.with_steps(test_steps).describe_to(receiver)
27
- end
28
- end
29
-
30
14
  it 'Prints the locations of the failed scenarios' do
31
15
  gherkin = gherkin('foo.feature') do
32
16
  feature do
@@ -46,7 +30,7 @@ module Cucumber::Formatter
46
30
  io = StringIO.new
47
31
  report = Rerun.new(double, io, {})
48
32
 
49
- execute [gherkin], report, [WithSteps.new]
33
+ execute [gherkin], report, [StandardStepActions.new]
50
34
 
51
35
  expect( io.string ).to eq 'foo.feature:3:6'
52
36
  end
@@ -81,7 +65,7 @@ module Cucumber::Formatter
81
65
  io = StringIO.new
82
66
  report = Rerun.new(double, io, {})
83
67
 
84
- execute [foo, bar], report, [WithSteps.new]
68
+ execute [foo, bar], report, [StandardStepActions.new]
85
69
 
86
70
  expect(io.string).to eq 'foo.feature:3:6 bar.feature:3'
87
71
  end
@@ -100,7 +84,7 @@ module Cucumber::Formatter
100
84
  io = StringIO.new
101
85
  report = Rerun.new(double, io, {})
102
86
 
103
- execute [gherkin], report, [WithSteps.new]
87
+ execute [gherkin], report, [StandardStepActions.new]
104
88
  end
105
89
  end
106
90
  end
@@ -114,6 +114,35 @@ module Cucumber
114
114
  }).to raise_error(Cucumber::UndefinedDynamicStep)
115
115
  end
116
116
 
117
+ it "raises UndefinedDynamicStep when an undefined step with doc string is parsed dynamically" do
118
+ dsl.Given(/Outside/) do
119
+ steps %{
120
+ Given Inside
121
+ """
122
+ abc
123
+ """
124
+ }
125
+ end
126
+
127
+ expect(-> {
128
+ run_step "Outside"
129
+ }).to raise_error(Cucumber::UndefinedDynamicStep)
130
+ end
131
+
132
+ it "raises UndefinedDynamicStep when an undefined step with data table is parsed dynamically" do
133
+ dsl.Given(/Outside/) do
134
+ steps %{
135
+ Given Inside
136
+ | a |
137
+ | 1 |
138
+ }
139
+ end
140
+
141
+ expect(-> {
142
+ run_step "Outside"
143
+ }).to raise_error(Cucumber::UndefinedDynamicStep)
144
+ end
145
+
117
146
  it "allows forced pending" do
118
147
  dsl.Given(/Outside/) do
119
148
  pending("Do me!")
@@ -13,34 +13,8 @@ module Cucumber
13
13
  end
14
14
  end
15
15
 
16
- describe "#configure" do
17
- let(:support_code) { double(Runtime::SupportCode).as_null_object }
18
- let(:new_configuration) { double('New configuration')}
19
-
20
- before(:each) do
21
- allow(Runtime::SupportCode).to receive(:new) { support_code }
22
- end
23
-
24
- it "tells the support_code about the new configuration" do
25
- expect(support_code).to receive(:configure).with(new_configuration)
26
- subject.configure(new_configuration)
27
- end
28
-
29
- it "replaces the existing configuration" do
30
- # not really sure how to test this. Maybe we should just expose
31
- # Runtime#configuration with an attr_reader?
32
- some_new_paths = ['foo/bar', 'baz']
33
-
34
- allow(new_configuration).to receive(:paths) { some_new_paths }
35
-
36
- subject.configure(new_configuration)
37
-
38
- expect(subject.features_paths).to eq some_new_paths
39
- end
40
-
41
- it '#doc_string' do
42
- expect(subject.doc_string('Text')).to eq 'Text'
43
- end
16
+ it '#doc_string' do
17
+ expect(subject.doc_string('Text')).to eq 'Text'
44
18
  end
45
19
  end
46
20
  end
@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__))
4
4
  # For Travis....
5
5
  require 'cucumber/encoding'
6
6
 
7
- load File.expand_path(File.dirname(__FILE__) + '/../spec/simplecov_setup.rb')
7
+ require 'simplecov_setup'
8
8
 
9
9
  require 'pry'
10
10
 
@@ -0,0 +1,18 @@
1
+ # Filter that activates steps with obvious pass / fail behaviour
2
+ class StandardStepActions < Cucumber::Core::Filter.new
3
+ def test_case(test_case)
4
+ test_steps = test_case.test_steps.map do |step|
5
+ case step.name
6
+ when /fail/
7
+ step.with_action { raise Failure }
8
+ when /pass/
9
+ step.with_action {}
10
+ else
11
+ step
12
+ end
13
+ end
14
+
15
+ test_case.with_steps(test_steps).describe_to(receiver)
16
+ end
17
+ end
18
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-07-15 00:00:00.000000000 Z
13
+ date: 2015-09-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cucumber-core
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 1.2.0
21
+ version: 1.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 1.2.0
28
+ version: 1.3.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: builder
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -55,19 +55,19 @@ dependencies:
55
55
  - !ruby/object:Gem::Version
56
56
  version: 1.1.3
57
57
  - !ruby/object:Gem::Dependency
58
- name: gherkin
58
+ name: gherkin3
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '2.12'
63
+ version: 3.1.0
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: '2.12'
70
+ version: 3.1.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: multi_json
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -562,11 +562,13 @@ files:
562
562
  - examples/watir/features/support/env.rb
563
563
  - examples/watir/features/support/screenshots.rb
564
564
  - features/docs/api/list_step_defs_as_json.feature
565
+ - features/docs/api/listen_for_events.feature
565
566
  - features/docs/api/run_cli_main_with_existing_runtime.feature
566
567
  - features/docs/cli/backtraces.feature
567
568
  - features/docs/cli/dry_run.feature
568
569
  - features/docs/cli/exclude_files.feature
569
570
  - features/docs/cli/execute_with_tag_filter.feature
571
+ - features/docs/cli/fail_fast.feature
570
572
  - features/docs/cli/finding_steps.feature
571
573
  - features/docs/cli/randomize.feature
572
574
  - features/docs/cli/require.feature
@@ -674,10 +676,16 @@ files:
674
676
  - lib/cucumber/configuration.rb
675
677
  - lib/cucumber/constantize.rb
676
678
  - lib/cucumber/core_ext/instance_exec.rb
677
- - lib/cucumber/core_ext/proc.rb
678
679
  - lib/cucumber/core_ext/string.rb
679
680
  - lib/cucumber/encoding.rb
680
681
  - lib/cucumber/errors.rb
682
+ - lib/cucumber/events.rb
683
+ - lib/cucumber/events/after_test_case.rb
684
+ - lib/cucumber/events/after_test_step.rb
685
+ - lib/cucumber/events/before_test_case.rb
686
+ - lib/cucumber/events/before_test_step.rb
687
+ - lib/cucumber/events/bus.rb
688
+ - lib/cucumber/events/step_match.rb
681
689
  - lib/cucumber/file_specs.rb
682
690
  - lib/cucumber/filters.rb
683
691
  - lib/cucumber/filters/activate_steps.rb
@@ -700,6 +708,8 @@ files:
700
708
  - lib/cucumber/formatter/debug.rb
701
709
  - lib/cucumber/formatter/duration.rb
702
710
  - lib/cucumber/formatter/duration_extractor.rb
711
+ - lib/cucumber/formatter/event_bus_report.rb
712
+ - lib/cucumber/formatter/fail_fast.rb
703
713
  - lib/cucumber/formatter/fanout.rb
704
714
  - lib/cucumber/formatter/hook_query_visitor.rb
705
715
  - lib/cucumber/formatter/html.rb
@@ -722,6 +732,13 @@ files:
722
732
  - lib/cucumber/formatter/summary.rb
723
733
  - lib/cucumber/formatter/unicode.rb
724
734
  - lib/cucumber/formatter/usage.rb
735
+ - lib/cucumber/gherkin/data_table_parser.rb
736
+ - lib/cucumber/gherkin/formatter/ansi_escapes.rb
737
+ - lib/cucumber/gherkin/formatter/argument.rb
738
+ - lib/cucumber/gherkin/formatter/escaping.rb
739
+ - lib/cucumber/gherkin/formatter/hashable.rb
740
+ - lib/cucumber/gherkin/i18n.rb
741
+ - lib/cucumber/gherkin/steps_parser.rb
725
742
  - lib/cucumber/hooks.rb
726
743
  - lib/cucumber/language_support.rb
727
744
  - lib/cucumber/language_support/language_methods.rb
@@ -764,6 +781,7 @@ files:
764
781
  - lib/cucumber/wire_support/wire_protocol.rb
765
782
  - lib/cucumber/wire_support/wire_protocol/requests.rb
766
783
  - lib/cucumber/wire_support/wire_step_definition.rb
784
+ - lib/simplecov_setup.rb
767
785
  - spec/cucumber/cli/configuration_spec.rb
768
786
  - spec/cucumber/cli/main_spec.rb
769
787
  - spec/cucumber/cli/options_spec.rb
@@ -772,7 +790,7 @@ files:
772
790
  - spec/cucumber/configuration_spec.rb
773
791
  - spec/cucumber/constantize_spec.rb
774
792
  - spec/cucumber/core_ext/instance_exec_spec.rb
775
- - spec/cucumber/core_ext/proc_spec.rb
793
+ - spec/cucumber/events/bus_spec.rb
776
794
  - spec/cucumber/file_specs_spec.rb
777
795
  - spec/cucumber/filters/activate_steps_spec.rb
778
796
  - spec/cucumber/filters/gated_receiver_spec.rb
@@ -782,6 +800,8 @@ files:
782
800
  - spec/cucumber/formatter/ansicolor_spec.rb
783
801
  - spec/cucumber/formatter/debug_spec.rb
784
802
  - spec/cucumber/formatter/duration_spec.rb
803
+ - spec/cucumber/formatter/event_bus_report_spec.rb
804
+ - spec/cucumber/formatter/fail_fast_spec.rb
785
805
  - spec/cucumber/formatter/html_spec.rb
786
806
  - spec/cucumber/formatter/interceptor_spec.rb
787
807
  - spec/cucumber/formatter/json_spec.rb
@@ -812,8 +832,8 @@ files:
812
832
  - spec/cucumber/wire_support/wire_language_spec.rb
813
833
  - spec/cucumber/wire_support/wire_packet_spec.rb
814
834
  - spec/cucumber/world/pending_spec.rb
815
- - spec/simplecov_setup.rb
816
835
  - spec/spec_helper.rb
836
+ - spec/support/standard_step_actions.rb
817
837
  homepage: http://cukes.info
818
838
  licenses:
819
839
  - MIT
@@ -838,14 +858,16 @@ rubyforge_project:
838
858
  rubygems_version: 2.2.2
839
859
  signing_key:
840
860
  specification_version: 4
841
- summary: cucumber-2.0.2
861
+ summary: cucumber-2.1.0
842
862
  test_files:
843
863
  - features/docs/api/list_step_defs_as_json.feature
864
+ - features/docs/api/listen_for_events.feature
844
865
  - features/docs/api/run_cli_main_with_existing_runtime.feature
845
866
  - features/docs/cli/backtraces.feature
846
867
  - features/docs/cli/dry_run.feature
847
868
  - features/docs/cli/exclude_files.feature
848
869
  - features/docs/cli/execute_with_tag_filter.feature
870
+ - features/docs/cli/fail_fast.feature
849
871
  - features/docs/cli/finding_steps.feature
850
872
  - features/docs/cli/randomize.feature
851
873
  - features/docs/cli/require.feature
@@ -931,7 +953,7 @@ test_files:
931
953
  - spec/cucumber/configuration_spec.rb
932
954
  - spec/cucumber/constantize_spec.rb
933
955
  - spec/cucumber/core_ext/instance_exec_spec.rb
934
- - spec/cucumber/core_ext/proc_spec.rb
956
+ - spec/cucumber/events/bus_spec.rb
935
957
  - spec/cucumber/file_specs_spec.rb
936
958
  - spec/cucumber/filters/activate_steps_spec.rb
937
959
  - spec/cucumber/filters/gated_receiver_spec.rb
@@ -941,6 +963,8 @@ test_files:
941
963
  - spec/cucumber/formatter/ansicolor_spec.rb
942
964
  - spec/cucumber/formatter/debug_spec.rb
943
965
  - spec/cucumber/formatter/duration_spec.rb
966
+ - spec/cucumber/formatter/event_bus_report_spec.rb
967
+ - spec/cucumber/formatter/fail_fast_spec.rb
944
968
  - spec/cucumber/formatter/html_spec.rb
945
969
  - spec/cucumber/formatter/interceptor_spec.rb
946
970
  - spec/cucumber/formatter/json_spec.rb
@@ -971,6 +995,6 @@ test_files:
971
995
  - spec/cucumber/wire_support/wire_language_spec.rb
972
996
  - spec/cucumber/wire_support/wire_packet_spec.rb
973
997
  - spec/cucumber/world/pending_spec.rb
974
- - spec/simplecov_setup.rb
975
998
  - spec/spec_helper.rb
999
+ - spec/support/standard_step_actions.rb
976
1000
  has_rdoc: