rspec-core 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +8 -3
- data/Guardfile +5 -0
- data/History.markdown +32 -2
- data/README.markdown +10 -3
- data/Rakefile +12 -13
- data/Upgrade.markdown +175 -121
- data/bin/autospec +13 -0
- data/bin/rspec +24 -1
- data/features/command_line/line_number_appended_to_path.feature +3 -1
- data/features/command_line/line_number_option.feature +3 -1
- data/features/command_line/tag.feature +74 -0
- data/features/filtering/exclusion_filters.feature +1 -1
- data/features/filtering/implicit_filters.feature +166 -0
- data/features/hooks/around_hooks.feature +51 -44
- data/features/metadata/described_class.feature +3 -0
- data/features/pending/pending_examples.feature +76 -0
- data/features/step_definitions/additional_cli_steps.rb +11 -0
- data/features/subject/attribute_of_subject.feature +8 -0
- data/features/subject/explicit_subject.feature +8 -13
- data/features/subject/implicit_receiver.feature +29 -0
- data/features/subject/implicit_subject.feature +6 -7
- data/lib/rspec/core.rb +3 -21
- data/lib/rspec/core/backward_compatibility.rb +22 -3
- data/lib/rspec/core/command_line.rb +1 -0
- data/lib/rspec/core/configuration.rb +34 -6
- data/lib/rspec/core/configuration_options.rb +1 -3
- data/lib/rspec/core/example.rb +0 -5
- data/lib/rspec/core/example_group.rb +9 -8
- data/lib/rspec/core/expecting/with_rspec.rb +11 -0
- data/lib/rspec/core/extensions/object.rb +1 -1
- data/lib/rspec/core/formatters/base_formatter.rb +1 -6
- data/lib/rspec/core/hooks.rb +1 -1
- data/lib/rspec/core/metadata.rb +15 -5
- data/lib/rspec/core/option_parser.rb +17 -0
- data/lib/rspec/core/pending.rb +10 -1
- data/lib/rspec/core/rake_task.rb +32 -10
- data/lib/rspec/core/reporter.rb +1 -0
- data/lib/rspec/core/subject.rb +58 -59
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/world.rb +9 -4
- data/rspec-core.gemspec +4 -11
- data/spec/rspec/core/command_line_spec.rb +16 -5
- data/spec/rspec/core/configuration_options_spec.rb +6 -0
- data/spec/rspec/core/configuration_spec.rb +89 -6
- data/spec/rspec/core/deprecations_spec.rb +17 -1
- data/spec/rspec/core/example_group_spec.rb +29 -14
- data/spec/rspec/core/example_spec.rb +0 -7
- data/spec/rspec/core/formatters/html_formatted-1.8.6.html +49 -33
- data/spec/rspec/core/formatters/html_formatted-1.8.7.html +5 -5
- data/spec/rspec/core/formatters/html_formatted-1.9.1.html +46 -26
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +5 -5
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.6.html +49 -33
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +19 -19
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.1.html +56 -33
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +26 -38
- data/spec/rspec/core/metadata_spec.rb +153 -132
- data/spec/rspec/core/pending_example_spec.rb +133 -25
- data/spec/rspec/core/rake_task_spec.rb +25 -32
- data/spec/rspec/core/subject_spec.rb +15 -0
- data/spec/rspec/core/world_spec.rb +72 -61
- data/spec/spec_helper.rb +0 -14
- metadata +25 -135
- data/features/hooks/halt.feature +0 -26
data/lib/rspec/core/version.rb
CHANGED
data/lib/rspec/core/world.rb
CHANGED
@@ -18,6 +18,11 @@ module RSpec
|
|
18
18
|
}
|
19
19
|
end
|
20
20
|
|
21
|
+
def register(example_group)
|
22
|
+
example_groups << example_group
|
23
|
+
example_group
|
24
|
+
end
|
25
|
+
|
21
26
|
def inclusion_filter
|
22
27
|
@configuration.filter
|
23
28
|
end
|
@@ -39,13 +44,13 @@ module RSpec
|
|
39
44
|
end
|
40
45
|
|
41
46
|
def apply_inclusion_filters(examples, conditions={})
|
42
|
-
examples.select(&
|
47
|
+
examples.select(&apply?(:any?, conditions))
|
43
48
|
end
|
44
49
|
|
45
50
|
alias_method :find, :apply_inclusion_filters
|
46
51
|
|
47
52
|
def apply_exclusion_filters(examples, conditions={})
|
48
|
-
examples.reject(&
|
53
|
+
examples.reject(&apply?(:any?, conditions))
|
49
54
|
end
|
50
55
|
|
51
56
|
def preceding_declaration_line(filter_line)
|
@@ -82,8 +87,8 @@ module RSpec
|
|
82
87
|
|
83
88
|
private
|
84
89
|
|
85
|
-
def
|
86
|
-
lambda {|example| example.metadata.
|
90
|
+
def apply?(predicate, conditions)
|
91
|
+
lambda {|example| example.metadata.apply?(predicate, conditions)}
|
87
92
|
end
|
88
93
|
|
89
94
|
def declaration_line_numbers
|
data/rspec-core.gemspec
CHANGED
@@ -27,19 +27,12 @@ Gem::Specification.new do |s|
|
|
27
27
|
|
28
28
|
Thank you for installing #{s.summary}
|
29
29
|
|
30
|
-
Please be sure to look at
|
31
|
-
since the last release
|
30
|
+
Please be sure to look at the upgrade instructions to see what might have
|
31
|
+
changed since the last release:
|
32
|
+
|
33
|
+
http://github.com/rspec/rspec-core/blob/master/Upgrade.markdown
|
32
34
|
|
33
35
|
**************************************************
|
34
36
|
}
|
35
|
-
|
36
|
-
s.add_development_dependency "rspec-expectations", "~> 2.0.1"
|
37
|
-
s.add_development_dependency "rspec-mocks", "~> 2.0.1"
|
38
|
-
s.add_development_dependency "cucumber", "~> 0.9.2"
|
39
|
-
s.add_development_dependency "autotest", "~> 4.2.9"
|
40
|
-
s.add_development_dependency "syntax", "~> 1.0.0"
|
41
|
-
s.add_development_dependency "flexmock"
|
42
|
-
s.add_development_dependency "mocha"
|
43
|
-
s.add_development_dependency "rr"
|
44
37
|
end
|
45
38
|
|
@@ -31,19 +31,30 @@ module RSpec::Core
|
|
31
31
|
config_options
|
32
32
|
end
|
33
33
|
|
34
|
-
let(:command_line) do
|
35
|
-
CommandLine.new(config_options, config)
|
36
|
-
end
|
37
|
-
|
38
34
|
let(:config) do
|
39
35
|
RSpec::Core::Configuration.new
|
40
36
|
end
|
41
37
|
|
42
|
-
let(:
|
38
|
+
let(:world) do
|
39
|
+
RSpec::Core::World.new
|
40
|
+
end
|
41
|
+
|
42
|
+
let(:command_line) do
|
43
|
+
CommandLine.new(config_options, config, world)
|
44
|
+
end
|
45
|
+
|
43
46
|
let(:out) { ::StringIO.new }
|
47
|
+
let(:err) { ::StringIO.new }
|
44
48
|
|
45
49
|
before do
|
46
50
|
config.stub(:run_hook)
|
51
|
+
|
52
|
+
config.should_receive(:load_spec_files)
|
53
|
+
config.should_receive(:configure_mock_framework)
|
54
|
+
config.should_receive(:configure_expectation_framework)
|
55
|
+
|
56
|
+
world.should_receive(:announce_inclusion_filter)
|
57
|
+
world.should_receive(:announce_exclusion_filter)
|
47
58
|
end
|
48
59
|
|
49
60
|
it "configures streams before command line options" do
|
@@ -215,6 +215,12 @@ describe RSpec::Core::ConfigurationOptions do
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
+
describe "--fail-fast" do
|
219
|
+
it "sets fail_fast on config" do
|
220
|
+
options_from_args("--fail-fast").should include(:fail_fast => true)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
218
224
|
describe "options file (override)" do
|
219
225
|
let(:config) { OpenStruct.new }
|
220
226
|
|
@@ -14,7 +14,7 @@ module RSpec::Core
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
describe "
|
17
|
+
describe "mock_framework" do
|
18
18
|
before(:each) do
|
19
19
|
config.stub(:require)
|
20
20
|
end
|
@@ -46,6 +46,34 @@ module RSpec::Core
|
|
46
46
|
|
47
47
|
end
|
48
48
|
|
49
|
+
describe "expectation_framework" do
|
50
|
+
|
51
|
+
it "defaults to :rspec" do
|
52
|
+
config.should_receive(:require).with('rspec/core/expecting/with_rspec')
|
53
|
+
config.require_expectation_framework_adapter
|
54
|
+
end
|
55
|
+
|
56
|
+
[:rspec].each do |framework|
|
57
|
+
it "uses #{framework.inspect} framework when set explicitly" do
|
58
|
+
config.should_receive(:require).with("rspec/core/expecting/with_#{framework}")
|
59
|
+
config.mock_framework = framework
|
60
|
+
config.require_expectation_framework_adapter
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it "supports expect_with for backward compatibility with rspec-1.x" do
|
65
|
+
config.should_receive(:require).with('rspec/core/expecting/with_rspec')
|
66
|
+
config.mock_with :rspec
|
67
|
+
config.require_expectation_framework_adapter
|
68
|
+
end
|
69
|
+
|
70
|
+
it "raises ArgumentError if framework is not supported" do
|
71
|
+
config.expectation_framework = :not_supported
|
72
|
+
expect { config.require_expectation_framework_adapter }.to raise_error(ArgumentError)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
49
77
|
context "setting the files to run" do
|
50
78
|
|
51
79
|
it "loads files not following pattern if named explicitly" do
|
@@ -128,6 +156,11 @@ module RSpec::Core
|
|
128
156
|
end
|
129
157
|
|
130
158
|
context "with full_description" do
|
159
|
+
it "overrides :focused" do
|
160
|
+
config.filter_run :focused => true
|
161
|
+
config.full_description = "foo"
|
162
|
+
config.filter.should_not have_key(:focused)
|
163
|
+
end
|
131
164
|
|
132
165
|
it "assigns the example name as the filter on description" do
|
133
166
|
config.full_description = "foo"
|
@@ -368,9 +401,17 @@ module RSpec::Core
|
|
368
401
|
describe "#filter_run" do
|
369
402
|
it "sets the filter" do
|
370
403
|
config.filter_run :focus => true
|
371
|
-
config.filter.should
|
404
|
+
config.filter[:focus].should == true
|
372
405
|
end
|
373
|
-
|
406
|
+
|
407
|
+
it "merges with existing filters" do
|
408
|
+
config.filter_run :filter1 => true
|
409
|
+
config.filter_run :filter2 => false
|
410
|
+
|
411
|
+
config.filter[:filter1].should == true
|
412
|
+
config.filter[:filter2].should == false
|
413
|
+
end
|
414
|
+
|
374
415
|
it "warns if :line_number is already a filter" do
|
375
416
|
config.filter_run :line_number => 100
|
376
417
|
config.should_receive(:warn).with(
|
@@ -379,7 +420,7 @@ module RSpec::Core
|
|
379
420
|
)
|
380
421
|
config.filter_run :focus => true
|
381
422
|
end
|
382
|
-
|
423
|
+
|
383
424
|
it "warns if :full_description is already a filter" do
|
384
425
|
config.filter_run :full_description => 'foo'
|
385
426
|
config.should_receive(:warn).with(
|
@@ -393,13 +434,55 @@ module RSpec::Core
|
|
393
434
|
describe "#filter_run_excluding" do
|
394
435
|
it "sets the filter" do
|
395
436
|
config.filter_run_excluding :slow => true
|
396
|
-
config.exclusion_filter.should
|
437
|
+
config.exclusion_filter[:slow].should == true
|
438
|
+
end
|
439
|
+
|
440
|
+
it "merges with existing filters" do
|
441
|
+
config.filter_run_excluding :filter1 => true
|
442
|
+
config.filter_run_excluding :filter2 => false
|
443
|
+
|
444
|
+
config.exclusion_filter[:filter1].should == true
|
445
|
+
config.exclusion_filter[:filter2].should == false
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
describe "#exclusion_filter" do
|
450
|
+
describe "the default :if filter" do
|
451
|
+
it "does not exclude a spec with no :if metadata" do
|
452
|
+
config.exclusion_filter[:if].call(nil, {}).should be_false
|
453
|
+
end
|
454
|
+
|
455
|
+
it "does not exclude a spec with { :if => true } metadata" do
|
456
|
+
config.exclusion_filter[:if].call(true, {:if => true}).should be_false
|
457
|
+
end
|
458
|
+
|
459
|
+
it "excludes a spec with { :if => false } metadata" do
|
460
|
+
config.exclusion_filter[:if].call(false, {:if => false}).should be_true
|
461
|
+
end
|
462
|
+
|
463
|
+
it "excludes a spec with { :if => nil } metadata" do
|
464
|
+
config.exclusion_filter[:if].call(false, {:if => nil}).should be_true
|
465
|
+
end
|
466
|
+
end
|
467
|
+
|
468
|
+
describe "the default :unless filter" do
|
469
|
+
it "excludes a spec with { :unless => true } metadata" do
|
470
|
+
config.exclusion_filter[:unless].call(true).should be_true
|
471
|
+
end
|
472
|
+
|
473
|
+
it "does not exclude a spec with { :unless => false } metadata" do
|
474
|
+
config.exclusion_filter[:unless].call(false).should be_false
|
475
|
+
end
|
476
|
+
|
477
|
+
it "does not exclude a spec with { :unless => nil } metadata" do
|
478
|
+
config.exclusion_filter[:unless].call(nil).should be_false
|
479
|
+
end
|
397
480
|
end
|
398
481
|
end
|
399
482
|
|
400
483
|
describe "line_number=" do
|
401
484
|
before { config.stub(:warn) }
|
402
|
-
|
485
|
+
|
403
486
|
it "sets the line number" do
|
404
487
|
config.line_number = '37'
|
405
488
|
config.filter.should == {:line_number => 37}
|
@@ -16,7 +16,7 @@ describe "deprecations" do
|
|
16
16
|
describe RSpec::Core::ExampleGroup do
|
17
17
|
describe 'running_example' do
|
18
18
|
it 'is deprecated' do
|
19
|
-
RSpec.should_receive(:warn_deprecation)
|
19
|
+
RSpec.should_receive(:warn_deprecation)
|
20
20
|
self.running_example
|
21
21
|
end
|
22
22
|
|
@@ -26,4 +26,20 @@ describe "deprecations" do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
describe "Spec::Runner.configure" do
|
31
|
+
it "is deprecated" do
|
32
|
+
RSpec.stub(:warn_deprecation)
|
33
|
+
RSpec.should_receive(:deprecate)
|
34
|
+
Spec::Runner.configure
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "Spec::Rake::SpecTask" do
|
39
|
+
it "is deprecated" do
|
40
|
+
RSpec.stub(:warn_deprecation)
|
41
|
+
RSpec.should_receive(:deprecate)
|
42
|
+
Spec::Rake::SpecTask
|
43
|
+
end
|
44
|
+
end
|
29
45
|
end
|
@@ -70,16 +70,22 @@ module RSpec::Core
|
|
70
70
|
end
|
71
71
|
|
72
72
|
it "is not registered in world" do
|
73
|
+
world = RSpec::Core::World.new
|
73
74
|
parent = ExampleGroup.describe
|
75
|
+
world.register(parent)
|
74
76
|
child = parent.describe
|
75
|
-
|
77
|
+
world.example_groups.should == [parent]
|
76
78
|
end
|
77
79
|
end
|
78
80
|
|
79
81
|
describe "filtering" do
|
82
|
+
let(:world) { World.new }
|
83
|
+
|
80
84
|
it "includes all examples in an explicitly included group" do
|
81
|
-
|
85
|
+
world.stub(:inclusion_filter).and_return({ :awesome => true })
|
82
86
|
group = ExampleGroup.describe("does something", :awesome => true)
|
87
|
+
group.stub(:world) { world }
|
88
|
+
|
83
89
|
examples = [
|
84
90
|
group.example("first"),
|
85
91
|
group.example("second")
|
@@ -88,16 +94,19 @@ module RSpec::Core
|
|
88
94
|
end
|
89
95
|
|
90
96
|
it "includes explicitly included examples" do
|
91
|
-
|
97
|
+
world.stub(:inclusion_filter).and_return({ :include_me => true })
|
92
98
|
group = ExampleGroup.describe
|
99
|
+
group.stub(:world) { world }
|
93
100
|
example = group.example("does something", :include_me => true)
|
94
101
|
group.example("don't run me")
|
95
102
|
group.filtered_examples.should == [example]
|
96
103
|
end
|
97
104
|
|
98
105
|
it "excludes all examples in an excluded group" do
|
99
|
-
|
106
|
+
world.stub(:exclusion_filter).and_return({ :include_me => false })
|
100
107
|
group = ExampleGroup.describe("does something", :include_me => false)
|
108
|
+
group.stub(:world) { world }
|
109
|
+
|
101
110
|
examples = [
|
102
111
|
group.example("first"),
|
103
112
|
group.example("second")
|
@@ -106,8 +115,10 @@ module RSpec::Core
|
|
106
115
|
end
|
107
116
|
|
108
117
|
it "filters out excluded examples" do
|
109
|
-
|
118
|
+
world.stub(:exclusion_filter).and_return({ :exclude_me => true })
|
110
119
|
group = ExampleGroup.describe("does something")
|
120
|
+
group.stub(:world) { world }
|
121
|
+
|
111
122
|
examples = [
|
112
123
|
group.example("first", :exclude_me => true),
|
113
124
|
group.example("second")
|
@@ -118,6 +129,7 @@ module RSpec::Core
|
|
118
129
|
context "with no filters" do
|
119
130
|
it "returns all" do
|
120
131
|
group = ExampleGroup.describe
|
132
|
+
group.stub(:world) { world }
|
121
133
|
example = group.example("does something")
|
122
134
|
group.filtered_examples.should == [example]
|
123
135
|
end
|
@@ -125,8 +137,9 @@ module RSpec::Core
|
|
125
137
|
|
126
138
|
context "with no examples or groups that match filters" do
|
127
139
|
it "returns none" do
|
128
|
-
|
140
|
+
world.stub(:inclusion_filter).and_return({ :awesome => false })
|
129
141
|
group = ExampleGroup.describe
|
142
|
+
group.stub(:world) { world }
|
130
143
|
example = group.example("does something")
|
131
144
|
group.filtered_examples.should == []
|
132
145
|
end
|
@@ -626,10 +639,13 @@ module RSpec::Core
|
|
626
639
|
its([:another_attribute]) { should == 'another_value' }
|
627
640
|
its([:another_attribute]) { should_not == 'value' }
|
628
641
|
its(:keys) { should =~ ['another_attribute', :attribute] }
|
629
|
-
|
630
642
|
context "when referring to an attribute without the proper array syntax" do
|
631
|
-
it
|
632
|
-
|
643
|
+
context "it raises an error" do
|
644
|
+
its(:attribute) do
|
645
|
+
expect do
|
646
|
+
should eq('value')
|
647
|
+
end.to raise_error(NoMethodError)
|
648
|
+
end
|
633
649
|
end
|
634
650
|
end
|
635
651
|
end
|
@@ -687,20 +703,20 @@ module RSpec::Core
|
|
687
703
|
end
|
688
704
|
|
689
705
|
context "with RSpec.wants_to_quit=true" do
|
706
|
+
let(:group) { RSpec::Core::ExampleGroup.describe }
|
707
|
+
|
690
708
|
before do
|
691
|
-
RSpec.
|
692
|
-
RSpec.
|
709
|
+
RSpec.stub(:wants_to_quit) { true }
|
710
|
+
RSpec.stub(:clear_remaining_example_groups)
|
693
711
|
end
|
694
712
|
|
695
713
|
it "returns without starting the group" do
|
696
|
-
group = RSpec::Core::ExampleGroup.describe
|
697
714
|
reporter.should_not_receive(:example_group_started)
|
698
715
|
group.run(reporter)
|
699
716
|
end
|
700
717
|
|
701
718
|
context "at top level" do
|
702
719
|
it "purges remaining groups" do
|
703
|
-
group = RSpec::Core::ExampleGroup.describe
|
704
720
|
RSpec.should_receive(:clear_remaining_example_groups)
|
705
721
|
group.run(reporter)
|
706
722
|
end
|
@@ -708,7 +724,6 @@ module RSpec::Core
|
|
708
724
|
|
709
725
|
context "in a nested group" do
|
710
726
|
it "does not purge remaining groups" do
|
711
|
-
group = RSpec::Core::ExampleGroup.describe
|
712
727
|
nested_group = group.describe
|
713
728
|
RSpec.should_not_receive(:clear_remaining_example_groups)
|
714
729
|
nested_group.run(reporter)
|
@@ -9,13 +9,6 @@ describe RSpec::Core::Example, :parent_metadata => 'sample' do
|
|
9
9
|
example_group.example('example description')
|
10
10
|
end
|
11
11
|
|
12
|
-
describe "#behaviour" do
|
13
|
-
it "is deprecated" do
|
14
|
-
RSpec.should_receive(:deprecate)
|
15
|
-
example_instance.behaviour
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
12
|
describe '#described_class' do
|
20
13
|
it "returns the class (if any) of the outermost example group" do
|
21
14
|
described_class.should == RSpec::Core::Example
|
@@ -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('
|
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('
|
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,27 +207,23 @@ 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('
|
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:
|
216
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
217
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
218
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
219
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
220
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
221
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
<span class="linenum">12</span> <span class="keyword">end</span>
|
228
|
-
<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>
|
229
|
-
<span class="linenum">14</span> <span class="keyword">end</span>
|
230
|
-
<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>
|
215
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18
|
216
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
217
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
218
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
219
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
220
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
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">=></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>
|
231
227
|
</div>
|
232
228
|
</dd>
|
233
229
|
</dl>
|
@@ -235,7 +231,7 @@ a {
|
|
235
231
|
<div class="example_group">
|
236
232
|
<dl>
|
237
233
|
<dt id="example_group_5">passing spec</dt>
|
238
|
-
<script type="text/javascript">moveProgressBar('
|
234
|
+
<script type="text/javascript">moveProgressBar('57.1');</script>
|
239
235
|
<dd class="spec passed"><span class="passed_spec_name">passes</span></dd>
|
240
236
|
</dl>
|
241
237
|
</div>
|
@@ -243,7 +239,7 @@ a {
|
|
243
239
|
<dl>
|
244
240
|
<dt id="example_group_6">failing spec</dt>
|
245
241
|
<script type="text/javascript">makeRed('example_group_6');</script>
|
246
|
-
<script type="text/javascript">moveProgressBar('
|
242
|
+
<script type="text/javascript">moveProgressBar('71.4');</script>
|
247
243
|
<dd class="spec failed">
|
248
244
|
<span class="failed_spec_name">fails</span>
|
249
245
|
<div class="failure" id="failure_0">
|
@@ -253,17 +249,13 @@ expected 2
|
|
253
249
|
|
254
250
|
(compared using ==)
|
255
251
|
</pre></div>
|
256
|
-
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:
|
257
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
258
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
259
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
260
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
261
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
262
|
-
./spec/rspec/core/formatters/html_formatter_spec.rb:
|
263
|
-
./spec/spec_helper.rb:70:in `__instance_exec0'
|
264
|
-
./spec/spec_helper.rb:46:in `instance_eval'
|
265
|
-
./spec/spec_helper.rb:46:in `sandboxed'
|
266
|
-
./spec/spec_helper.rb:70:in `__instance_exec0'</pre></div>
|
252
|
+
<div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33
|
253
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:24
|
254
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
255
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46:in `open'
|
256
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:46
|
257
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45:in `chdir'
|
258
|
+
./spec/rspec/core/formatters/html_formatter_spec.rb:45</pre></div>
|
267
259
|
<pre class="ruby"><code><span class="linenum">27</span> <span class="keyword">end</span>
|
268
260
|
<span class="linenum">28</span>
|
269
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>
|
@@ -272,8 +264,32 @@ expected 2
|
|
272
264
|
</dd>
|
273
265
|
</dl>
|
274
266
|
</div>
|
267
|
+
<div class="example_group">
|
268
|
+
<dl>
|
269
|
+
<dt id="example_group_7">a failing spec with odd backtraces</dt>
|
270
|
+
<script type="text/javascript">makeRed('example_group_7');</script>
|
271
|
+
<script type="text/javascript">moveProgressBar('85.7');</script>
|
272
|
+
<dd class="spec failed">
|
273
|
+
<span class="failed_spec_name">fails with a backtrace that has no file</span>
|
274
|
+
<div class="failure" id="failure_0">
|
275
|
+
<div class="message"><pre>foo</pre></div>
|
276
|
+
<div class="backtrace"><pre>(erb):1</pre></div>
|
277
|
+
<pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
|
278
|
+
</div>
|
279
|
+
</dd>
|
280
|
+
<script type="text/javascript">moveProgressBar('100.0');</script>
|
281
|
+
<dd class="spec failed">
|
282
|
+
<span class="failed_spec_name">fails with a backtrace containing an erb file</span>
|
283
|
+
<div class="failure" id="failure_0">
|
284
|
+
<div class="message"><pre>Exception</pre></div>
|
285
|
+
<div class="backtrace"><pre>/foo.html.erb:1:in `<main>': foo (RuntimeError)</pre></div>
|
286
|
+
<pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
|
287
|
+
</div>
|
288
|
+
</dd>
|
289
|
+
</dl>
|
290
|
+
</div>
|
275
291
|
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
|
276
|
-
<script type="text/javascript">document.getElementById('totals').innerHTML = "
|
292
|
+
<script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
|
277
293
|
</div>
|
278
294
|
</div>
|
279
295
|
</body>
|