rspec-core 2.8.0.rc1 → 2.8.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/License.txt +24 -0
  2. data/README.md +197 -37
  3. data/features/command_line/format_option.feature +3 -3
  4. data/features/command_line/init.feature +18 -0
  5. data/features/example_groups/shared_examples.feature +1 -1
  6. data/features/hooks/around_hooks.feature +4 -4
  7. data/features/pending/pending_examples.feature +5 -5
  8. data/features/support/env.rb +8 -1
  9. data/lib/autotest/rspec2.rb +2 -6
  10. data/lib/rspec/core.rb +48 -158
  11. data/lib/rspec/core/backward_compatibility.rb +2 -0
  12. data/lib/rspec/core/command_line.rb +4 -0
  13. data/lib/rspec/core/configuration.rb +201 -106
  14. data/lib/rspec/core/configuration_options.rb +2 -1
  15. data/lib/rspec/core/deprecation.rb +2 -3
  16. data/lib/rspec/core/drb_options.rb +69 -58
  17. data/lib/rspec/core/dsl.rb +12 -0
  18. data/lib/rspec/core/example.rb +53 -18
  19. data/lib/rspec/core/example_group.rb +144 -54
  20. data/lib/rspec/core/extensions.rb +4 -4
  21. data/lib/rspec/core/extensions/instance_eval_with_args.rb +5 -0
  22. data/lib/rspec/core/extensions/kernel.rb +1 -1
  23. data/lib/rspec/core/extensions/module_eval_with_args.rb +4 -0
  24. data/lib/rspec/core/extensions/ordered.rb +7 -2
  25. data/lib/rspec/core/filter_manager.rb +69 -36
  26. data/lib/rspec/core/formatters/base_text_formatter.rb +1 -1
  27. data/lib/rspec/core/formatters/html_formatter.rb +10 -4
  28. data/lib/rspec/core/hooks.rb +93 -34
  29. data/lib/rspec/core/let.rb +62 -61
  30. data/lib/rspec/core/metadata.rb +103 -80
  31. data/lib/rspec/core/metadata_hash_builder.rb +4 -0
  32. data/lib/rspec/core/option_parser.rb +42 -44
  33. data/lib/rspec/core/pending.rb +25 -3
  34. data/lib/rspec/core/project_initializer.rb +62 -0
  35. data/lib/rspec/core/rake_task.rb +7 -13
  36. data/lib/rspec/core/runner.rb +2 -2
  37. data/lib/rspec/core/shared_context.rb +1 -1
  38. data/lib/rspec/core/shared_example_group.rb +11 -5
  39. data/lib/rspec/core/subject.rb +3 -3
  40. data/lib/rspec/core/version.rb +1 -1
  41. data/lib/rspec/monkey.rb +1 -1
  42. data/lib/rspec/monkey/spork/test_framework/rspec.rb +2 -0
  43. data/spec/command_line/order_spec.rb +19 -13
  44. data/spec/rspec/core/command_line_spec.rb +1 -5
  45. data/spec/rspec/core/configuration_options_spec.rb +22 -27
  46. data/spec/rspec/core/configuration_spec.rb +32 -14
  47. data/spec/rspec/core/drb_command_line_spec.rb +20 -37
  48. data/spec/rspec/core/drb_options_spec.rb +51 -3
  49. data/spec/rspec/core/example_group_spec.rb +101 -84
  50. data/spec/rspec/core/example_spec.rb +14 -0
  51. data/spec/rspec/core/filter_manager_spec.rb +114 -33
  52. data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +17 -69
  53. data/spec/rspec/core/formatters/html_formatted-1.8.7.html +14 -4
  54. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +14 -4
  55. data/spec/rspec/core/formatters/html_formatted-1.9.3.html +14 -4
  56. data/spec/rspec/core/formatters/html_formatter_spec.rb +1 -1
  57. data/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +20 -72
  58. data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +24 -14
  59. data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +29 -19
  60. data/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +29 -19
  61. data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +1 -2
  62. data/spec/rspec/core/metadata_spec.rb +77 -45
  63. data/spec/rspec/core/option_parser_spec.rb +5 -0
  64. data/spec/rspec/core/pending_example_spec.rb +44 -12
  65. data/spec/rspec/core/project_initializer_spec.rb +130 -0
  66. data/spec/rspec/core/rake_task_spec.rb +1 -1
  67. data/spec/spec_helper.rb +2 -0
  68. data/spec/support/matchers.rb +2 -12
  69. metadata +18 -16
  70. data/features/command_line/configure.feature +0 -22
  71. data/lib/rspec/core/command_line_configuration.rb +0 -62
  72. data/lib/rspec/core/errors.rb +0 -13
  73. data/spec/rspec/core/command_line_configuration_spec.rb +0 -26
