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.
Files changed (67) hide show
  1. data/Gemfile +2 -2
  2. data/{History.md → History.markdown} +24 -2
  3. data/Rakefile +1 -0
  4. data/Upgrade.markdown +36 -3
  5. data/bin/rspec +1 -2
  6. data/features/command_line/configure.feature +4 -4
  7. data/features/command_line/example_name_option.feature +17 -3
  8. data/features/command_line/exit_status.feature +13 -28
  9. data/features/command_line/line_number_appended_to_path.feature +12 -16
  10. data/features/command_line/line_number_option.feature +4 -5
  11. data/features/command_line/rake_task.feature +68 -0
  12. data/features/configuration/custom_settings.feature +2 -4
  13. data/features/configuration/fail_fast.feature +77 -0
  14. data/features/configuration/read_options_from_file.feature +2 -5
  15. data/features/example_groups/basic_structure.feature +54 -0
  16. data/features/example_groups/shared_example_group.feature +38 -27
  17. data/features/filtering/exclusion_filters.feature +40 -4
  18. data/features/filtering/inclusion_filters.feature +36 -27
  19. data/features/filtering/run_all_when_everything_filtered.feature +46 -0
  20. data/features/hooks/before_and_after_hooks.feature +21 -1
  21. data/features/pending/pending_examples.feature +24 -5
  22. data/lib/rspec/autorun.rb +2 -0
  23. data/lib/rspec/core.rb +6 -4
  24. data/lib/rspec/core/configuration.rb +69 -23
  25. data/lib/rspec/core/configuration_options.rb +1 -0
  26. data/lib/rspec/core/example.rb +0 -1
  27. data/lib/rspec/core/example_group.rb +23 -8
  28. data/lib/rspec/core/formatters/base_formatter.rb +14 -4
  29. data/lib/rspec/core/formatters/base_text_formatter.rb +2 -0
  30. data/lib/rspec/core/formatters/documentation_formatter.rb +2 -0
  31. data/lib/rspec/core/formatters/progress_formatter.rb +1 -0
  32. data/lib/rspec/core/metadata.rb +18 -11
  33. data/lib/rspec/core/option_parser.rb +6 -1
  34. data/lib/rspec/core/rake_task.rb +10 -10
  35. data/lib/rspec/core/runner.rb +20 -1
  36. data/lib/rspec/core/subject.rb +26 -3
  37. data/lib/rspec/core/version.rb +1 -1
  38. data/lib/rspec/core/world.rb +2 -1
  39. data/spec/autotest/failed_results_re_spec.rb +1 -1
  40. data/spec/rspec/core/configuration_spec.rb +13 -0
  41. data/spec/rspec/core/example_group_spec.rb +107 -26
  42. data/spec/rspec/core/example_spec.rb +11 -24
  43. data/spec/rspec/core/formatters/base_formatter_spec.rb +17 -1
  44. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +6 -5
  45. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +3 -2
  46. data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +25 -22
  47. data/spec/rspec/core/formatters/html_formatted-1.8.7.html +23 -20
  48. data/spec/rspec/core/formatters/html_formatted-1.9.1.html +25 -22
  49. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +25 -2
  50. data/spec/rspec/core/formatters/html_formatter_spec.rb +10 -2
  51. data/spec/rspec/core/formatters/progress_formatter_spec.rb +1 -0
  52. data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +1 -0
  53. data/spec/rspec/core/hooks_filtering_spec.rb +5 -5
  54. data/spec/rspec/core/hooks_spec.rb +4 -4
  55. data/spec/rspec/core/metadata_spec.rb +20 -0
  56. data/spec/rspec/core/option_parser_spec.rb +16 -0
  57. data/spec/rspec/core/rake_task_spec.rb +0 -1
  58. data/spec/rspec/core/reporter_spec.rb +1 -1
  59. data/spec/rspec/core/runner_spec.rb +18 -0
  60. data/spec/rspec/core/shared_example_group_spec.rb +2 -2
  61. data/spec/spec_helper.rb +14 -3
  62. metadata +54 -45
  63. data/.rspec +0 -1
  64. data/features/example_groups/describe_aliases.feature +0 -25
  65. data/features/example_groups/nested_groups.feature +0 -44
  66. data/lib/rspec/core/around_proxy.rb +0 -14
  67. 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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
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.run_all
171
+ group.run
185
172
  group.examples.first.should be_pending
