rspec-core 2.3.1 → 2.4.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 (48) hide show
  1. data/History.markdown +22 -0
  2. data/Rakefile +2 -2
  3. data/features/command_line/README.md +6 -0
  4. data/features/command_line/configure.feature +16 -14
  5. data/features/command_line/example_name_option.feature +3 -3
  6. data/features/command_line/format_option.feature +73 -0
  7. data/features/command_line/line_number_appended_to_path.feature +1 -1
  8. data/features/command_line/line_number_option.feature +2 -2
  9. data/features/command_line/tag.feature +7 -7
  10. data/features/configuration/read_options_from_file.feature +29 -16
  11. data/features/hooks/before_and_after_hooks.feature +9 -14
  12. data/features/hooks/filtering.feature +174 -0
  13. data/features/step_definitions/additional_cli_steps.rb +4 -0
  14. data/features/subject/attribute_of_subject.feature +68 -18
  15. data/lib/rspec/core/command_line_configuration.rb +16 -16
  16. data/lib/rspec/core/configuration.rb +14 -15
  17. data/lib/rspec/core/configuration_options.rb +46 -22
  18. data/lib/rspec/core/example.rb +16 -6
  19. data/lib/rspec/core/example_group.rb +11 -11
  20. data/lib/rspec/core/formatters/base_text_formatter.rb +2 -1
  21. data/lib/rspec/core/hooks.rb +8 -8
  22. data/lib/rspec/core/option_parser.rb +13 -3
  23. data/lib/rspec/core/pending.rb +2 -0
  24. data/lib/rspec/core/rake_task.rb +1 -1
  25. data/lib/rspec/core/subject.rb +2 -0
  26. data/lib/rspec/core/version.rb +1 -1
  27. data/lib/rspec/core/world.rb +2 -2
  28. data/spec/rspec/core/configuration_options_spec.rb +147 -151
  29. data/spec/rspec/core/configuration_spec.rb +67 -19
  30. data/spec/rspec/core/example_spec.rb +12 -10
  31. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +25 -1
  32. data/spec/rspec/core/formatters/html_formatted-1.8.6.html +5 -5
  33. data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +37 -24
  34. data/spec/rspec/core/formatters/html_formatted-1.8.7.html +5 -5
  35. data/spec/rspec/core/formatters/html_formatted-1.9.1.html +5 -5
  36. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +5 -5
  37. data/spec/rspec/core/formatters/html_formatter_spec.rb +7 -7
  38. data/spec/rspec/core/formatters/text_mate_formatted-1.8.6.html +19 -19
  39. data/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +51 -33
  40. data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +19 -19
  41. data/spec/rspec/core/formatters/text_mate_formatted-1.9.1.html +26 -26
  42. data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +26 -26
  43. data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +7 -7
  44. data/spec/rspec/core/hooks_filtering_spec.rb +54 -0
  45. data/spec/rspec/core/option_parser_spec.rb +53 -17
  46. data/spec/rspec/core/rake_task_spec.rb +21 -0
  47. data/spec/spec_helper.rb +1 -1
  48. metadata +14 -8
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'tmpdir'
2
3
 
3
4
  module RSpec::Core
4
5
 
@@ -350,47 +351,71 @@ module RSpec::Core
350
351
  end
351
352
 
352
353
  describe 'formatter=' do
354
+ it "delegates to add_formatter (better API for user-facing configuration)" do
355
+ config.should_receive(:add_formatter).with('these','options')
356
+ config.add_formatter('these','options')
357
+ end
358
+ end
359
+
360
+ describe "add_formatter" do
361
+
362
+ it "adds to the list of formatters" do
363
+ config.add_formatter :documentation
364
+ config.formatters.first.should be_an_instance_of(Formatters::DocumentationFormatter)
365
+ end
353
366
 
354
- it "sets formatter_to_use based on name" do
355
- config.formatter = :documentation
356
- config.formatter.should be_an_instance_of(Formatters::DocumentationFormatter)
357
- config.formatter = 'documentation'
358
- config.formatter.should be_an_instance_of(Formatters::DocumentationFormatter)
367
+ it "finds a formatter by name (w/ Symbol)" do
368
+ config.add_formatter :documentation
369
+ config.formatters.first.should be_an_instance_of(Formatters::DocumentationFormatter)
359
370
  end
360
371
 
361
- it "sets a formatter based on its class" do
372
+ it "finds a formatter by name (w/ String)" do
373
+ config.add_formatter 'documentation'
374
+ config.formatters.first.should be_an_instance_of(Formatters::DocumentationFormatter)
375
+ end
376
+
377
+ it "finds a formatter by class" do
362
378
  formatter_class = Class.new(Formatters::BaseTextFormatter)
