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.
- checksums.yaml +4 -4
- data/.travis.yml +0 -6
- data/CONTRIBUTING.md +3 -1
- data/Gemfile +1 -1
- data/History.md +17 -0
- data/README.md +3 -3
- data/bin/cucumber +1 -2
- data/cucumber.gemspec +2 -2
- data/examples/i18n/ht/features/adisyon.feature +7 -7
- data/features/docs/api/listen_for_events.feature +58 -0
- data/features/docs/cli/fail_fast.feature +46 -0
- data/features/docs/defining_steps/nested_steps_with_second_arg.feature +3 -22
- data/features/docs/extending_cucumber/custom_formatter.feature +40 -4
- data/features/docs/gherkin/doc_strings.feature +5 -5
- data/features/docs/gherkin/language_help.feature +15 -15
- data/features/docs/gherkin/using_descriptions.feature +0 -5
- data/lib/cucumber/cli/configuration.rb +10 -92
- data/lib/cucumber/cli/main.rb +1 -7
- data/lib/cucumber/cli/options.rb +47 -12
- data/lib/cucumber/configuration.rb +195 -7
- data/lib/cucumber/events.rb +20 -0
- data/lib/cucumber/events/after_test_case.rb +25 -0
- data/lib/cucumber/events/after_test_step.rb +30 -0
- data/lib/cucumber/events/before_test_case.rb +18 -0
- data/lib/cucumber/events/before_test_step.rb +23 -0
- data/lib/cucumber/events/bus.rb +86 -0
- data/lib/cucumber/events/step_match.rb +23 -0
- data/lib/cucumber/filters/prepare_world.rb +2 -2
- data/lib/cucumber/formatter/backtrace_filter.rb +9 -8
- data/lib/cucumber/formatter/console.rb +1 -1
- data/lib/cucumber/formatter/event_bus_report.rb +37 -0
- data/lib/cucumber/formatter/fail_fast.rb +18 -0
- data/lib/cucumber/formatter/html.rb +1 -1
- data/lib/cucumber/formatter/io.rb +3 -1
- data/lib/cucumber/formatter/json.rb +19 -1
- data/lib/cucumber/formatter/legacy_api/adapter.rb +5 -13
- data/lib/cucumber/formatter/legacy_api/ast.rb +2 -2
- data/lib/cucumber/formatter/legacy_api/runtime_facade.rb +3 -1
- data/lib/cucumber/formatter/pretty.rb +5 -7
- data/lib/cucumber/formatter/progress.rb +1 -1
- data/lib/cucumber/formatter/rerun.rb +1 -1
- data/lib/cucumber/formatter/steps.rb +1 -1
- data/lib/cucumber/formatter/usage.rb +12 -8
- data/lib/cucumber/gherkin/data_table_parser.rb +23 -0
- data/lib/cucumber/gherkin/formatter/ansi_escapes.rb +99 -0
- data/lib/cucumber/gherkin/formatter/argument.rb +17 -0
- data/lib/cucumber/gherkin/formatter/escaping.rb +17 -0
- data/lib/cucumber/gherkin/formatter/hashable.rb +27 -0
- data/lib/cucumber/gherkin/i18n.rb +15 -0
- data/lib/cucumber/gherkin/steps_parser.rb +41 -0
- data/lib/cucumber/language_support/language_methods.rb +6 -5
- data/lib/cucumber/multiline_argument.rb +0 -3
- data/lib/cucumber/multiline_argument/data_table.rb +6 -5
- data/lib/cucumber/multiline_argument/doc_string.rb +1 -2
- data/lib/cucumber/platform.rb +1 -1
- data/lib/cucumber/rake/task.rb +2 -2
- data/lib/cucumber/rb_support/rb_hook.rb +1 -6
- data/lib/cucumber/rb_support/rb_language.rb +15 -5
- data/lib/cucumber/rb_support/rb_step_definition.rb +11 -17
- data/lib/cucumber/rb_support/rb_world.rb +6 -4
- data/lib/cucumber/rb_support/regexp_argument_matcher.rb +2 -2
- data/lib/cucumber/runtime.rb +36 -16
- data/lib/cucumber/runtime/support_code.rb +19 -15
- data/lib/cucumber/step_definition_light.rb +5 -5
- data/lib/cucumber/step_definitions.rb +2 -2
- data/lib/cucumber/step_match.rb +11 -2
- data/lib/cucumber/wire_support/wire_protocol/requests.rb +2 -2
- data/lib/cucumber/wire_support/wire_step_definition.rb +4 -2
- data/{spec → lib}/simplecov_setup.rb +0 -0
- data/spec/cucumber/cli/configuration_spec.rb +2 -104
- data/spec/cucumber/cli/main_spec.rb +0 -22
- data/spec/cucumber/cli/options_spec.rb +3 -1
- data/spec/cucumber/configuration_spec.rb +123 -0
- data/spec/cucumber/events/bus_spec.rb +94 -0
- data/spec/cucumber/formatter/event_bus_report_spec.rb +79 -0
- data/spec/cucumber/formatter/fail_fast_spec.rb +88 -0
- data/spec/cucumber/formatter/json_spec.rb +43 -1
- data/spec/cucumber/formatter/rerun_spec.rb +4 -20
- data/spec/cucumber/rb_support/rb_step_definition_spec.rb +29 -0
- data/spec/cucumber/runtime_spec.rb +2 -28
- data/spec/spec_helper.rb +1 -1
- data/spec/support/standard_step_actions.rb +18 -0
- metadata +37 -13
- data/lib/cucumber/core_ext/proc.rb +0 -36
- 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, [
|
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, [
|
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, [
|
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
|
-
|
17
|
-
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -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
|
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-
|
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.
|
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.
|
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:
|
58
|
+
name: gherkin3
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
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:
|
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/
|
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
|
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/
|
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:
|