186
173
  expect do
187
- group.run_all
174
+ group.run
188
175
  end.to raise_error(/undefined method `metadata'/)
189
176
  end
190
177
  end
@@ -1,4 +1,5 @@
1
- require "spec_helper"
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 "spec_helper"
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.run_all(formatter)
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.run_all(double('reporter').as_null_object)
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}\:134/
156
+ output.string.should =~ /#{filename}\:135/
156
157
  end
157
158
  end
158
159
  end
@@ -1,4 +1,5 @@
1
- require "spec_helper"
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.run_all(RSpec::Core::Reporter.new(formatter))
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>/Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb:19
216
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:23
217
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45
218
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `open'
219
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45
220
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `chdir'
221
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44
222
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70
223
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `instance_eval'
224
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `sandboxed'
225
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70
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">=&gt;</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>/Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb:34
258
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:23
259
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45
260
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `open'
261
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45
262
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `chdir'
263
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44
264
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70
265
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `instance_eval'
266
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `sandboxed'
267
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70
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/rspec/core/formatters/html_formatter_spec.rb:22
217
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43
218
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43:in `open'
219
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43
220
- ./spec/rspec/core/formatters/html_formatter_spec.rb:42:in `chdir'
221
- ./spec/rspec/core/formatters/html_formatter_spec.rb:42
222
- ./spec/spec_helper.rb:73
223
- ./spec/spec_helper.rb:49:in `instance_eval'
224
- ./spec/spec_helper.rb:49:in `sandboxed'
225
- ./spec/spec_helper.rb:73</pre></div>
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">=&gt;</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/rspec/core/formatters/html_formatter_spec.rb:22
258
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43
259
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43:in `open'
260
- ./spec/rspec/core/formatters/html_formatter_spec.rb:43
261
- ./spec/rspec/core/formatters/html_formatter_spec.rb:42:in `chdir'
262
- ./spec/rspec/core/formatters/html_formatter_spec.rb:42
263
- ./spec/spec_helper.rb:73
264
- ./spec/spec_helper.rb:49:in `instance_eval'
265
- ./spec/spec_helper.rb:49:in `sandboxed'
266
- ./spec/spec_helper.rb:73</pre></div>
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>/Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb:19:in `block (3 levels) in <top (required)>'
216
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:23:in `block (2 levels) in <module:Formatters>'
217
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (5 levels) in <module:Formatters>'
218
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `open'
219
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (4 levels) in <module:Formatters>'
220
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `chdir'
221
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `block (3 levels) in <module:Formatters>'
222
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70:in `block (3 levels) in <top (required)>'
223
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `instance_eval'
224
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `sandboxed'
225
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70:in `block (2 levels) in <top (required)>'</pre></div>
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">=&gt;</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>/Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/resources/formatter_specs.rb:34:in `block (2 levels) in <top (required)>'
257
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:23:in `block (2 levels) in <module:Formatters>'
258
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (5 levels) in <module:Formatters>'
259
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `open'
260
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:45:in `block (4 levels) in <module:Formatters>'
261
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `chdir'
262
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb:44:in `block (3 levels) in <module:Formatters>'
263
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70:in `block (3 levels) in <top (required)>'
264
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `instance_eval'
265
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:44:in `sandboxed'
266
- /Users/dchelimsky/projects/ruby/rspec2/repos/rspec-core/spec/spec_helper.rb:70:in `block (2 levels) in <top (required)>'</pre></div>
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)>'</pre></div>
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">=&gt;</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)>'</pre></div>
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.search("div.backtrace").collect {|e| e.at("pre").inner_html}
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.search("div.backtrace").collect {|e| e.at("pre").inner_html}
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
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'rspec/core/formatters/progress_formatter'
2
3
  require 'stringio'
3
4
 
4
5
  describe RSpec::Core::Formatters::ProgressFormatter do