rspec-core 2.0.0.beta.22 → 2.0.0.rc
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 -2
- data/{History.md → History.markdown} +24 -2
- data/Rakefile +1 -0
- data/Upgrade.markdown +36 -3
- data/bin/rspec +1 -2
- data/features/command_line/configure.feature +4 -4
- data/features/command_line/example_name_option.feature +17 -3
- data/features/command_line/exit_status.feature +13 -28
- data/features/command_line/line_number_appended_to_path.feature +12 -16
- data/features/command_line/line_number_option.feature +4 -5
- data/features/command_line/rake_task.feature +68 -0
- data/features/configuration/custom_settings.feature +2 -4
- data/features/configuration/fail_fast.feature +77 -0
- data/features/configuration/read_options_from_file.feature +2 -5
- data/features/example_groups/basic_structure.feature +54 -0
- data/features/example_groups/shared_example_group.feature +38 -27
- data/features/filtering/exclusion_filters.feature +40 -4
- data/features/filtering/inclusion_filters.feature +36 -27
- data/features/filtering/run_all_when_everything_filtered.feature +46 -0
- data/features/hooks/before_and_after_hooks.feature +21 -1
- data/features/pending/pending_examples.feature +24 -5
- data/lib/rspec/autorun.rb +2 -0
- data/lib/rspec/core.rb +6 -4
- data/lib/rspec/core/configuration.rb +69 -23
- data/lib/rspec/core/configuration_options.rb +1 -0
- data/lib/rspec/core/example.rb +0 -1
- data/lib/rspec/core/example_group.rb +23 -8
- data/lib/rspec/core/formatters/base_formatter.rb +14 -4
- data/lib/rspec/core/formatters/base_text_formatter.rb +2 -0
- data/lib/rspec/core/formatters/documentation_formatter.rb +2 -0
- data/lib/rspec/core/formatters/progress_formatter.rb +1 -0
- data/lib/rspec/core/metadata.rb +18 -11
- data/lib/rspec/core/option_parser.rb +6 -1
- data/lib/rspec/core/rake_task.rb +10 -10
- data/lib/rspec/core/runner.rb +20 -1
- data/lib/rspec/core/subject.rb +26 -3
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/world.rb +2 -1
- data/spec/autotest/failed_results_re_spec.rb +1 -1
- data/spec/rspec/core/configuration_spec.rb +13 -0
- data/spec/rspec/core/example_group_spec.rb +107 -26
- data/spec/rspec/core/example_spec.rb +11 -24
- data/spec/rspec/core/formatters/base_formatter_spec.rb +17 -1
- data/spec/rspec/core/formatters/base_text_formatter_spec.rb +6 -5
- data/spec/rspec/core/formatters/documentation_formatter_spec.rb +3 -2
- data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +25 -22
- data/spec/rspec/core/formatters/html_formatted-1.8.7.html +23 -20
- data/spec/rspec/core/formatters/html_formatted-1.9.1.html +25 -22
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +25 -2
- data/spec/rspec/core/formatters/html_formatter_spec.rb +10 -2
- data/spec/rspec/core/formatters/progress_formatter_spec.rb +1 -0
- data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +1 -0
- data/spec/rspec/core/hooks_filtering_spec.rb +5 -5
- data/spec/rspec/core/hooks_spec.rb +4 -4
- data/spec/rspec/core/metadata_spec.rb +20 -0
- data/spec/rspec/core/option_parser_spec.rb +16 -0
- data/spec/rspec/core/rake_task_spec.rb +0 -1
- data/spec/rspec/core/reporter_spec.rb +1 -1
- data/spec/rspec/core/runner_spec.rb +18 -0
- data/spec/rspec/core/shared_example_group_spec.rb +2 -2
- data/spec/spec_helper.rb +14 -3
- metadata +54 -45
- data/.rspec +0 -1
- data/features/example_groups/describe_aliases.feature +0 -25
- data/features/example_groups/nested_groups.feature +0 -44
- data/lib/rspec/core/around_proxy.rb +0 -14
- data/lib/rspec/core/formatters.rb +0 -8
@@ -40,26 +40,13 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
describe "#run" do
|
43
|
-
context "with RSpec.wants_to_quit=true" do
|
44
|
-
it "returns without starting the example" do
|
45
|
-
RSpec.stub(:wants_to_quit) { true }
|
46
|
-
group = RSpec::Core::ExampleGroup.describe
|
47
|
-
example = group.example('example') {}
|
48
|
-
|
49
|
-
reporter = double('reporter').as_null_object
|
50
|
-
reporter.should_not_receive(:example_started)
|
51
|
-
|
52
|
-
example.run(group.new,reporter)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
43
|
it "runs after(:each) when the example passes" do
|
57
44
|
after_run = false
|
58
45
|
group = RSpec::Core::ExampleGroup.describe do
|
59
46
|
after(:each) { after_run = true }
|
60
47
|
example('example') { 1.should == 1 }
|
61
48
|
end
|
62
|
-
group.
|
49
|
+
group.run
|
63
50
|
after_run.should be_true, "expected after(:each) to be run"
|
64
51
|
end
|
65
52
|
|
@@ -69,7 +56,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
69
56
|
after(:each) { after_run = true }
|
70
57
|
example('example') { 1.should == 2 }
|
71
58
|
end
|
72
|
-
group.
|
59
|
+
group.run
|
73
60
|
after_run.should be_true, "expected after(:each) to be run"
|
74
61
|
end
|
75
62
|
|
@@ -79,7 +66,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
79
66
|
after(:each) { after_run = true }
|
80
67
|
example('example') { raise "this error" }
|
81
68
|
end
|
82
|
-
group.
|
69
|
+
group.run
|
83
70
|
after_run.should be_true, "expected after(:each) to be run"
|
84
71
|
end
|
85
72
|
|
@@ -91,7 +78,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
91
78
|
after(:each) { raise "FOO" }
|
92
79
|
example('example') { 1.should == 1 }
|
93
80
|
end
|
94
|
-
group.
|
81
|
+
group.run
|
95
82
|
after_run.should be_true, "expected after(:each) to be run"
|
96
83
|
end
|
97
84
|
|
@@ -100,7 +87,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
100
87
|
group.after(:each) { raise "FOO" }
|
101
88
|
example = group.example('example') { 1.should == 1 }
|
102
89
|
|
103
|
-
group.
|
90
|
+
group.run
|
104
91
|
|
105
92
|
example.metadata[:execution_result][:exception_encountered].message.should == "FOO"
|
106
93
|
end
|
@@ -119,7 +106,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
119
106
|
example { results << "example" }
|
120
107
|
end
|
121
108
|
|
122
|
-
group.
|
109
|
+
group.run
|
123
110
|
results.should eq([
|
124
111
|
"around (before)",
|
125
112
|
"before",
|
@@ -148,7 +135,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
148
135
|
group = RSpec::Core::ExampleGroup.describe do
|
149
136
|
example { pending }
|
150
137
|
end
|
151
|
-
group.
|
138
|
+
group.run
|
152
139
|
group.examples.first.should be_pending
|
153
140
|
end
|
154
141
|
end
|
@@ -159,7 +146,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
159
146
|
before(:each) { pending }
|
160
147
|
example {}
|
161
148
|
end
|
162
|
-
group.
|
149
|
+
group.run
|
163
150
|
group.examples.first.should be_pending
|
164
151
|
end
|
165
152
|
end
|
@@ -170,7 +157,7 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
170
157
|
around(:each) { pending }
|
171
158
|
example {}
|
172
159
|
end
|
173
|
-
group.
|
160
|
+
group.run
|
174
161
|
group.examples.first.should be_pending
|
175
162
|
end
|
176
163
|
end
|
@@ -181,10 +168,10 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
181
168
|
before(:all) { pending }
|
182
169
|
example {}
|
183
170
|
end
|
184
|
-
group.
|
171
|
+
group.run
|
185
172
|
group.examples.first.should be_pending
|
186
173
|
expect do
|
187
|
-
group.
|
174
|
+
group.run
|
188
175
|
end.to raise_error(/undefined method `metadata'/)
|
189
176
|
end
|
190
177
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec/core/formatters/base_formatter'
|
2
3
|
|
3
4
|
describe RSpec::Core::Formatters::BaseFormatter do
|
4
5
|
|
@@ -17,4 +18,19 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
21
|
+
describe "read_failed_line" do
|
22
|
+
it "deals gracefully with a heterogeneous language stack trace" do
|
23
|
+
exception = mock(:Exception, :backtrace => [
|
24
|
+
"at Object.prototypeMethod (foo:331:18)",
|
25
|
+
"at Array.forEach (native)",
|
26
|
+
"at a_named_javascript_function (/some/javascript/file.js:39:5)",
|
27
|
+
"/some/line/of/ruby.rb:14"
|
28
|
+
])
|
29
|
+
example = mock(:Example, :file_path => __FILE__)
|
30
|
+
lambda {
|
31
|
+
formatter.send(:read_failed_line, exception, example)
|
32
|
+
}.should_not raise_error
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
20
36
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec/core/formatters/base_text_formatter'
|
2
3
|
|
3
4
|
module RSpec::Core::Formatters
|
4
5
|
|
@@ -32,7 +33,7 @@ module RSpec::Core::Formatters
|
|
32
33
|
before { RSpec.configuration.stub(:color_enabled?) { false } }
|
33
34
|
|
34
35
|
def run_all_and_dump_failures
|
35
|
-
group.
|
36
|
+
group.run(formatter)
|
36
37
|
formatter.dump_failures
|
37
38
|
end
|
38
39
|
|
@@ -133,7 +134,7 @@ module RSpec::Core::Formatters
|
|
133
134
|
group = RSpec::Core::ExampleGroup.describe("group") do
|
134
135
|
example("example")
|
135
136
|
end
|
136
|
-
group.
|
137
|
+
group.run(double('reporter').as_null_object)
|
137
138
|
group.examples
|
138
139
|
end
|
139
140
|
end
|
@@ -145,14 +146,14 @@ module RSpec::Core::Formatters
|
|
145
146
|
|
146
147
|
it "prints the time" do
|
147
148
|
formatter.dump_profile
|
148
|
-
output.string.should =~ /0\.\d+ seconds/
|
149
|
+
output.string.should =~ /0(\.\d+)? seconds/
|
149
150
|
end
|
150
151
|
|
151
152
|
it "prints the path" do
|
152
153
|
formatter.dump_profile
|
153
154
|
filename = __FILE__.split(File::SEPARATOR).last
|
154
155
|
|
155
|
-
output.string.should =~ /#{filename}\:
|
156
|
+
output.string.should =~ /#{filename}\:135/
|
156
157
|
end
|
157
158
|
end
|
158
159
|
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec/core/formatters/documentation_formatter'
|
2
3
|
|
3
4
|
module RSpec::Core::Formatters
|
4
5
|
describe DocumentationFormatter do
|
@@ -46,7 +47,7 @@ module RSpec::Core::Formatters
|
|
46
47
|
context2.example("nested example 2.1"){}
|
47
48
|
context2.example("nested example 2.2"){}
|
48
49
|
|
49
|
-
group.
|
50
|
+
group.run(RSpec::Core::Reporter.new(formatter))
|
50
51
|
|
51
52
|
output.string.should eql "
|
52
53
|
root
|
@@ -212,17 +212,19 @@ a {
|
|
212
212
|
<span class="failed_spec_name">fails</span>
|
213
213
|
<div class="failure" id="failure_0">
|
214
214
|
<div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
|
215
|
-
<div class="backtrace"><pre
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
/
|
223
|
-
/
|
224
|
-
|
225
|
-
|
215
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:19
|
216
|
+
./spec/spec_helper.rb:31:in `run'
|
217
|
+
./spec/spec_helper.rb:31:in `run'
|
218
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
219
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
220
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
221
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
222
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
223
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45
|
224
|
+
./spec/spec_helper.rb:82
|
225
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
226
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
227
|
+
./spec/spec_helper.rb:82
|
226
228
|
:1</pre></div>
|
227
229
|
<pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=></span> <span class="ident">e</span>
|
228
230
|
<span class="linenum">12</span> <span class="keyword">end</span>
|
@@ -254,17 +256,18 @@ expected 2
|
|
254
256
|
|
255
257
|
(compared using ==)
|
256
258
|
</pre></div>
|
257
|
-
<div class="backtrace"><pre
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
/
|
265
|
-
|
266
|
-
|
267
|
-
|
259
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34
|
260
|
+
./spec/spec_helper.rb:31:in `run'
|
261
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
262
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
263
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
264
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
265
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
266
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45
|
267
|
+
./spec/spec_helper.rb:82
|
268
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
269
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
270
|
+
./spec/spec_helper.rb:82
|
268
271
|
:1</pre></div>
|
269
272
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
|
270
273
|
<span class="linenum">28</span>
|
@@ -213,16 +213,18 @@ a {
|
|
213
213
|
<div class="failure" id="failure_0">
|
214
214
|
<div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
|
215
215
|
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:19
|
216
|
-
./spec/
|
217
|
-
./spec/
|
218
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
219
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
220
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
221
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
222
|
-
./spec/
|
223
|
-
./spec/
|
224
|
-
./spec/spec_helper.rb:
|
225
|
-
./spec/spec_helper.rb:
|
216
|
+
./spec/spec_helper.rb:31:in `run'
|
217
|
+
./spec/spec_helper.rb:31:in `run'
|
218
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
219
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
220
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
221
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
222
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
223
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45
|
224
|
+
./spec/spec_helper.rb:82
|
225
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
226
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
227
|
+
./spec/spec_helper.rb:82</pre></div>
|
226
228
|
<pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=></span> <span class="ident">e</span>
|
227
229
|
<span class="linenum">12</span> <span class="keyword">end</span>
|
228
230
|
<span class="offending"><span class="linenum">13</span> <span class="keyword">raise</span> <span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Core</span><span class="punct">::</span><span class="constant">PendingExampleFixedError</span><span class="punct">.</span><span class="ident">new</span> <span class="keyword">if</span> <span class="ident">result</span></span>
|
@@ -254,16 +256,17 @@ expected 2
|
|
254
256
|
(compared using ==)
|
255
257
|
</pre></div>
|
256
258
|
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34
|
257
|
-
./spec/
|
258
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
259
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
260
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
261
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
262
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
263
|
-
./spec/
|
264
|
-
./spec/spec_helper.rb:
|
265
|
-
./spec/spec_helper.rb:
|
266
|
-
./spec/spec_helper.rb:
|
259
|
+
./spec/spec_helper.rb:31:in `run'
|
260
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
261
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
262
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
263
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
264
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
265
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45
|
266
|
+
./spec/spec_helper.rb:82
|
267
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
268
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
269
|
+
./spec/spec_helper.rb:82</pre></div>
|
267
270
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
|
268
271
|
<span class="linenum">28</span>
|
269
272
|
<span class="offending"><span class="linenum">29</span> <span class="keyword">raise</span><span class="punct">(</span><span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Expectations</span><span class="punct">::</span><span class="constant">ExpectationNotMetError</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">message</span><span class="punct">))</span></span>
|
@@ -212,17 +212,19 @@ a {
|
|
212
212
|
<span class="failed_spec_name">fails</span>
|
213
213
|
<div class="failure" id="failure_0">
|
214
214
|
<div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
|
215
|
-
<div class="backtrace"><pre
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
/
|
223
|
-
/
|
224
|
-
|
225
|
-
|
215
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:19:in `block (3 levels) in <top (required)>'
|
216
|
+
./spec/spec_helper.rb:31:in `run'
|
217
|
+
./spec/spec_helper.rb:31:in `run'
|
218
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
|
219
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
|
220
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
221
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
|
222
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
223
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'
|
224
|
+
./spec/spec_helper.rb:82:in `block (3 levels) in <top (required)>'
|
225
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
226
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
227
|
+
./spec/spec_helper.rb:82:in `block (2 levels) in <top (required)>'</pre></div>
|
226
228
|
<pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=></span> <span class="ident">e</span>
|
227
229
|
<span class="linenum">12</span> <span class="keyword">end</span>
|
228
230
|
<span class="offending"><span class="linenum">13</span> <span class="keyword">raise</span> <span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Core</span><span class="punct">::</span><span class="constant">PendingExampleFixedError</span><span class="punct">.</span><span class="ident">new</span> <span class="keyword">if</span> <span class="ident">result</span></span>
|
@@ -253,17 +255,18 @@ expected 2
|
|
253
255
|
|
254
256
|
(compared using ==)
|
255
257
|
</pre></div>
|
256
|
-
<div class="backtrace"><pre
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
/
|
264
|
-
|
265
|
-
|
266
|
-
|
258
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34:in `block (2 levels) in <top (required)>'
|
259
|
+
./spec/spec_helper.rb:31:in `run'
|
260
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
|
261
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
|
262
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
263
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
|
264
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
265
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'
|
266
|
+
./spec/spec_helper.rb:82:in `block (3 levels) in <top (required)>'
|
267
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
268
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
269
|
+
./spec/spec_helper.rb:82:in `block (2 levels) in <top (required)>'</pre></div>
|
267
270
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
|
268
271
|
<span class="linenum">28</span>
|
269
272
|
<span class="offending"><span class="linenum">29</span> <span class="keyword">raise</span><span class="punct">(</span><span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Expectations</span><span class="punct">::</span><span class="constant">ExpectationNotMetError</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">message</span><span class="punct">))</span></span>
|
@@ -212,7 +212,19 @@ a {
|
|
212
212
|
<span class="failed_spec_name">fails</span>
|
213
213
|
<div class="failure" id="failure_0">
|
214
214
|
<div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
|
215
|
-
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:19:in `block (3 levels) in <top (required)>'
|
215
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:19:in `block (3 levels) in <top (required)>'
|
216
|
+
./spec/spec_helper.rb:31:in `run'
|
217
|
+
./spec/spec_helper.rb:31:in `run'
|
218
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
|
219
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
|
220
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
221
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
|
222
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
223
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'
|
224
|
+
./spec/spec_helper.rb:82:in `block (3 levels) in <top (required)>'
|
225
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
226
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
227
|
+
./spec/spec_helper.rb:82:in `block (2 levels) in <top (required)>'</pre></div>
|
216
228
|
<pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=></span> <span class="ident">e</span>
|
217
229
|
<span class="linenum">12</span> <span class="keyword">end</span>
|
218
230
|
<span class="offending"><span class="linenum">13</span> <span class="keyword">raise</span> <span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Core</span><span class="punct">::</span><span class="constant">PendingExampleFixedError</span><span class="punct">.</span><span class="ident">new</span> <span class="keyword">if</span> <span class="ident">result</span></span>
|
@@ -243,7 +255,18 @@ expected 2
|
|
243
255
|
|
244
256
|
(compared using ==)
|
245
257
|
</pre></div>
|
246
|
-
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34:in `block (2 levels) in <top (required)>'
|
258
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34:in `block (2 levels) in <top (required)>'
|
259
|
+
./spec/spec_helper.rb:31:in `run'
|
260
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
|
261
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
|
262
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
263
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
|
264
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
265
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'
|
266
|
+
./spec/spec_helper.rb:82:in `block (3 levels) in <top (required)>'
|
267
|
+
./spec/spec_helper.rb:54:in `instance_eval'
|
268
|
+
./spec/spec_helper.rb:54:in `sandboxed'
|
269
|
+
./spec/spec_helper.rb:82:in `block (2 levels) in <top (required)>'</pre></div>
|
247
270
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
|
248
271
|
<span class="linenum">28</span>
|
249
272
|
<span class="offending"><span class="linenum">29</span> <span class="keyword">raise</span><span class="punct">(</span><span class="constant">RSpec</span><span class="punct">::</span><span class="constant">Expectations</span><span class="punct">::</span><span class="constant">ExpectationNotMetError</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="ident">message</span><span class="punct">))</span></span>
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'rspec/core/formatters/html_formatter'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
4
5
|
module RSpec
|
@@ -47,14 +48,21 @@ module RSpec
|
|
47
48
|
# end
|
48
49
|
# end
|
49
50
|
|
51
|
+
def extract_backtrace_from(doc)
|
52
|
+
backtrace = doc.search("div.backtrace").
|
53
|
+
collect {|e| e.at("pre").inner_html}.
|
54
|
+
collect {|e| e.split("\n")}.flatten.
|
55
|
+
select {|e| e =~ /formatter_specs\.rb/}
|
56
|
+
end
|
57
|
+
|
50
58
|
it "produces HTML identical to the one we designed manually" do
|
51
59
|
Dir.chdir(root) do
|
52
60
|
actual_doc = Nokogiri::HTML(generated_html)
|
53
|
-
actual_backtraces = actual_doc
|
61
|
+
actual_backtraces = extract_backtrace_from(actual_doc)
|
54
62
|
actual_doc.css("div.backtrace").remove
|
55
63
|
|
56
64
|
expected_doc = Nokogiri::HTML(expected_html)
|
57
|
-
expected_backtraces = expected_doc
|
65
|
+
expected_backtraces = extract_backtrace_from(expected_doc)
|
58
66
|
expected_doc.search("div.backtrace").remove
|
59
67
|
|
60
68
|
actual_doc.inner_html.should == expected_doc.inner_html
|