rspec-core 2.7.1 → 2.8.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/features/command_line/order.feature +29 -0
- data/features/command_line/tag.feature +10 -9
- data/features/configuration/default_path.feature +2 -2
- data/features/filtering/exclusion_filters.feature +1 -1
- data/features/filtering/run_all_when_everything_filtered.feature +1 -1
- data/features/subject/attribute_of_subject.feature +1 -1
- data/lib/rspec/core.rb +148 -12
- data/lib/rspec/core/command_line.rb +2 -2
- data/lib/rspec/core/configuration.rb +300 -155
- data/lib/rspec/core/configuration_options.rb +34 -53
- data/lib/rspec/core/deprecation.rb +4 -0
- data/lib/rspec/core/drb_options.rb +72 -0
- data/lib/rspec/core/example.rb +58 -24
- data/lib/rspec/core/example_group.rb +10 -5
- data/lib/rspec/core/extensions.rb +1 -0
- data/lib/rspec/core/extensions/ordered.rb +16 -0
- data/lib/rspec/core/filter_manager.rb +170 -0
- data/lib/rspec/core/formatters/base_formatter.rb +3 -1
- data/lib/rspec/core/formatters/base_text_formatter.rb +6 -0
- data/lib/rspec/core/formatters/snippet_extractor.rb +1 -1
- data/lib/rspec/core/hooks.rb +197 -1
- data/lib/rspec/core/let.rb +3 -2
- data/lib/rspec/core/metadata.rb +25 -4
- data/lib/rspec/core/option_parser.rb +89 -54
- data/lib/rspec/core/pending.rb +41 -0
- data/lib/rspec/core/rake_task.rb +9 -25
- data/lib/rspec/core/reporter.rb +43 -19
- data/lib/rspec/core/shared_context.rb +35 -0
- data/lib/rspec/core/shared_example_group.rb +0 -1
- data/lib/rspec/core/subject.rb +4 -4
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/world.rb +34 -52
- data/spec/autotest/failed_results_re_spec.rb +2 -2
- data/spec/command_line/order_spec.rb +131 -0
- data/spec/rspec/core/command_line_spec.rb +2 -1
- data/spec/rspec/core/configuration_options_spec.rb +83 -163
- data/spec/rspec/core/configuration_spec.rb +311 -139
- data/spec/rspec/core/drb_options_spec.rb +131 -0
- data/spec/rspec/core/example_group_spec.rb +22 -11
- data/spec/rspec/core/example_spec.rb +1 -2
- data/spec/rspec/core/filter_manager_spec.rb +175 -0
- data/spec/rspec/core/formatters/helpers_spec.rb +1 -1
- data/spec/rspec/core/formatters/html_formatter_spec.rb +3 -2
- data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +1 -1
- data/spec/rspec/core/metadata_spec.rb +21 -6
- data/spec/rspec/core/option_parser_spec.rb +74 -0
- data/spec/rspec/core/reporter_spec.rb +18 -1
- data/spec/rspec/core/shared_context_spec.rb +54 -17
- data/spec/rspec/core/subject_spec.rb +1 -1
- data/spec/rspec/core/world_spec.rb +7 -188
- data/spec/spec_helper.rb +47 -43
- data/spec/support/config_options_helper.rb +27 -0
- metadata +28 -12
- data/lib/rspec/core/expecting/with_rspec.rb +0 -9
- data/lib/rspec/core/expecting/with_stdlib.rb +0 -9
@@ -16,7 +16,7 @@ module RSpec
|
|
16
16
|
|
17
17
|
let(:generated_html) do
|
18
18
|
options = RSpec::Core::ConfigurationOptions.new(
|
19
|
-
%w[spec/rspec/core/resources/formatter_specs.rb --format textmate]
|
19
|
+
%w[spec/rspec/core/resources/formatter_specs.rb --format textmate --order default]
|
20
20
|
)
|
21
21
|
options.parse_options
|
22
22
|
err, out = StringIO.new, StringIO.new
|
@@ -22,7 +22,6 @@ module RSpec
|
|
22
22
|
end
|
23
23
|
|
24
24
|
describe "#filter_applies?" do
|
25
|
-
|
26
25
|
let(:parent_group_metadata) { Metadata.new.process('parent group', :caller => ["foo_spec.rb:#{__LINE__}"]) }
|
27
26
|
let(:group_metadata) { Metadata.new(parent_group_metadata).process('group', :caller => ["foo_spec.rb:#{__LINE__}"]) }
|
28
27
|
let(:example_metadata) { group_metadata.for_example('example', :caller => ["foo_spec.rb:#{__LINE__}"], :if => true) }
|
@@ -313,13 +312,29 @@ module RSpec
|
|
313
312
|
child.for_example('example', child)[:full_description].should eq("parent child example")
|
314
313
|
end
|
315
314
|
|
315
|
+
it "concats nested example group descriptions three deep" do
|
316
|
+
grandparent = Metadata.new
|
317
|
+
grandparent.process('grandparent')
|
318
|
+
|
319
|
+
parent = Metadata.new(grandparent)
|
320
|
+
parent.process('parent')
|
321
|
+
|
322
|
+
child = Metadata.new(parent)
|
323
|
+
child.process('child')
|
324
|
+
|
325
|
+
grandparent[:example_group][:full_description].should eq("grandparent")
|
326
|
+
parent[:example_group][:full_description].should eq("grandparent parent")
|
327
|
+
child[:example_group][:full_description].should eq("grandparent parent child")
|
328
|
+
child.for_example('example', child)[:full_description].should eq("grandparent parent child example")
|
329
|
+
end
|
330
|
+
|
316
331
|
%w[# . ::].each do |char|
|
317
332
|
context "with a 2nd arg starting with #{char}" do
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
333
|
+
it "removes the space" do
|
334
|
+
m = Metadata.new
|
335
|
+
m.process(Array, "#{char}method")
|
336
|
+
m[:example_group][:full_description].should eq("Array#{char}method")
|
337
|
+
end
|
323
338
|
end
|
324
339
|
end
|
325
340
|
|
@@ -82,5 +82,79 @@ module RSpec::Core
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
%w[--tag -t].each do |option|
|
86
|
+
describe option do
|
87
|
+
context "without ~" do
|
88
|
+
it "treats no value as true" do
|
89
|
+
options = Parser.parse!([option, 'foo'])
|
90
|
+
options[:inclusion_filter].should eq(:foo => true)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "treats 'true' as true" do
|
94
|
+
options = Parser.parse!([option, 'foo:true'])
|
95
|
+
options[:inclusion_filter].should eq(:foo => true)
|
96
|
+
end
|
97
|
+
|
98
|
+
it "treats 'nil' as nil" do
|
99
|
+
options = Parser.parse!([option, 'foo:nil'])
|
100
|
+
options[:inclusion_filter].should eq(:foo => nil)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "treats 'false' as false" do
|
104
|
+
options = Parser.parse!([option, 'foo:false'])
|
105
|
+
options[:inclusion_filter].should eq(:foo => false)
|
106
|
+
end
|
107
|
+
|
108
|
+
it "merges muliple invocations" do
|
109
|
+
options = Parser.parse!([option, 'foo:false', option, 'bar:true', option, 'foo:true'])
|
110
|
+
options[:inclusion_filter].should eq(:foo => true, :bar => true)
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
context "with ~" do
|
115
|
+
it "treats no value as true" do
|
116
|
+
options = Parser.parse!([option, '~foo'])
|
117
|
+
options[:exclusion_filter].should eq(:foo => true)
|
118
|
+
end
|
119
|
+
|
120
|
+
it "treats 'true' as true" do
|
121
|
+
options = Parser.parse!([option, '~foo:true'])
|
122
|
+
options[:exclusion_filter].should eq(:foo => true)
|
123
|
+
end
|
124
|
+
|
125
|
+
it "treats 'nil' as nil" do
|
126
|
+
options = Parser.parse!([option, '~foo:nil'])
|
127
|
+
options[:exclusion_filter].should eq(:foo => nil)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "treats 'false' as false" do
|
131
|
+
options = Parser.parse!([option, '~foo:false'])
|
132
|
+
options[:exclusion_filter].should eq(:foo => false)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "--order" do
|
139
|
+
it "is nil by default" do
|
140
|
+
Parser.parse!([])[:order].should be_nil
|
141
|
+
end
|
142
|
+
|
143
|
+
%w[rand random].each do |option|
|
144
|
+
context "with #{option}" do
|
145
|
+
it "defines the order as random" do
|
146
|
+
options = Parser.parse!(['--order', option])
|
147
|
+
options[:order].should eq(option)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe "--seed" do
|
154
|
+
it "sets the order to rand:SEED" do
|
155
|
+
options = Parser.parse!(%w[--seed 123])
|
156
|
+
options[:order].should eq("rand:123")
|
157
|
+
end
|
158
|
+
end
|
85
159
|
end
|
86
160
|
end
|
@@ -10,7 +10,7 @@ module RSpec::Core
|
|
10
10
|
%w[start_dump dump_pending dump_failures dump_summary close].each do |message|
|
11
11
|
it "sends #{message} to the formatter(s)" do
|
12
12
|
formatter.should_receive(message)
|
13
|
-
reporter.abort
|
13
|
+
reporter.abort(nil)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -82,5 +82,22 @@ module RSpec::Core
|
|
82
82
|
reporter.example_started(example)
|
83
83
|
end
|
84
84
|
end
|
85
|
+
|
86
|
+
describe "#report" do
|
87
|
+
it "supports one arg (count)" do
|
88
|
+
Reporter.new.report(1) {}
|
89
|
+
end
|
90
|
+
|
91
|
+
it "supports two args (count, seed)" do
|
92
|
+
Reporter.new.report(1, 2) {}
|
93
|
+
end
|
94
|
+
|
95
|
+
it "yields itself" do
|
96
|
+
reporter = Reporter.new
|
97
|
+
yielded = nil
|
98
|
+
reporter.report(3) {|r| yielded = r}
|
99
|
+
yielded.should eq(reporter)
|
100
|
+
end
|
101
|
+
end
|
85
102
|
end
|
86
103
|
end
|
@@ -1,30 +1,67 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe RSpec::
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
describe RSpec::SharedContext do
|
4
|
+
it "is accessible as RSpec::Core::SharedContext" do
|
5
|
+
RSpec::Core::SharedContext
|
6
|
+
end
|
7
|
+
|
8
|
+
it "is accessible as RSpec::SharedContext" do
|
9
|
+
RSpec::SharedContext
|
10
|
+
end
|
11
|
+
|
12
|
+
it "supports before and after hooks" do
|
13
|
+
before_all_hook = false
|
14
|
+
before_each_hook = false
|
15
|
+
after_each_hook = false
|
16
|
+
after_all_hook = false
|
17
|
+
shared = Module.new do
|
18
|
+
extend RSpec::SharedContext
|
19
|
+
before(:all) { before_all_hook = true }
|
20
|
+
before(:each) { before_each_hook = true }
|
21
|
+
after(:each) { after_each_hook = true }
|
22
|
+
after(:all) { after_all_hook = true }
|
23
|
+
end
|
24
|
+
group = RSpec::Core::ExampleGroup.describe do
|
25
|
+
include shared
|
26
|
+
example { }
|
27
|
+
end
|
28
|
+
|
29
|
+
group.run
|
30
|
+
|
31
|
+
before_all_hook.should be_true
|
32
|
+
before_each_hook.should be_true
|
33
|
+
after_each_hook.should be_true
|
34
|
+
after_all_hook.should be_true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "supports let" do
|
38
|
+
shared = Module.new do
|
39
|
+
extend RSpec::SharedContext
|
40
|
+
let(:foo) { 'foo' }
|
41
|
+
end
|
42
|
+
group = RSpec::Core::ExampleGroup.describe do
|
43
|
+
include shared
|
44
|
+
end
|
45
|
+
|
46
|
+
group.new.foo.should eq('foo')
|
47
|
+
end
|
48
|
+
|
49
|
+
%w[describe context].each do |method_name|
|
50
|
+
it "supports nested example groups using #{method_name}" do
|
10
51
|
shared = Module.new do
|
11
|
-
extend RSpec::
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
after(:all) { after_all_hook = true }
|
52
|
+
extend RSpec::SharedContext
|
53
|
+
send(method_name, "nested using describe") do
|
54
|
+
example {}
|
55
|
+
end
|
16
56
|
end
|
17
57
|
group = RSpec::Core::ExampleGroup.describe do
|
18
58
|
include shared
|
19
|
-
example { }
|
20
59
|
end
|
21
60
|
|
22
61
|
group.run
|
23
62
|
|
24
|
-
|
25
|
-
|
26
|
-
after_each_hook.should be_true
|
27
|
-
after_all_hook.should be_true
|
63
|
+
group.children.length.should eq(1)
|
64
|
+
group.children.first.examples.length.should eq(1)
|
28
65
|
end
|
29
66
|
end
|
30
67
|
end
|
@@ -152,7 +152,7 @@ module RSpec::Core
|
|
152
152
|
its([:a]) { should eq("Symbol: a") }
|
153
153
|
its(['a']) { should eq("String: a") }
|
154
154
|
its([:b, 'c', 4]) { should eq("Symbol: b; String: c; Fixnum: 4") }
|
155
|
-
its(:name) { should
|
155
|
+
its(:name) { should eq("George") }
|
156
156
|
context "when referring to an attribute without the proper array syntax" do
|
157
157
|
context "it raises an error" do
|
158
158
|
its(:age) do
|
@@ -17,138 +17,11 @@ module RSpec::Core
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
describe "#apply_inclusion_filters" do
|
21
|
-
let(:group1) {
|
22
|
-
RSpec::Core::ExampleGroup.describe(Bar, "find group-1",
|
23
|
-
{ :foo => 1, :color => 'blue', :feature => 'reporting' }
|
24
|
-
) {}
|
25
|
-
}
|
26
|
-
|
27
|
-
let(:group2) {
|
28
|
-
RSpec::Core::ExampleGroup.describe(Bar, "find group-2",
|
29
|
-
{ :pending => true, :feature => 'reporting' }
|
30
|
-
) {}
|
31
|
-
}
|
32
|
-
|
33
|
-
let(:group3) {
|
34
|
-
RSpec::Core::ExampleGroup.describe(Bar, "find group-3",
|
35
|
-
{ :array => [1,2,3,4], :color => 'blue' }
|
36
|
-
) {}
|
37
|
-
}
|
38
|
-
|
39
|
-
let(:group4) {
|
40
|
-
RSpec::Core::ExampleGroup.describe(Foo, "find these examples") do
|
41
|
-
it('I have no options') {}
|
42
|
-
it("this is awesome", :awesome => true) {}
|
43
|
-
it("this is too", :awesome => true) {}
|
44
|
-
it("not so awesome", :awesome => false) {}
|
45
|
-
it("I also have no options") {}
|
46
|
-
end
|
47
|
-
}
|
48
|
-
|
49
|
-
let(:example_groups) { [group1, group2, group3, group4] }
|
50
|
-
|
51
|
-
it "finds no groups when given no search parameters" do
|
52
|
-
world.apply_inclusion_filters([],{}).should eq([])
|
53
|
-
end
|
54
|
-
|
55
|
-
it "finds matching groups when filtering on :describes (described class or module)" do
|
56
|
-
world.apply_inclusion_filters(example_groups, :example_group => { :describes => Bar }).should eq([group1, group2, group3])
|
57
|
-
end
|
58
|
-
|
59
|
-
it "finds matching groups when filtering on :description with text" do
|
60
|
-
world.apply_inclusion_filters(example_groups, :example_group => { :description => 'Bar find group-1' }).should eq([group1])
|
61
|
-
end
|
62
|
-
|
63
|
-
it "finds matching groups when filtering on :description with a lambda" do
|
64
|
-
world.apply_inclusion_filters(example_groups, :example_group => { :description => lambda { |v| v.include?('-1') || v.include?('-3') } }).should eq([group1, group3])
|
65
|
-
end
|
66
|
-
|
67
|
-
it "finds matching groups when filtering on :description with a regular expression" do
|
68
|
-
world.apply_inclusion_filters(example_groups, :example_group => { :description => /find group/ }).should eq([group1, group2, group3])
|
69
|
-
end
|
70
|
-
|
71
|
-
it "finds one group when searching for :pending => true" do
|
72
|
-
world.apply_inclusion_filters(example_groups, :pending => true ).should eq([group2])
|
73
|
-
end
|
74
|
-
|
75
|
-
it "finds matching groups when filtering on arbitrary metadata with a number" do
|
76
|
-
world.apply_inclusion_filters(example_groups, :foo => 1 ).should eq([group1])
|
77
|
-
end
|
78
|
-
|
79
|
-
it "finds matching groups when filtering on arbitrary metadata with an array" do
|
80
|
-
world.apply_inclusion_filters(example_groups, :array => [1,2,3,4]).should eq([group3])
|
81
|
-
end
|
82
|
-
|
83
|
-
it "finds no groups when filtering on arbitrary metadata with an array but the arrays do not match" do
|
84
|
-
world.apply_inclusion_filters(example_groups, :array => [4,3,2,1]).should be_empty
|
85
|
-
end
|
86
|
-
|
87
|
-
it "finds matching examples when filtering on arbitrary metadata" do
|
88
|
-
world.apply_inclusion_filters(group4.examples, :awesome => true).should eq([group4.examples[1], group4.examples[2]])
|
89
|
-
end
|
90
|
-
|
91
|
-
it "finds matching examples for example that match any of the filters" do
|
92
|
-
world.apply_inclusion_filters(group4.examples, :awesome => true, :something => :else).should eq([group4.examples[1], group4.examples[2]])
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
describe "#apply_exclusion_filters" do
|
97
|
-
|
98
|
-
it "finds nothing if all describes match the exclusion filter" do
|
99
|
-
options = { :network_access => true }
|
100
|
-
|
101
|
-
group1 = ExampleGroup.describe(Bar, "find group-1", options) do
|
102
|
-
it("foo") {}
|
103
|
-
it("bar") {}
|
104
|
-
end
|
105
|
-
|
106
|
-
world.register(group1)
|
107
|
-
|
108
|
-
world.apply_exclusion_filters(group1.examples, :network_access => true).should eq([])
|
109
|
-
|
110
|
-
group2 = ExampleGroup.describe(Bar, "find group-1") do
|
111
|
-
it("foo", :network_access => true) {}
|
112
|
-
it("bar") {}
|
113
|
-
end
|
114
|
-
|
115
|
-
world.register(group2)
|
116
|
-
|
117
|
-
world.apply_exclusion_filters(group2.examples, :network_access => true).should eq([group2.examples.last])
|
118
|
-
end
|
119
|
-
|
120
|
-
it "finds nothing if a regexp matches the exclusion filter" do
|
121
|
-
group = ExampleGroup.describe(Bar, "find group-1", :name => "exclude me with a regex", :another => "foo") do
|
122
|
-
it("foo") {}
|
123
|
-
it("bar") {}
|
124
|
-
end
|
125
|
-
world.register(group)
|
126
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude/).should eq([])
|
127
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude/, :another => "foo").should eq([])
|
128
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude/, :another => "foo", :example_group => {
|
129
|
-
:describes => lambda { |b| b == Bar } } ).should eq([])
|
130
|
-
|
131
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude not/).should eq(group.examples)
|
132
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude/, "another_condition" => "foo").should eq([])
|
133
|
-
world.apply_exclusion_filters(group.examples, :name => /exclude/, "another_condition" => "foo1").should eq([])
|
134
|
-
end
|
135
|
-
|
136
|
-
it "finds all if filters are empty" do
|
137
|
-
group = ExampleGroup.describe(Bar) do
|
138
|
-
example("foo") {}
|
139
|
-
example("bar") {}
|
140
|
-
end
|
141
|
-
world.register(group)
|
142
|
-
world.apply_exclusion_filters(group.examples, {}).should eq(group.examples)
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
20
|
describe "#preceding_declaration_line (again)" do
|
147
|
-
|
148
21
|
let(:group) do
|
149
22
|
RSpec::Core::ExampleGroup.describe("group") do
|
150
23
|
|
151
|
-
|
24
|
+
example("example") {}
|
152
25
|
|
153
26
|
end
|
154
27
|
end
|
@@ -219,9 +92,9 @@ module RSpec::Core
|
|
219
92
|
|
220
93
|
context "with an inclusion filter" do
|
221
94
|
it "announces" do
|
222
|
-
configuration.
|
95
|
+
configuration.filter_run_including :foo => 'bar'
|
223
96
|
reporter.should_receive(:message).
|
224
|
-
with(
|
97
|
+
with(/All examples were filtered out/)
|
225
98
|
world.announce_filters
|
226
99
|
end
|
227
100
|
end
|
@@ -229,18 +102,18 @@ module RSpec::Core
|
|
229
102
|
context "with an inclusion filter and run_all_when_everything_filtered" do
|
230
103
|
it "announces" do
|
231
104
|
configuration.stub(:run_all_when_everything_filtered?) { true }
|
232
|
-
configuration.
|
105
|
+
configuration.filter_run_including :foo => 'bar'
|
233
106
|
reporter.should_receive(:message).
|
234
|
-
with(
|
107
|
+
with(/All examples were filtered out/)
|
235
108
|
world.announce_filters
|
236
109
|
end
|
237
110
|
end
|
238
111
|
|
239
112
|
context "with an exclusion filter" do
|
240
113
|
it "announces" do
|
241
|
-
configuration.
|
114
|
+
configuration.filter_run_excluding :foo => 'bar'
|
242
115
|
reporter.should_receive(:message).
|
243
|
-
with(
|
116
|
+
with(/All examples were filtered out/)
|
244
117
|
world.announce_filters
|
245
118
|
end
|
246
119
|
end
|
@@ -257,59 +130,5 @@ module RSpec::Core
|
|
257
130
|
end
|
258
131
|
end
|
259
132
|
end
|
260
|
-
|
261
|
-
describe "#inclusion_filter" do
|
262
|
-
describe "#description" do
|
263
|
-
it 'cleans up the description' do
|
264
|
-
# check the assumptions of this example
|
265
|
-
project_dir = File.expand_path('.')
|
266
|
-
lambda { }.inspect.should include(project_dir)
|
267
|
-
lambda { }.inspect.should include('0x')
|
268
|
-
lambda { }.inspect.should include(' (lambda)') if RUBY_VERSION > '1.9'
|
269
|
-
|
270
|
-
configuration.filter_run :foo => lambda { }
|
271
|
-
world.inclusion_filter.description.should_not include('0x')
|
272
|
-
world.inclusion_filter.description.should_not include(project_dir)
|
273
|
-
world.inclusion_filter.description.should_not include(' (lambda)')
|
274
|
-
end
|
275
|
-
end
|
276
|
-
end
|
277
|
-
|
278
|
-
describe "#exclusion_filter" do
|
279
|
-
describe "#description" do
|
280
|
-
it 'returns `{}` when it only contains the default filters' do
|
281
|
-
world.exclusion_filter.description.should eq({}.inspect)
|
282
|
-
end
|
283
|
-
|
284
|
-
it 'includes other filters' do
|
285
|
-
configuration.exclusion_filter[:foo] = :bar
|
286
|
-
world.exclusion_filter.description.should eq({ :foo => :bar }.inspect)
|
287
|
-
end
|
288
|
-
|
289
|
-
it 'includes an overriden :if filter' do
|
290
|
-
configuration.exclusion_filter[:if] = :custom_filter
|
291
|
-
world.exclusion_filter.description.should eq({ :if => :custom_filter }.inspect)
|
292
|
-
end
|
293
|
-
|
294
|
-
it 'includes an overriden :unless filter' do
|
295
|
-
configuration.exclusion_filter[:unless] = :custom_filter
|
296
|
-
world.exclusion_filter.description.should eq({ :unless => :custom_filter }.inspect)
|
297
|
-
end
|
298
|
-
|
299
|
-
it 'cleans up the description' do
|
300
|
-
# check the assumptions of this example
|
301
|
-
project_dir = File.expand_path('.')
|
302
|
-
lambda { }.inspect.should include(project_dir)
|
303
|
-
lambda { }.inspect.should include('0x')
|
304
|
-
lambda { }.inspect.should include(' (lambda)') if RUBY_VERSION > '1.9'
|
305
|
-
|
306
|
-
configuration.exclusion_filter[:foo] = lambda { }
|
307
|
-
configuration.filter_run_excluding :bar => lambda { }
|
308
|
-
world.exclusion_filter.description.should_not include('0x')
|
309
|
-
world.exclusion_filter.description.should_not include(project_dir)
|
310
|
-
world.exclusion_filter.description.should_not include(' (lambda)')
|
311
|
-
end
|
312
|
-
end
|
313
|
-
end
|
314
133
|
end
|
315
134
|
end
|