@@ -155,6 +155,12 @@ dd {
155
155
  padding: 3px 3px 3px 18px;
156
156
  }
157
157
 
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
158
164
 
159
165
  dd.example.passed {
160
166
  border-left: 5px solid #65C400;
@@ -283,7 +289,7 @@ a {
283
289
  <script type="text/javascript">makeYellow('div_group_1');</script>
284
290
  <script type="text/javascript">makeYellow('example_group_1');</script>
285
291
  <script type="text/javascript">moveProgressBar('14.2');</script>
286
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
292
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
287
293
  </dl>
288
294
  </div>
289
295
  <div id="div_group_2" class="example_group passed">
@@ -310,34 +316,14 @@ a {
310
316
  <script type="text/javascript">moveProgressBar('42.8');</script>
311
317
  <dd class="example pending_fixed">
312
318
  <span class="failed_spec_name">fails</span>
319
+ <span class="duration">n.nnnns</span>
313
320
  <div class="failure" id="failure_1">
314
- <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
321
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
315
322
  <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18:in `(root)'
316
- org/jruby/RubyKernel.java:2061:in `instance_eval'
317
- org/jruby/RubyArray.java:2336:in `collect'
318
- org/jruby/RubyArray.java:2336:in `collect'
319
- org/jruby/RubyArray.java:2336:in `collect'
320
323
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `Formatters'
321
- org/jruby/RubyKernel.java:2061:in `instance_eval'
322
- org/jruby/RubyHash.java:1063:in `fetch'
323
- org/jruby/RubyProc.java:274:in `call'
324
324
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
325
- org/jruby/RubyIO.java:1111:in `open'
326
325
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
327
- org/jruby/RubyDir.java:335:in `chdir'
328
- ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'
329
- org/jruby/RubyKernel.java:2061:in `instance_eval'
330
- org/jruby/RubyProc.java:274:in `call'
331
- org/jruby/RubyProc.java:229:in `call'
332
- org/jruby/RubyKernel.java:2061:in `instance_eval'
333
- org/jruby/RubyKernel.java:2078:in `instance_exec'
334
- org/jruby/RubyProc.java:274:in `call'
335
- org/jruby/RubyProc.java:229:in `call'
336
- org/jruby/RubyArray.java:2336:in `collect'
337
- org/jruby/RubyArray.java:2336:in `collect'
338
- org/jruby/RubyArray.java:2336:in `collect'
339
- org/jruby/RubyProc.java:274:in `call'
340
- org/jruby/RubyProc.java:233:in `call'</pre></div>
326
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'</pre></div>
341
327
  <pre class="ruby"><code><span class="linenum">16</span> <span class="ident">context</span> <span class="punct">&quot;</span><span class="string">with content that would pass</span><span class="punct">&quot;</span> <span class="keyword">do</span>
342
328
  <span class="linenum">17</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">fails</span><span class="punct">&quot;</span> <span class="keyword">do</span>
343
329
  <span class="offending"><span class="linenum">18</span> <span class="ident">pending</span> <span class="keyword">do</span></span>
@@ -351,7 +337,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
351
337
  <dl style="margin-left: 0px;">
352
338
  <dt id="example_group_5" class="passed">passing spec</dt>
353
339
  <script type="text/javascript">moveProgressBar('57.1');</script>
354
- <dd class="example passed"><span class="passed_spec_name">passes</span></dd>
340
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
355
341
  </dl>
356
342
  </div>
357
343
  <div id="div_group_6" class="example_group passed">
@@ -362,6 +348,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
362
348
  <script type="text/javascript">moveProgressBar('71.4');</script>
363
349
  <dd class="example failed">
364
350
  <span class="failed_spec_name">fails</span>
351
+ <span class="duration">n.nnnns</span>
365
352
  <div class="failure" id="failure_2">
366
353
  <div class="message"><pre>
367
354
  expected: 2
@@ -370,30 +357,10 @@ expected: 2
370
357
  (compared using ==)
371
358
  </pre></div>
372
359
  <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33:in `(root)'
373
- org/jruby/RubyKernel.java:2061:in `instance_eval'
374
- org/jruby/RubyArray.java:2336:in `collect'
375
- org/jruby/RubyArray.java:2336:in `collect'
376
360
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `Formatters'
377
- org/jruby/RubyKernel.java:2061:in `instance_eval'
378
- org/jruby/RubyHash.java:1063:in `fetch'
379
- org/jruby/RubyProc.java:274:in `call'
380
361
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
381
- org/jruby/RubyIO.java:1111:in `open'
382
362
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
383
- org/jruby/RubyDir.java:335:in `chdir'
384
- ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'
385
- org/jruby/RubyKernel.java:2061:in `instance_eval'
386
- org/jruby/RubyProc.java:274:in `call'
387
- org/jruby/RubyProc.java:229:in `call'
388
- org/jruby/RubyKernel.java:2061:in `instance_eval'
389
- org/jruby/RubyKernel.java:2078:in `instance_exec'
390
- org/jruby/RubyProc.java:274:in `call'
391
- org/jruby/RubyProc.java:229:in `call'
392
- org/jruby/RubyArray.java:2336:in `collect'
393
- org/jruby/RubyArray.java:2336:in `collect'
394
- org/jruby/RubyArray.java:2336:in `collect'
395
- org/jruby/RubyProc.java:274:in `call'
396
- org/jruby/RubyProc.java:233:in `call'</pre></div>
363
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'</pre></div>
397
364
  <pre class="ruby"><code><span class="linenum">31</span><span class="ident">describe</span> <span class="punct">&quot;</span><span class="string">failing spec</span><span class="punct">&quot;</span> <span class="keyword">do</span>
398
365
  <span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">fails</span><span class="punct">&quot;</span> <span class="keyword">do</span>
399
366
  <span class="offending"><span class="linenum">33</span> <span class="number">1</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eq</span><span class="punct">(</span><span class="number">2</span><span class="punct">)</span></span>
@@ -411,41 +378,22 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
411
378
  <script type="text/javascript">moveProgressBar('85.7');</script>
412
379
  <dd class="example failed">
413
380
  <span class="failed_spec_name">fails with a backtrace that has no file</span>
381
+ <span class="duration">n.nnnns</span>
414
382
  <div class="failure" id="failure_3">
415
383
  <div class="message"><pre>foo</pre></div>
416
384
  <div class="backtrace"><pre>(erb):1:in `result'
417
- org/jruby/RubyKernel.java:1088:in `eval'
418
385
  ./spec/rspec/core/resources/formatter_specs.rb:41:in `(root)'
419
- org/jruby/RubyKernel.java:2061:in `instance_eval'
420
- org/jruby/RubyArray.java:2336:in `collect'
421
- org/jruby/RubyArray.java:2336:in `collect'
422
386
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `Formatters'
423
- org/jruby/RubyKernel.java:2061:in `instance_eval'
424
- org/jruby/RubyHash.java:1063:in `fetch'
425
- org/jruby/RubyProc.java:274:in `call'
426
387
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
427
- org/jruby/RubyIO.java:1111:in `open'
428
388
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `Formatters'
429
- org/jruby/RubyDir.java:335:in `chdir'
430
- ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'
431
- org/jruby/RubyKernel.java:2061:in `instance_eval'
432
- org/jruby/RubyProc.java:274:in `call'
433
- org/jruby/RubyProc.java:229:in `call'
434
- org/jruby/RubyKernel.java:2061:in `instance_eval'
435
- org/jruby/RubyKernel.java:2078:in `instance_exec'
436
- org/jruby/RubyProc.java:274:in `call'
437
- org/jruby/RubyProc.java:229:in `call'
438
- org/jruby/RubyArray.java:2336:in `collect'
439
- org/jruby/RubyArray.java:2336:in `collect'
440
- org/jruby/RubyArray.java:2336:in `collect'
441
- org/jruby/RubyProc.java:274:in `call'
442
- org/jruby/RubyProc.java:233:in `call'</pre></div>
389
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `Formatters'</pre></div>
443
390
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
444
391
  </div>
445
392
  </dd>
446
393
  <script type="text/javascript">moveProgressBar('100.0');</script>
447
394
  <dd class="example failed">
448
395
  <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
396
+ <span class="duration">n.nnnns</span>
449
397
  <div class="failure" id="failure_4">
450
398
  <div class="message"><pre>Exception</pre></div>
451
399
  <div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
@@ -454,7 +402,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
454
402
  </dd>
455
403
  </dl>
456
404
  </div>
457
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
405
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
458
406
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
459
407
  </div>
460
408
  </div>
@@ -155,6 +155,12 @@ dd {
155
155
  padding: 3px 3px 3px 18px;
156
156
  }
157
157
 
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
158
164
 
159
165
  dd.example.passed {
160
166
  border-left: 5px solid #65C400;
@@ -283,7 +289,7 @@ a {
283
289
  <script type="text/javascript">makeYellow('div_group_1');</script>
284
290
  <script type="text/javascript">makeYellow('example_group_1');</script>
285
291
  <script type="text/javascript">moveProgressBar('14.2');</script>
286
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
292
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
287
293
  </dl>
288
294
  </div>
289
295
  <div id="div_group_2" class="example_group passed">
@@ -310,8 +316,9 @@ a {
310
316
  <script type="text/javascript">moveProgressBar('42.8');</script>
311
317
  <dd class="example pending_fixed">
312
318
  <span class="failed_spec_name">fails</span>
319
+ <span class="duration">n.nnnns</span>
313
320
  <div class="failure" id="failure_1">
314
- <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
321
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
315
322
  <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18
316
323
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24
317
324
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46
@@ -332,7 +339,7 @@ a {
332
339
  <dl style="margin-left: 0px;">
333
340
  <dt id="example_group_5" class="passed">passing spec</dt>
334
341
  <script type="text/javascript">moveProgressBar('57.1');</script>
335
- <dd class="example passed"><span class="passed_spec_name">passes</span></dd>
342
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
336
343
  </dl>
337
344
  </div>
338
345
  <div id="div_group_6" class="example_group passed">
@@ -343,6 +350,7 @@ a {
343
350
  <script type="text/javascript">moveProgressBar('71.4');</script>
344
351
  <dd class="example failed">
345
352
  <span class="failed_spec_name">fails</span>
353
+ <span class="duration">n.nnnns</span>
346
354
  <div class="failure" id="failure_2">
347
355
  <div class="message"><pre>
348
356
  expected: 2
@@ -374,6 +382,7 @@ expected: 2
374
382
  <script type="text/javascript">moveProgressBar('85.7');</script>
375
383
  <dd class="example failed">
376
384
  <span class="failed_spec_name">fails with a backtrace that has no file</span>
385
+ <span class="duration">n.nnnns</span>
377
386
  <div class="failure" id="failure_3">
378
387
  <div class="message"><pre>foo</pre></div>
379
388
  <div class="backtrace"><pre>(erb):1</pre></div>
@@ -383,6 +392,7 @@ expected: 2
383
392
  <script type="text/javascript">moveProgressBar('100.0');</script>
384
393
  <dd class="example failed">
385
394
  <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
395
+ <span class="duration">n.nnnns</span>
386
396
  <div class="failure" id="failure_4">
387
397
  <div class="message"><pre>Exception</pre></div>
388
398
  <div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
@@ -391,7 +401,7 @@ expected: 2
391
401
  </dd>
392
402
  </dl>
393
403
  </div>
394
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
404
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
395
405
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
396
406
  </div>
397
407
  </div>
@@ -155,6 +155,12 @@ dd {
155
155
  padding: 3px 3px 3px 18px;
156
156
  }
157
157
 
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
158
164
 
159
165
  dd.example.passed {
160
166
  border-left: 5px solid #65C400;
@@ -283,7 +289,7 @@ a {
283
289
  <script type="text/javascript">makeYellow('div_group_1');</script>
284
290
  <script type="text/javascript">makeYellow('example_group_1');</script>
285
291
  <script type="text/javascript">moveProgressBar('14.2');</script>
286
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
292
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
287
293
  </dl>
288
294
  </div>
289
295
  <div id="div_group_2" class="example_group passed">
@@ -310,8 +316,9 @@ a {
310
316
  <script type="text/javascript">moveProgressBar('42.8');</script>
311
317
  <dd class="example pending_fixed">
312
318
  <span class="failed_spec_name">fails</span>
319
+ <span class="duration">n.nnnns</span>
313
320
  <div class="failure" id="failure_1">
314
- <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
321
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
315
322
  <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18:in `block (3 levels) in <top (required)>'
316
323
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
317
324
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
@@ -332,7 +339,7 @@ a {
332
339
  <dl style="margin-left: 0px;">
333
340
  <dt id="example_group_5" class="passed">passing spec</dt>
334
341
  <script type="text/javascript">moveProgressBar('57.1');</script>
335
- <dd class="example passed"><span class="passed_spec_name">passes</span></dd>
342
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
336
343
  </dl>
337
344
  </div>
338
345
  <div id="div_group_6" class="example_group passed">
@@ -343,6 +350,7 @@ a {
343
350
  <script type="text/javascript">moveProgressBar('71.4');</script>
344
351
  <dd class="example failed">
345
352
  <span class="failed_spec_name">fails</span>
353
+ <span class="duration">n.nnnns</span>
346
354
  <div class="failure" id="failure_2">
347
355
  <div class="message"><pre>
348
356
  expected: 2
@@ -374,6 +382,7 @@ expected: 2
374
382
  <script type="text/javascript">moveProgressBar('85.7');</script>
375
383
  <dd class="example failed">
376
384
  <span class="failed_spec_name">fails with a backtrace that has no file</span>
385
+ <span class="duration">n.nnnns</span>
377
386
  <div class="failure" id="failure_3">
378
387
  <div class="message"><pre>foo</pre></div>
379
388
  <div class="backtrace"><pre>(erb):1:in `<main>'
@@ -390,6 +399,7 @@ expected: 2
390
399
  <script type="text/javascript">moveProgressBar('100.0');</script>
391
400
  <dd class="example failed">
392
401
  <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
402
+ <span class="duration">n.nnnns</span>
393
403
  <div class="failure" id="failure_4">
394
404
  <div class="message"><pre>Exception</pre></div>
395
405
  <div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
@@ -398,7 +408,7 @@ expected: 2
398
408
  </dd>
399
409
  </dl>
400
410
  </div>
401
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
411
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
402
412
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
403
413
  </div>
404
414
  </div>
@@ -155,6 +155,12 @@ dd {
155
155
  padding: 3px 3px 3px 18px;
156
156
  }
157
157
 
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
158
164
 
159
165
  dd.example.passed {
160
166
  border-left: 5px solid #65C400;
@@ -283,7 +289,7 @@ a {
283
289
  <script type="text/javascript">makeYellow('div_group_1');</script>
284
290
  <script type="text/javascript">makeYellow('example_group_1');</script>
285
291
  <script type="text/javascript">moveProgressBar('14.2');</script>
286
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
292
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
287
293
  </dl>
288
294
  </div>
289
295
  <div id="div_group_2" class="example_group passed">
@@ -310,8 +316,9 @@ a {
310
316
  <script type="text/javascript">moveProgressBar('42.8');</script>
311
317
  <dd class="example pending_fixed">
312
318
  <span class="failed_spec_name">fails</span>
319
+ <span class="duration">n.nnnns</span>
313
320
  <div class="failure" id="failure_1">
314
- <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
321
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
315
322
  <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18:in `block (3 levels) in <top (required)>'
316
323
  ./spec/rspec/core/formatters/html_formatter_spec.rb:24:in `block (2 levels) in <module:Formatters>'
317
324
  ./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `block (5 levels) in <module:Formatters>'
@@ -332,7 +339,7 @@ a {
332
339
  <dl style="margin-left: 0px;">
333
340
  <dt id="example_group_5" class="passed">passing spec</dt>
334
341
  <script type="text/javascript">moveProgressBar('57.1');</script>
335
- <dd class="example passed"><span class="passed_spec_name">passes</span></dd>
342
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
336
343
  </dl>
337
344
  </div>
338
345
  <div id="div_group_6" class="example_group passed">
@@ -343,6 +350,7 @@ a {
343
350
  <script type="text/javascript">moveProgressBar('71.4');</script>
344
351
  <dd class="example failed">
345
352
  <span class="failed_spec_name">fails</span>
353
+ <span class="duration">n.nnnns</span>
346
354
  <div class="failure" id="failure_2">
347
355
  <div class="message"><pre>
348
356
  expected: 2
@@ -374,6 +382,7 @@ expected: 2
374
382
  <script type="text/javascript">moveProgressBar('85.7');</script>
375
383
  <dd class="example failed">
376
384
  <span class="failed_spec_name">fails with a backtrace that has no file</span>
385
+ <span class="duration">n.nnnns</span>
377
386
  <div class="failure" id="failure_3">
378
387
  <div class="message"><pre>foo</pre></div>
379
388
  <div class="backtrace"><pre>(erb):1:in `<main>'
@@ -390,6 +399,7 @@ expected: 2
390
399
  <script type="text/javascript">moveProgressBar('100.0');</script>
391
400
  <dd class="example failed">
392
401
  <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
402
+ <span class="duration">n.nnnns</span>
393
403
  <div class="failure" id="failure_4">
394
404
  <div class="message"><pre>Exception</pre></div>
395
405
  <div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
@@ -398,7 +408,7 @@ expected: 2
398
408
  </dd>
399
409
  </dl>
400
410
  </div>
401
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
411
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
402
412
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
403
413
  </div>
404
414
  </div>
@@ -22,7 +22,7 @@ module RSpec
22
22
  err, out = StringIO.new, StringIO.new
23
23
  command_line = RSpec::Core::CommandLine.new(options)
24
24
  command_line.run(err, out)
25
- out.string.gsub(/\d+\.\d+ seconds/, 'x seconds')
25
+ out.string.gsub(/\d+\.\d+(s| seconds)/, "n.nnnn\\1")
26
26
  end
27
27
 
28
28
  let(:expected_html) do
@@ -155,6 +155,12 @@ dd {
155
155
  padding: 3px 3px 3px 18px;
156
156
  }
157
157
 
158
+ dd .duration {
159
+ padding-left: 5px;
160
+ text-align: right;
161
+ right: 0px;
162
+ float:right;
163
+ }
158
164
 
159
165
  dd.example.passed {
160
166
  border-left: 5px solid #65C400;
@@ -283,7 +289,7 @@ a {
283
289
  <script type="text/javascript">makeYellow('div_group_1');</script>
284
290
  <script type="text/javascript">makeYellow('example_group_1');</script>
285
291
  <script type="text/javascript">moveProgressBar('14.2');</script>
286
- <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not Yet Implemented)</span></dd>
292
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
287
293
  </dl>
288
294
  </div>
289
295
  <div id="div_group_2" class="example_group passed">
@@ -310,34 +316,14 @@ a {
310
316
  <script type="text/javascript">moveProgressBar('42.8');</script>
311
317
  <dd class="example pending_fixed">
312
318
  <span class="failed_spec_name">fails</span>
319
+ <span class="duration">n.nnnns</span>
313
320
  <div class="failure" id="failure_1">
314
- <div class="message"><pre>RSpec::Core::PendingExampleFixedError</pre></div>
321
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
315
322
  <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> :in `(root)'
316
- org/jruby/RubyKernel.java:2061:in `instance_eval'
317
- org/jruby/RubyArray.java:2336:in `collect'
318
- org/jruby/RubyArray.java:2336:in `collect'
319
- org/jruby/RubyArray.java:2336:in `collect'
320
323
  <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> :in `Formatters'
321
- org/jruby/RubyKernel.java:2061:in `instance_eval'
322
- org/jruby/RubyHash.java:1063:in `fetch'
323
- org/jruby/RubyProc.java:274:in `call'
324
- <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 `Formatters'
325
- org/jruby/RubyIO.java:1111:in `open'
326
- <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 `Formatters'
327
- org/jruby/RubyDir.java:335:in `chdir'
328
324
  <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 `Formatters'
329
- org/jruby/RubyKernel.java:2061:in `instance_eval'
330
- org/jruby/RubyProc.java:274:in `call'
331
- org/jruby/RubyProc.java:229:in `call'
332
- org/jruby/RubyKernel.java:2061:in `instance_eval'
333
- org/jruby/RubyKernel.java:2078:in `instance_exec'
334
- org/jruby/RubyProc.java:274:in `call'
335
- org/jruby/RubyProc.java:229:in `call'
336
- org/jruby/RubyArray.java:2336:in `collect'
337
- org/jruby/RubyArray.java:2336:in `collect'
338
- org/jruby/RubyArray.java:2336:in `collect'
339
- org/jruby/RubyProc.java:274:in `call'
340
- org/jruby/RubyProc.java:233:in `call'</pre></div>
325
+ <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 `Formatters'
326
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=45">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:45</a> :in `Formatters'</pre></div>
341
327
  <pre class="ruby"><code><span class="linenum">16</span> <span class="ident">context</span> <span class="punct">&quot;</span><span class="string">with content that would pass</span><span class="punct">&quot;</span> <span class="keyword">do</span>
342
328
  <span class="linenum">17</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">fails</span><span class="punct">&quot;</span> <span class="keyword">do</span>
343
329
  <span class="offending"><span class="linenum">18</span> <span class="ident">pending</span> <span class="keyword">do</span></span>
@@ -351,7 +337,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
351
337
  <dl style="margin-left: 0px;">
352
338
  <dt id="example_group_5" class="passed">passing spec</dt>
353
339
  <script type="text/javascript">moveProgressBar('57.1');</script>
354
- <dd class="example passed"><span class="passed_spec_name">passes</span></dd>
340
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
355
341
  </dl>
356
342
  </div>
357
343
  <div id="div_group_6" class="example_group passed">
@@ -362,6 +348,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
362
348
  <script type="text/javascript">moveProgressBar('71.4');</script>
363
349
  <dd class="example failed">
364
350
  <span class="failed_spec_name">fails</span>
351
+ <span class="duration">n.nnnns</span>
365
352
  <div class="failure" id="failure_2">
366
353
  <div class="message"><pre>
367
354
  expected: 2
@@ -370,30 +357,10 @@ expected: 2
370
357
  (compared using ==)
371
358
  </pre></div>
372
359
  <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> :in `(root)'
373
- org/jruby/RubyKernel.java:2061:in `instance_eval'
374
- org/jruby/RubyArray.java:2336:in `collect'
375
- org/jruby/RubyArray.java:2336:in `collect'
376
360
  <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> :in `Formatters'
377
- org/jruby/RubyKernel.java:2061:in `instance_eval'
378
- org/jruby/RubyHash.java:1063:in `fetch'
379
- org/jruby/RubyProc.java:274:in `call'
380
- <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 `Formatters'
381
- org/jruby/RubyIO.java:1111:in `open'
382
- <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 `Formatters'
383
- org/jruby/RubyDir.java:335:in `chdir'
384
361
  <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 `Formatters'
385
- org/jruby/RubyKernel.java:2061:in `instance_eval'
386
- org/jruby/RubyProc.java:274:in `call'
387
- org/jruby/RubyProc.java:229:in `call'
388
- org/jruby/RubyKernel.java:2061:in `instance_eval'
389
- org/jruby/RubyKernel.java:2078:in `instance_exec'
390
- org/jruby/RubyProc.java:274:in `call'
391
- org/jruby/RubyProc.java:229:in `call'
392
- org/jruby/RubyArray.java:2336:in `collect'
393
- org/jruby/RubyArray.java:2336:in `collect'
394
- org/jruby/RubyArray.java:2336:in `collect'
395
- org/jruby/RubyProc.java:274:in `call'
396
- org/jruby/RubyProc.java:233:in `call'</pre></div>
362
+ <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 `Formatters'
363
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=45">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:45</a> :in `Formatters'</pre></div>
397
364
  <pre class="ruby"><code><span class="linenum">31</span><span class="ident">describe</span> <span class="punct">&quot;</span><span class="string">failing spec</span><span class="punct">&quot;</span> <span class="keyword">do</span>
398
365
  <span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">fails</span><span class="punct">&quot;</span> <span class="keyword">do</span>
399
366
  <span class="offending"><span class="linenum">33</span> <span class="number">1</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eq</span><span class="punct">(</span><span class="number">2</span><span class="punct">)</span></span>
@@ -411,41 +378,22 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
411
378
  <script type="text/javascript">moveProgressBar('85.7');</script>
412
379
  <dd class="example failed">
413
380
  <span class="failed_spec_name">fails with a backtrace that has no file</span>
381
+ <span class="duration">n.nnnns</span>
414
382
  <div class="failure" id="failure_3">
415
383
  <div class="message"><pre>foo</pre></div>
416
384
  <div class="backtrace"><pre>(erb):1:in `result'
417
- org/jruby/RubyKernel.java:1088:in `eval'
418
385
  <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb&line=41">./spec/rspec/core/resources/formatter_specs.rb:41</a> :in `(root)'
419
- org/jruby/RubyKernel.java:2061:in `instance_eval'
420
- org/jruby/RubyArray.java:2336:in `collect'
421
- org/jruby/RubyArray.java:2336:in `collect'
422
386
  <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> :in `Formatters'
423
- org/jruby/RubyKernel.java:2061:in `instance_eval'
424
- org/jruby/RubyHash.java:1063:in `fetch'
425
- org/jruby/RubyProc.java:274:in `call'
426
- <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 `Formatters'
427
- org/jruby/RubyIO.java:1111:in `open'
428
- <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 `Formatters'
429
- org/jruby/RubyDir.java:335:in `chdir'
430
387
  <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 `Formatters'
431
- org/jruby/RubyKernel.java:2061:in `instance_eval'
432
- org/jruby/RubyProc.java:274:in `call'
433
- org/jruby/RubyProc.java:229:in `call'
434
- org/jruby/RubyKernel.java:2061:in `instance_eval'
435
- org/jruby/RubyKernel.java:2078:in `instance_exec'
436
- org/jruby/RubyProc.java:274:in `call'
437
- org/jruby/RubyProc.java:229:in `call'
438
- org/jruby/RubyArray.java:2336:in `collect'
439
- org/jruby/RubyArray.java:2336:in `collect'
440
- org/jruby/RubyArray.java:2336:in `collect'
441
- org/jruby/RubyProc.java:274:in `call'
442
- org/jruby/RubyProc.java:233:in `call'</pre></div>
388
+ <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 `Formatters'
389
+ <a href="txmt://open?url=file:///Users/david/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/text_mate_formatter_spec.rb&line=45">./spec/rspec/core/formatters/text_mate_formatter_spec.rb:45</a> :in `Formatters'</pre></div>
443
390
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
444
391
  </div>
445
392
  </dd>
446
393
  <script type="text/javascript">moveProgressBar('100.0');</script>
447
394
  <dd class="example failed">
448
395
  <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
396
+ <span class="duration">n.nnnns</span>
449
397
  <div class="failure" id="failure_4">
450
398
  <div class="message"><pre>Exception</pre></div>
451
399
  <div class="backtrace"><pre><a href="txmt://open?url=file:///foo.html.erb&line=1">/foo.html.erb:1</a> :in `&lt;main&gt;': foo (RuntimeError)</pre></div>
@@ -454,7 +402,7 @@ org/jruby/RubyProc.java:233:in `call'</pre></div>
454
402
  </dd>
455
403
  </dl>
456
404
  </div>
457
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
405
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
458
406
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
459
407
  </div>
460
408
  </div>