rspec-core 2.0.0.rc → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -0
- data/History.markdown +11 -0
- data/README.markdown +1 -1
- data/Rakefile +35 -26
- data/Upgrade.markdown +54 -2
- data/features/README.markdown +15 -8
- data/features/command_line/configure.feature +2 -1
- data/features/configuration/read_options_from_file.feature +6 -0
- data/features/hooks/before_and_after_hooks.feature +23 -0
- data/features/{hooks → metadata}/described_class.feature +0 -0
- data/lib/autotest/rspec2.rb +10 -7
- data/lib/rspec/core/command_line.rb +3 -25
- data/lib/rspec/core/configuration.rb +26 -11
- data/lib/rspec/core/example.rb +1 -7
- data/lib/rspec/core/example_group.rb +17 -2
- data/lib/rspec/core/hooks.rb +20 -7
- data/lib/rspec/core/option_parser.rb +5 -1
- data/lib/rspec/core/rake_task.rb +23 -9
- data/lib/rspec/core/version.rb +1 -1
- data/spec/autotest/failed_results_re_spec.rb +5 -6
- data/spec/autotest/rspec_spec.rb +18 -27
- data/spec/rspec/core/command_line_spec.rb +13 -3
- data/spec/rspec/core/configuration_spec.rb +74 -6
- data/spec/rspec/core/example_group_spec.rb +26 -0
- data/spec/rspec/core/example_spec.rb +0 -12
- data/spec/rspec/core/hooks_filtering_spec.rb +20 -0
- data/spec/rspec/core/option_parser_spec.rb +7 -3
- data/spec/rspec/core/rake_task_spec.rb +24 -3
- data/spec/spec_helper.rb +17 -17
- data/specs.watchr +1 -2
- metadata +38 -52
@@ -384,6 +384,32 @@ module RSpec::Core
|
|
384
384
|
example.metadata[:execution_result][:exception_encountered].message.should == "error in before all"
|
385
385
|
end
|
386
386
|
|
387
|
+
context "when an error occurs in an after(:all) hook" do
|
388
|
+
before(:each) do
|
389
|
+
RSpec.configuration.reporter.stub(:message)
|
390
|
+
end
|
391
|
+
|
392
|
+
let(:group) do
|
393
|
+
ExampleGroup.describe do
|
394
|
+
after(:all) { raise "error in after all" }
|
395
|
+
it("equality") { 1.should == 1 }
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
it "allows the example to pass" do
|
400
|
+
group.run
|
401
|
+
example = group.examples.first
|
402
|
+
example.metadata.should_not be_nil
|
403
|
+
example.metadata[:execution_result].should_not be_nil
|
404
|
+
example.metadata[:execution_result][:status].should == "passed"
|
405
|
+
end
|
406
|
+
|
407
|
+
it "rescues the error and prints it out" do
|
408
|
+
RSpec.configuration.reporter.should_receive(:message).with(/error in after all/)
|
409
|
+
group.run
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
387
413
|
it "has no 'running example' within before(:all)" do
|
388
414
|
group = ExampleGroup.describe
|
389
415
|
running_example = :none
|
@@ -117,18 +117,6 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
|
-
describe "#in_block?" do
|
121
|
-
before do
|
122
|
-
example.should_not be_in_block
|
123
|
-
end
|
124
|
-
it "is only true during the example (but not before or after)" do
|
125
|
-
example.should be_in_block
|
126
|
-
end
|
127
|
-
after do
|
128
|
-
example.should_not be_in_block
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
120
|
describe "#pending" do
|
133
121
|
context "in the example" do
|
134
122
|
it "sets the example to pending" do
|
@@ -26,6 +26,26 @@ module RSpec::Core
|
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "hooks with single filters" do
|
29
|
+
|
30
|
+
context "with no scope specified" do
|
31
|
+
it "should be ran around|before|after :each if the filter matches the example group's filter" do
|
32
|
+
filters = []
|
33
|
+
RSpec.configure do |c|
|
34
|
+
c.around(:match => true) {|example| filters << "around each in config"; example.run}
|
35
|
+
c.before(:match => true) { filters << "before each in config"}
|
36
|
+
c.after(:match => true) { filters << "after each in config"}
|
37
|
+
end
|
38
|
+
group = ExampleGroup.describe(:match => true)
|
39
|
+
group.example("example") {}
|
40
|
+
group.run
|
41
|
+
filters.should == [
|
42
|
+
"around each in config",
|
43
|
+
"before each in config",
|
44
|
+
"after each in config"
|
45
|
+
]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
29
49
|
it "should be ran if the filter matches the example group's filter" do
|
30
50
|
filters = []
|
31
51
|
RSpec.configure do |c|
|
@@ -6,6 +6,8 @@ module RSpec::Core
|
|
6
6
|
RSpec.stub(:deprecate)
|
7
7
|
end
|
8
8
|
|
9
|
+
let(:output_file){ mock File }
|
10
|
+
|
9
11
|
it "deprecates the --formatter option" do
|
10
12
|
RSpec.should_receive(:deprecate)
|
11
13
|
Parser.parse!(%w[--formatter doc])
|
@@ -23,13 +25,15 @@ module RSpec::Core
|
|
23
25
|
end
|
24
26
|
|
25
27
|
it "parses output stream from --out" do
|
28
|
+
File.should_receive(:open).with("foo.txt",'w').and_return(output_file)
|
26
29
|
options = Parser.parse!(%w[--out foo.txt])
|
27
|
-
options.should eq( {:output_stream=>
|
30
|
+
options.should eq( {:output_stream=>output_file} )
|
28
31
|
end
|
29
32
|
|
30
33
|
it "parses output stream from -o" do
|
34
|
+
File.should_receive(:open).with("foo.txt",'w').and_return(output_file)
|
31
35
|
options = Parser.parse!(%w[-o foo.txt])
|
32
|
-
options.should eq( {:output_stream=>
|
36
|
+
options.should eq( {:output_stream=>output_file} )
|
33
37
|
end
|
34
38
|
end
|
35
|
-
end
|
39
|
+
end
|
@@ -88,17 +88,24 @@ module RSpec::Core
|
|
88
88
|
it "renders them after rcov" do
|
89
89
|
task.rcov = true
|
90
90
|
task.rcov_opts = '--exclude "mocks"'
|
91
|
-
spec_command.should =~
|
91
|
+
spec_command.should =~ /rcov.*--exclude "mocks"/
|
92
|
+
end
|
93
|
+
|
94
|
+
it "ensures that -Ispec is in the resulting command" do
|
95
|
+
task.rcov = true
|
96
|
+
task.rcov_opts = '--exclude "mocks"'
|
97
|
+
spec_command.should =~ /rcov.*-Ispec/
|
92
98
|
end
|
93
99
|
end
|
94
100
|
end
|
95
101
|
|
96
102
|
context "with rspec_opts" do
|
97
103
|
context "with rcov=true" do
|
98
|
-
it "
|
104
|
+
it "adds the rspec_opts after the rcov_opts and files" do
|
105
|
+
task.stub(:files_to_run) { "this.rb that.rb" }
|
99
106
|
task.rcov = true
|
100
107
|
task.rspec_opts = "-Ifoo"
|
101
|
-
spec_command.
|
108
|
+
spec_command.should =~ /this.rb that.rb -- -Ifoo/
|
102
109
|
end
|
103
110
|
end
|
104
111
|
context "with rcov=false (default)" do
|
@@ -123,5 +130,19 @@ module RSpec::Core
|
|
123
130
|
end
|
124
131
|
end
|
125
132
|
|
133
|
+
context "with SPEC=path/to/file" do
|
134
|
+
before do
|
135
|
+
@orig_spec = ENV["SPEC"]
|
136
|
+
ENV["SPEC"] = "path/to/file"
|
137
|
+
end
|
138
|
+
|
139
|
+
after do
|
140
|
+
ENV["SPEC"] = @orig_spec
|
141
|
+
end
|
142
|
+
|
143
|
+
it "sets files to run" do
|
144
|
+
task.__send__(:files_to_run).should eq(["path/to/file"])
|
145
|
+
end
|
146
|
+
end
|
126
147
|
end
|
127
148
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -23,18 +23,6 @@ class NullObject
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
module RSpec::Core
|
27
|
-
class SandboxedExampleGroup < ExampleGroup
|
28
|
-
def self.run(reporter=nil)
|
29
|
-
@orig_mock_space = RSpec::Mocks::space
|
30
|
-
RSpec::Mocks::space = RSpec::Mocks::Space.new
|
31
|
-
super(reporter || NullObject.new)
|
32
|
-
ensure
|
33
|
-
RSpec::Mocks::space = @orig_mock_space
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
26
|
def sandboxed(&block)
|
39
27
|
begin
|
40
28
|
@orig_config = RSpec.configuration
|
@@ -48,13 +36,25 @@ def sandboxed(&block)
|
|
48
36
|
object.extend(RSpec::Core::ObjectExtensions)
|
49
37
|
object.extend(RSpec::Core::SharedExampleGroup)
|
50
38
|
|
51
|
-
|
52
|
-
|
53
|
-
|
39
|
+
(class << RSpec::Core::ExampleGroup; self; end).class_eval do
|
40
|
+
alias_method :orig_run, :run
|
41
|
+
def run(reporter=nil)
|
42
|
+
@orig_mock_space = RSpec::Mocks::space
|
43
|
+
RSpec::Mocks::space = RSpec::Mocks::Space.new
|
44
|
+
orig_run(reporter || NullObject.new)
|
45
|
+
ensure
|
46
|
+
RSpec::Mocks::space = @orig_mock_space
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
54
50
|
object.instance_eval(&block)
|
55
51
|
ensure
|
56
|
-
RSpec::Core::
|
57
|
-
|
52
|
+
(class << RSpec::Core::ExampleGroup; self; end).class_eval do
|
53
|
+
remove_method :run
|
54
|
+
alias_method :run, :orig_run
|
55
|
+
remove_method :orig_run
|
56
|
+
end
|
57
|
+
|
58
58
|
RSpec.instance_variable_set(:@configuration, @orig_config)
|
59
59
|
RSpec.instance_variable_set(:@world, @orig_world)
|
60
60
|
end
|
data/specs.watchr
CHANGED
@@ -34,12 +34,11 @@ end
|
|
34
34
|
watch('^spec/(.*)_spec\.rb') { |m| run_spec_matching(m[1]) }
|
35
35
|
watch('^lib/(.*)\.rb') { |m| run_spec_matching(m[1]) }
|
36
36
|
watch('^spec/spec_helper\.rb') { run_all_specs }
|
37
|
-
watch('^spec/support/.*\.rb')
|
37
|
+
watch('^spec/support/.*\.rb') { run_all_specs }
|
38
38
|
|
39
39
|
# --------------------------------------------------
|
40
40
|
# Signal Handling
|
41
41
|
# --------------------------------------------------
|
42
|
-
|
43
42
|
def no_int_for_you
|
44
43
|
@sent_an_int = nil
|
45
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: true
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 2
|
8
7
|
- 0
|
9
8
|
- 0
|
10
|
-
|
11
|
-
version: 2.0.0.rc
|
9
|
+
version: 2.0.0
|
12
10
|
platform: ruby
|
13
11
|
authors:
|
14
12
|
- Chad Humphries
|
@@ -17,133 +15,123 @@ autorequire:
|
|
17
15
|
bindir: bin
|
18
16
|
cert_chain: []
|
19
17
|
|
20
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-10 00:00:00 -05:00
|
21
19
|
default_executable: rspec
|
22
20
|
dependencies:
|
23
21
|
- !ruby/object:Gem::Dependency
|
24
|
-
|
22
|
+
name: rspec-expectations
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
26
|
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 7712058
|
30
28
|
segments:
|
31
29
|
- 2
|
32
30
|
- 0
|
33
31
|
- 0
|
34
|
-
|
35
|
-
version: 2.0.0.rc
|
36
|
-
requirement: *id001
|
32
|
+
version: 2.0.0
|
37
33
|
type: :development
|
38
|
-
name: rspec-expectations
|
39
34
|
prerelease: false
|
35
|
+
version_requirements: *id001
|
40
36
|
- !ruby/object:Gem::Dependency
|
41
|
-
|
37
|
+
name: rspec-mocks
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
40
|
requirements:
|
44
41
|
- - ">="
|
45
42
|
- !ruby/object:Gem::Version
|
46
|
-
hash: 7712058
|
47
43
|
segments:
|
48
44
|
- 2
|
49
45
|
- 0
|
50
46
|
- 0
|
51
|
-
|
52
|
-
version: 2.0.0.rc
|
53
|
-
requirement: *id002
|
47
|
+
version: 2.0.0
|
54
48
|
type: :development
|
55
|
-
name: rspec-mocks
|
56
49
|
prerelease: false
|
50
|
+
version_requirements: *id002
|
57
51
|
- !ruby/object:Gem::Dependency
|
58
|
-
|
52
|
+
name: cucumber
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
59
54
|
none: false
|
60
55
|
requirements:
|
61
56
|
- - ">="
|
62
57
|
- !ruby/object:Gem::Version
|
63
|
-
hash: 13
|
64
58
|
segments:
|
65
59
|
- 0
|
66
60
|
- 5
|
67
61
|
- 3
|
68
62
|
version: 0.5.3
|
69
|
-
requirement: *id003
|
70
63
|
type: :development
|
71
|
-
name: cucumber
|
72
64
|
prerelease: false
|
65
|
+
version_requirements: *id003
|
73
66
|
- !ruby/object:Gem::Dependency
|
74
|
-
|
67
|
+
name: autotest
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
75
69
|
none: false
|
76
70
|
requirements:
|
77
71
|
- - ">="
|
78
72
|
- !ruby/object:Gem::Version
|
79
|
-
hash: 37
|
80
73
|
segments:
|
81
74
|
- 4
|
82
75
|
- 2
|
83
76
|
- 9
|
84
77
|
version: 4.2.9
|
85
|
-
requirement: *id004
|
86
78
|
type: :development
|
87
|
-
name: autotest
|
88
79
|
prerelease: false
|
80
|
+
version_requirements: *id004
|
89
81
|
- !ruby/object:Gem::Dependency
|
90
|
-
|
82
|
+
name: syntax
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
91
84
|
none: false
|
92
85
|
requirements:
|
93
86
|
- - ">="
|
94
87
|
- !ruby/object:Gem::Version
|
95
|
-
hash: 23
|
96
88
|
segments:
|
97
89
|
- 1
|
98
90
|
- 0
|
99
91
|
- 0
|
100
92
|
version: 1.0.0
|
101
|
-
requirement: *id005
|
102
93
|
type: :development
|
103
|
-
name: syntax
|
104
94
|
prerelease: false
|
95
|
+
version_requirements: *id005
|
105
96
|
- !ruby/object:Gem::Dependency
|
106
|
-
|
97
|
+
name: flexmock
|
98
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
107
99
|
none: false
|
108
100
|
requirements:
|
109
101
|
- - ">="
|
110
102
|
- !ruby/object:Gem::Version
|
111
|
-
hash: 3
|
112
103
|
segments:
|
113
104
|
- 0
|
114
105
|
version: "0"
|
115
|
-
requirement: *id006
|
116
106
|
type: :development
|
117
|
-
name: flexmock
|
118
107
|
prerelease: false
|
108
|
+
version_requirements: *id006
|
119
109
|
- !ruby/object:Gem::Dependency
|
120
|
-
|
110
|
+
name: mocha
|
111
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
112
|
none: false
|
122
113
|
requirements:
|
123
114
|
- - ">="
|
124
115
|
- !ruby/object:Gem::Version
|
125
|
-
hash: 3
|
126
116
|
segments:
|
127
117
|
- 0
|
128
118
|
version: "0"
|
129
|
-
requirement: *id007
|
130
119
|
type: :development
|
131
|
-
name: mocha
|
132
120
|
prerelease: false
|
121
|
+
version_requirements: *id007
|
133
122
|
- !ruby/object:Gem::Dependency
|
134
|
-
|
123
|
+
name: rr
|
124
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
135
125
|
none: false
|
136
126
|
requirements:
|
137
127
|
- - ">="
|
138
128
|
- !ruby/object:Gem::Version
|
139
|
-
hash: 3
|
140
129
|
segments:
|
141
130
|
- 0
|
142
131
|
version: "0"
|
143
|
-
requirement: *id008
|
144
132
|
type: :development
|
145
|
-
name: rr
|
146
133
|
prerelease: false
|
134
|
+
version_requirements: *id008
|
147
135
|
description: RSpec runner and example groups
|
148
136
|
email: dchelimsky@gmail.com;chad.humphries@gmail.com
|
149
137
|
executables:
|
@@ -183,8 +171,8 @@ files:
|
|
183
171
|
- features/formatters/custom_formatter.feature
|
184
172
|
- features/hooks/around_hooks.feature
|
185
173
|
- features/hooks/before_and_after_hooks.feature
|
186
|
-
- features/hooks/described_class.feature
|
187
174
|
- features/hooks/halt.feature
|
175
|
+
- features/metadata/described_class.feature
|
188
176
|
- features/mock_framework_integration/use_flexmock.feature
|
189
177
|
- features/mock_framework_integration/use_mocha.feature
|
190
178
|
- features/mock_framework_integration/use_rr.feature
|
@@ -305,7 +293,7 @@ licenses: []
|
|
305
293
|
post_install_message: |
|
306
294
|
**************************************************
|
307
295
|
|
308
|
-
Thank you for installing rspec-core-2.0.0
|
296
|
+
Thank you for installing rspec-core-2.0.0
|
309
297
|
|
310
298
|
Please be sure to look at Upgrade.markdown to see what might have changed
|
311
299
|
since the last release.
|
@@ -321,28 +309,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
321
309
|
requirements:
|
322
310
|
- - ">="
|
323
311
|
- !ruby/object:Gem::Version
|
324
|
-
hash:
|
312
|
+
hash: -3850690917648988866
|
325
313
|
segments:
|
326
314
|
- 0
|
327
315
|
version: "0"
|
328
316
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
329
317
|
none: false
|
330
318
|
requirements:
|
331
|
-
- - "
|
319
|
+
- - ">="
|
332
320
|
- !ruby/object:Gem::Version
|
333
|
-
hash:
|
321
|
+
hash: -3850690917648988866
|
334
322
|
segments:
|
335
|
-
-
|
336
|
-
|
337
|
-
- 1
|
338
|
-
version: 1.3.1
|
323
|
+
- 0
|
324
|
+
version: "0"
|
339
325
|
requirements: []
|
340
326
|
|
341
327
|
rubyforge_project: rspec
|
342
328
|
rubygems_version: 1.3.7
|
343
329
|
signing_key:
|
344
330
|
specification_version: 3
|
345
|
-
summary: rspec-core-2.0.0
|
331
|
+
summary: rspec-core-2.0.0
|
346
332
|
test_files:
|
347
333
|
- features/README.markdown
|
348
334
|
- features/command_line/configure.feature
|
@@ -362,8 +348,8 @@ test_files:
|
|
362
348
|
- features/formatters/custom_formatter.feature
|
363
349
|
- features/hooks/around_hooks.feature
|
364
350
|
- features/hooks/before_and_after_hooks.feature
|
365
|
-
- features/hooks/described_class.feature
|
366
351
|
- features/hooks/halt.feature
|
352
|
+
- features/metadata/described_class.feature
|
367
353
|
- features/mock_framework_integration/use_flexmock.feature
|
368
354
|
- features/mock_framework_integration/use_mocha.feature
|
369
355
|
- features/mock_framework_integration/use_rr.feature
|