363
- config.formatter = formatter_class
364
- config.formatter.should be_an_instance_of(formatter_class)
379
+ config.add_formatter formatter_class
380
+ config.formatters.first.should be_an_instance_of(formatter_class)
365
381
  end
366
382
 
367
- it "sets a formatter based on its class name" do
383
+ it "finds a formatter by class name" do
368
384
  Object.const_set("CustomFormatter", Class.new(Formatters::BaseFormatter))
369
- config.formatter = "CustomFormatter"
370
- config.formatter.should be_an_instance_of(CustomFormatter)
385
+ config.add_formatter "CustomFormatter"
386
+ config.formatters.first.should be_an_instance_of(CustomFormatter)
371
387
  end
372
388
 
373
- it "sets a formatter based on its class fully qualified name" do
389
+ it "finds a formatter by class fully qualified name" do
374
390
  RSpec.const_set("CustomFormatter", Class.new(Formatters::BaseFormatter))
375
- config.formatter = "RSpec::CustomFormatter"
376
- config.formatter.should be_an_instance_of(RSpec::CustomFormatter)
391
+ config.add_formatter "RSpec::CustomFormatter"
392
+ config.formatters.first.should be_an_instance_of(RSpec::CustomFormatter)
377
393
  end
378
394
 
379
- it "requires and sets a formatter based on its class fully qualified name" do
395
+ it "requires a formatter file based on its fully qualified name" do
380
396
  config.should_receive(:require).with('rspec/custom_formatter2') do
381
397
  RSpec.const_set("CustomFormatter2", Class.new(Formatters::BaseFormatter))
382
398
  end
383
- config.formatter = "RSpec::CustomFormatter2"
384
- config.formatter.should be_an_instance_of(RSpec::CustomFormatter2)
399
+ config.add_formatter "RSpec::CustomFormatter2"
400
+ config.formatters.first.should be_an_instance_of(RSpec::CustomFormatter2)
385
401
  end
386
402
 
387
403
  it "raises NameError if class is unresolvable" do
388
404
  config.should_receive(:require).with('rspec/custom_formatter3')
389
- lambda { config.formatter = "RSpec::CustomFormatter3" }.should raise_error(NameError)
405
+ lambda { config.add_formatter "RSpec::CustomFormatter3" }.should raise_error(NameError)
390
406
  end
391
407
 
392
408
  it "raises ArgumentError if formatter is unknown" do
393
- lambda { config.formatter = :progresss }.should raise_error(ArgumentError)
409
+ lambda { config.add_formatter :progresss }.should raise_error(ArgumentError)
410
+ end
411
+
412
+ context "with a 2nd arg defining the output" do
413
+ it "creates a file at that path and sets it as the output" do
414
+ path = File.join(Dir.tmpdir, 'output.txt')
415
+ config.add_formatter('doc', path)
416
+ config.formatters.first.output.should be_a(File)
417
+ config.formatters.first.output.path.should eq(path)
418
+ end
394
419
  end
395
420
 
396
421
  end
@@ -514,10 +539,33 @@ module RSpec::Core
514
539
  end
515
540
 
516
541
  describe "#debug=true" do
542
+ before do
543
+ if defined?(Debugger)
544
+ @orig_debugger = Debugger
545
+ Object.send(:remove_const, :Debugger)
546
+ else
547
+ @orig_debugger = nil
548
+ end
549
+ Object.const_set("Debugger", debugger)
550
+ end
551
+
552
+ after do
553
+ Object.send(:remove_const, :Debugger)
554
+ Object.const_set("Debugger", @orig_debugger) if @orig_debugger
555
+ end
556
+
557
+ let(:debugger) { double('Debugger').as_null_object }
558
+
517
559
  it "requires 'ruby-debug'" do
518
560
  config.should_receive(:require).with('ruby-debug')
519
561
  config.debug = true
520
562
  end
563
+
564
+ it "starts the debugger" do
565
+ config.stub(:require)
566
+ debugger.should_receive(:start)
567
+ config.debug = true
568
+ end
521
569
  end
522
570
 
523
571
  describe "#debug=false" do
@@ -122,39 +122,41 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
122
122
  end
123
123
 
124
124
  context "in before(:each)" do
125
- it "sets the example to pending" do
125
+ it "sets each example to pending" do
126
126
  group = RSpec::Core::ExampleGroup.describe do
127
127
  before(:each) { pending }
128
128
  example {}
129
+ example {}
129
130
  end
130
131
  group.run
131
132
  group.examples.first.should be_pending
133
+ group.examples.last.should be_pending
132
134
  end
