Rspec Steps C0 Coverage Information - RCov

rcov/ruby/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb

Name Total Lines Lines of Code Total Coverage Code Coverage
rcov/ruby/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example.rb 167 138
85.63%
82.61%

Key

Code reported as executed by Ruby looks like this...and this: this line is also marked as covered.Lines considered as run by rcov, but not reported by Ruby, look like this,and this: these lines were inferred by rcov (using simple heuristics).Finally, here's a line marked as not executed.

Coverage Details

1 module RSpec
2   module Core
3     class Example
4 
5       attr_reader :metadata, :options, :example_group_instance
6 
7       def self.delegate_to_metadata(*keys)
8         keys.each do |key|
9           define_method(key) {@metadata[key]}
10         end
11       end
12 
13       delegate_to_metadata :description, :full_description, :execution_result, :file_path, :pending, :location
14 
15       def initialize(example_group_class, desc, options, example_block=nil)
16         @example_group_class, @options, @example_block = example_group_class, options, example_block
17         @metadata  = @example_group_class.metadata.for_example(desc, options)
18         @exception = nil
19         @pending_declared_in_example = false
20       end
21 
22       def example_group
23         @example_group_class
24       end
25 
26       def around_hooks
27         @around_hooks ||= example_group.around_hooks_for(self)
28       end
29 
30       def apply?(predicate, filters)
31         @metadata.apply?(predicate, filters) ||
32         @example_group_class.apply?(predicate, filters)
33       end
34 
35       alias_method :pending?, :pending
36 
37       def run(example_group_instance, reporter)
38         @example_group_instance = example_group_instance
39         @example_group_instance.example = self
40 
41         start(reporter)
42 
43         begin
44           unless pending
45             with_pending_capture do
46               with_around_hooks do
47                 begin
48                   run_before_each
49                   @example_group_instance.instance_eval(&@example_block)
50                 rescue Exception => e
51                   set_exception(e)
52                 ensure
53                   run_after_each
54                 end
55               end
56             end
57           end
58         rescue Exception => e
59           set_exception(e)
60         ensure
61           @example_group_instance.example = nil
62           assign_auto_description
63         end
64 
65         finish(reporter)
66       end
67 
68       def set_exception(exception)
69         @exception ||= exception
70       end
71 
72       def fail_fast(reporter, exception)
73         start(reporter)
74         set_exception(exception)
75         finish(reporter)
76       end
77 
78       def self.procsy(metadata, &block)
79         Proc.new(&block).extend(Procsy).with(metadata)
80       end
81 
82       module Procsy
83         attr_reader :metadata
84 
85         def self.extended(object)
86           def object.run; call; end
87         end
88 
89         def with(metadata)
90           @metadata = metadata
91           self
92         end
93       end
94 
95     private
96 
97       def with_pending_capture
98         @pending_declared_in_example = catch(:pending_declared_in_example) do
99           yield
100           throw :pending_declared_in_example, false
101         end
102       end
103 
104       def with_around_hooks(&block)
105         if around_hooks.empty?
106           yield
107         else
108           @example_group_class.eval_around_eachs(self, Example.procsy(metadata, &block)).call
109         end
110       end
111 
112       def start(reporter)
113         reporter.example_started(self)
114         record :started_at => Time.now
115       end
116 
117       def finish(reporter)
118         if @exception
119           record_finished 'failed', :exception => @exception
120           reporter.example_failed self
121           false
122         elsif @pending_declared_in_example
123           record_finished 'pending', :pending_message => @pending_declared_in_example
124           reporter.example_pending self
125           true
126         elsif pending
127           record_finished 'pending', :pending_message => 'Not Yet Implemented'
128           reporter.example_pending self
129           true
130         else
131           record_finished 'passed'
132           reporter.example_passed self
133           true
134         end
135       end
136 
137       def record_finished(status, results={})
138         finished_at = Time.now
139         record results.merge(:status => status, :finished_at => finished_at, :run_time => (finished_at - execution_result[:started_at]))
140       end
141 
142       def run_before_each
143         @example_group_instance.setup_mocks_for_rspec if @example_group_instance.respond_to?(:setup_mocks_for_rspec)
144         @example_group_class.eval_before_eachs(self)
145       end
146 
147       def run_after_each
148         @example_group_class.eval_after_eachs(self)
149         @example_group_instance.verify_mocks_for_rspec if @example_group_instance.respond_to?(:verify_mocks_for_rspec)
150       ensure
151         @example_group_instance.teardown_mocks_for_rspec if @example_group_instance.respond_to?(:teardown_mocks_for_rspec)
152       end
153 
154       def assign_auto_description
155         if description.empty? and !pending?
156           metadata[:description] = RSpec::Matchers.generated_description
157           RSpec::Matchers.clear_generated_description
158         end
159       end
160 
161       def record(results={})
162         execution_result.update(results)
163       end
164 
165     end
166   end
167 end

Generated on Fri Apr 22 17:22:42 -0700 2011 with rcov 0.9.8