133
135
  end
134
136
 
135
- context "in around(:each)" do
136
- it "sets the example to pending" do
137
+ context "in before(:all)" do
138
+ it "sets each example to pending" do
137
139
  group = RSpec::Core::ExampleGroup.describe do
138
- around(:each) { pending }
140
+ before(:all) { pending }
141
+ example {}
139
142
  example {}
140
143
  end
141
144
  group.run
142
145
  group.examples.first.should be_pending
146
+ group.examples.last.should be_pending
143
147
  end
144
148
  end
145
149
 
146
- context "in before(:all)" do
147
- pending "is not supported" do
150
+ context "in around(:each)" do
151
+ it "sets the example to pending" do
148
152
  group = RSpec::Core::ExampleGroup.describe do
149
- before(:all) { pending }
153
+ around(:each) { pending }
150
154
  example {}
151
155
  end
152
156
  group.run
153
157
  group.examples.first.should be_pending
154
- expect do
155
- group.run
156
- end.to raise_error(/undefined method `metadata'/)
157
158
  end
158
159
  end
160
+
159
161
  end
160
162
  end
@@ -46,6 +46,30 @@ module RSpec::Core::Formatters
46
46
  output.string.should =~ /(\s+)expected \"that\"\n\1 got \"this\"/m
47
47
  end
48
48
 
49
+ context "with an exception class other than RSpec" do
50
+ it "does not show the error class" do
51
+ group.example("example name") { raise NameError.new('foo') }
52
+ run_all_and_dump_failures
53
+ output.string.should =~ /NameError/m
54
+ end
55
+ end
56
+
57
+ context "with a failed expectation (rspec-expectations)" do
58
+ it "does not show the error class" do
59
+ group.example("example name") { "this".should eq("that") }
60
+ run_all_and_dump_failures
61
+ output.string.should_not =~ /RSpec/m
62
+ end
63
+ end
64
+
65
+ context "with a failed message expectation (rspec-mocks)" do
66
+ it "does not show the error class" do
67
+ group.example("example name") { "this".should_receive("that") }
68
+ run_all_and_dump_failures
69
+ output.string.should_not =~ /RSpec/m
70
+ end
71
+ end
72
+
49
73
  context 'for #share_examples_for' do
50
74
  it 'outputs the name and location' do
51
75
 
@@ -153,7 +177,7 @@ module RSpec::Core::Formatters
153
177
  formatter.dump_profile
154
178
  filename = __FILE__.split(File::SEPARATOR).last
155
179
 
156
- output.string.should =~ /#{filename}\:135/
180
+ output.string.should =~ /#{filename}\:#{__LINE__ - 21}/
157
181
  end
158
182
  end
159
183
  end
@@ -219,11 +219,11 @@ a {
219
219
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
220
220
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
221
221
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45</pre></div>
222
- <pre class="ruby"><code><span class="linenum">20</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
- <span class="linenum">21</span> <span class="keyword">end</span>
224
- <span class="offending"><span class="linenum">22</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>
225
- <span class="linenum">23</span> <span class="keyword">end</span>
226
- <span class="linenum">24</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
222
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
+ <span class="linenum">23</span> <span class="keyword">end</span>
224
+ <span class="offending"><span class="linenum">24</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>
225
+ <span class="linenum">25</span> <span class="keyword">end</span>
226
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
227
227
  </div>
228
228
  </dd>
229
229
  </dl>
@@ -184,7 +184,7 @@ a {
184
184
  <dt id="example_group_1">pending spec with no implementation</dt>
185
185
  <script type="text/javascript">makeYellow('rspec-header');</script>
186
186
  <script type="text/javascript">makeYellow('example_group_1');</script>
187
- <script type="text/javascript">moveProgressBar('20.0');</script>
187
+ <script type="text/javascript">moveProgressBar('14.2');</script>
188
188
  <dd class="spec not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
189
189
  </dl>
190
190
  </div>
@@ -198,7 +198,7 @@ a {
198
198
  <dt id="example_group_3">with content that would fail</dt>
199
199
  <script type="text/javascript">makeYellow('rspec-header');</script>
200
200
  <script type="text/javascript">makeYellow('example_group_3');</script>
201
- <script type="text/javascript">moveProgressBar('40.0');</script>
201
+ <script type="text/javascript">moveProgressBar('28.5');</script>
202
202
  <dd class="spec not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: No reason given)</span></dd>
203
203
  </dl>
204
204
  </div>
@@ -207,30 +207,24 @@ a {
207
207
  <dt id="example_group_4">with content that would pass</dt>
208
208
  <script type="text/javascript">makeRed('rspec-header');</script>
209
209
  <script type="text/javascript">makeRed('example_group_4');</script>
210
- <script type="text/javascript">moveProgressBar('60.0');</script>
210
+ <script type="text/javascript">moveProgressBar('42.8');</script>
211
211
  <dd class="spec pending_fixed">
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
216
- ./spec/spec_helper.rb:31:in `run'
217
- ./spec/spec_helper.rb:31:in `run'
215
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18
218
216
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24
219
217
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
220
218
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
221
219
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
222
220
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
223
221
  ./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
228
222
  :1</pre></div>
229
- <pre class="ruby"><code><span class="linenum">11</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
230
- <span class="linenum">12</span> <span class="keyword">end</span>
231
- <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>
232
- <span class="linenum">14</span> <span class="keyword">end</span>
233
- <span class="linenum">15</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
223
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
224
+ <span class="linenum">23</span> <span class="keyword">end</span>
225
+ <span class="offending"><span class="linenum">24</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>
226
+ <span class="linenum">25</span> <span class="keyword">end</span>
227
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
234
228
  </div>
235
229
  </dd>
236
230
  </dl>
@@ -238,7 +232,7 @@ a {
238
232
  <div class="example_group">
239
233
  <dl style="margin-left: 0px;">
240
234
  <dt id="example_group_5">passing spec</dt>
241
- <script type="text/javascript">moveProgressBar('80.0');</script>
235
+ <script type="text/javascript">moveProgressBar('57.1');</script>
242
236
  <dd class="spec passed"><span class="passed_spec_name">passes</span></dd>
243
237
  </dl>
244
238
  </div>
@@ -246,7 +240,7 @@ a {
246
240
  <dl style="margin-left: 0px;">
247
241
  <dt id="example_group_6">failing spec</dt>
248
242
  <script type="text/javascript">makeRed('example_group_6');</script>
249
- <script type="text/javascript">moveProgressBar('100.0');</script>
243
+ <script type="text/javascript">moveProgressBar('71.4');</script>
250
244
  <dd class="spec failed">
251
245
  <span class="failed_spec_name">fails</span>
252
246
  <div class="failure" id="failure_0">
@@ -256,18 +250,13 @@ expected 2
256
250
 
257
251
  (compared using ==)
258
252
  </pre></div>
259
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:34
260
- ./spec/spec_helper.rb:31:in `run'
253
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33
261
254
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24
262
255
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
263
256
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
264
257
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
265
258
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
266
259
  ./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
271
260
  :1</pre></div>
272
261
  <pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
273
262
  <span class="linenum">28</span>
@@ -277,8 +266,32 @@ expected 2
277
266
  </dd>
278
267
  </dl>
279
268
  </div>
269
+ <div class="example_group">
270
+ <dl style="margin-left: 0px;">
271
+ <dt id="example_group_7">a failing spec with odd backtraces</dt>
272
+ <script type="text/javascript">makeRed('example_group_7');</script>
273
+ <script type="text/javascript">moveProgressBar('85.7');</script>
274
+ <dd class="spec failed">
275
+ <span class="failed_spec_name">fails with a backtrace that has no file</span>
276
+ <div class="failure" id="failure_0">
277
+ <div class="message"><pre>foo</pre></div>
278
+ <div class="backtrace"><pre>(erb):1</pre></div>
279
+ <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
280
+ </div>
281
+ </dd>
282
+ <script type="text/javascript">moveProgressBar('100.0');</script>
283
+ <dd class="spec failed">
284
+ <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
285
+ <div class="failure" id="failure_0">
286
+ <div class="message"><pre>#&lt;Class:01x11fceed&gt;</pre></div>
287
+ <div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
288
+ <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
289
+ </div>
290
+ </dd>
291
+ </dl>
292
+ </div>
280
293
  <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
281
- <script type="text/javascript">document.getElementById('totals').innerHTML = "5 examples, 2 failures, 2 pending";</script>
294
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
282
295
  </div>
283
296
  </div>
284
297
  </body>
@@ -219,11 +219,11 @@ a {
219
219
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
220
220
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
221
221
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45</pre></div>
222
- <pre class="ruby"><code><span class="linenum">20</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
- <span class="linenum">21</span> <span class="keyword">end</span>
224
- <span class="offending"><span class="linenum">22</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>
225
- <span class="linenum">23</span> <span class="keyword">end</span>
226
- <span class="linenum">24</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
222
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
+ <span class="linenum">23</span> <span class="keyword">end</span>
224
+ <span class="offending"><span class="linenum">24</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>
225
+ <span class="linenum">25</span> <span class="keyword">end</span>
226
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
227
227
  </div>
228
228
  </dd>
229
229
  </dl>
@@ -219,11 +219,11 @@ a {
219
219
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
220
220
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
221
221
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'</pre></div>
222
- <pre class="ruby"><code><span class="linenum">20</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
- <span class="linenum">21</span> <span class="keyword">end</span>
224
- <span class="offending"><span class="linenum">22</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>
225
- <span class="linenum">23</span> <span class="keyword">end</span>
226
- <span class="linenum">24</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
222
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
+ <span class="linenum">23</span> <span class="keyword">end</span>
224
+ <span class="offending"><span class="linenum">24</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>
225
+ <span class="linenum">25</span> <span class="keyword">end</span>
226
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
227
227
  </div>
228
228
  </dd>
229
229
  </dl>
@@ -219,11 +219,11 @@ a {
219
219
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (4 levels) in <module:Formatters>'
220
220
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
221
221
  ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (3 levels) in <module:Formatters>'</pre></div>
222
- <pre class="ruby"><code><span class="linenum">20</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
- <span class="linenum">21</span> <span class="keyword">end</span>
224
- <span class="offending"><span class="linenum">22</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>
225
- <span class="linenum">23</span> <span class="keyword">end</span>
226
- <span class="linenum">24</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
222
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
+ <span class="linenum">23</span> <span class="keyword">end</span>
224
+ <span class="offending"><span class="linenum">24</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>
225
+ <span class="linenum">25</span> <span class="keyword">end</span>
226
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
227
227
  </div>
228
228
  </dd>
229
229
  </dl>
@@ -40,13 +40,13 @@ module RSpec
40
40
 
41
41
  # Uncomment this group temporarily in order to overwrite the expected
42
42
  # with actual. Use with care!!!
43
- # describe "file generator" do
44
- # it "generates a new comparison file" do
45
- # Dir.chdir(root) do
46
- # File.open(expected_file, 'w') {|io| io.write(generated_html)}
47
- # end
48
- # end
49
- # end
43
+ describe "file generator", :if => ENV['GENERATE'] do
44
+ it "generates a new comparison file" do
45
+ Dir.chdir(root) do
46
+ File.open(expected_file, 'w') {|io| io.write(generated_html)}
47
+ end
48
+ end
49
+ end
50
50
 
51
51
  def extract_backtrace_from(doc)
52
52
  backtrace = doc.search("div.backtrace").
@@ -212,18 +212,18 @@ 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><a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=18">./spec/rspec/core/resources/formatter_specs.rb:18</a>
216
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=24">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:24</a>
217
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
218
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a> :in `open'
219
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
220
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> :in `chdir'
221
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> </pre></div>
222
- <pre class="ruby"><code><span class="linenum">20</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
- <span class="linenum">21</span> <span class="keyword">end</span>
224
- <span class="offending"><span class="linenum">22</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>
225
- <span class="linenum">23</span> <span class="keyword">end</span>
226
- <span class="linenum">24</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
215
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=18">./spec/rspec/core/resources/formatter_specs.rb:18</a>
216
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=24">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:24</a>
217
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
218
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a> :in `open'
219
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
220
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> :in `chdir'
221
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> </pre></div>
222
+ <pre class="ruby"><code><span class="linenum">22</span> <span class="keyword">rescue</span> <span class="constant">Exception</span> <span class="punct">=&gt;</span> <span class="ident">e</span>
223
+ <span class="linenum">23</span> <span class="keyword">end</span>
224
+ <span class="offending"><span class="linenum">24</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>
225
+ <span class="linenum">25</span> <span class="keyword">end</span>
226
+ <span class="linenum">26</span> <span class="ident">throw</span> <span class="symbol">:pending_declared_in_example</span><span class="punct">,</span> <span class="ident">message</span></code></pre>
227
227
  </div>
228
228
  </dd>
229
229
  </dl>
@@ -249,13 +249,13 @@ expected 2
249
249
 
250
250
  (compared using ==)
251
251
  </pre></div>
252
- <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=33">./spec/rspec/core/resources/formatter_specs.rb:33</a>
253
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=24">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:24</a>
254
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
255
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a> :in `open'
256
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
257
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> :in `chdir'
258
- <a href="txmt://open?url=file:///Users/mmarston/code/rspec-dev/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> </pre></div>
252
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=33">./spec/rspec/core/resources/formatter_specs.rb:33</a>
253
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=24">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:24</a>
254
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
255
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a> :in `open'
256
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=47">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:47</a>
257
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> :in `chdir'
258
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=46">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:46</a> </pre></div>
259
259
  <pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
260
260
  <span class="linenum">28</span>
261
261
  <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>