class RSpec::Core::Reporter
def deprecation(message)
def deprecation(message) notify :deprecation, message end
def example_failed(example)
def example_failed(example) @failure_count += 1 notify :example_failed, example end
def example_group_finished(group)
def example_group_finished(group) notify :example_group_finished, group unless group.descendant_filtered_examples.empty? end
def example_group_started(group)
def example_group_started(group) notify :example_group_started, group unless group.descendant_filtered_examples.empty? end
def example_passed(example)
def example_passed(example) notify :example_passed, example end
def example_pending(example)
def example_pending(example) @pending_count += 1 notify :example_pending, example end
def example_started(example)
def example_started(example) @example_count += 1 notify :example_started, example end
def finish(seed)
def finish(seed) begin stop notify :start_dump notify :dump_pending notify :dump_failures notify :dump_summary, @duration, @example_count, @failure_count, @pending_count notify :deprecation_summary notify :seed, seed if seed ensure notify :close end end
def initialize(*formatters)
def initialize(*formatters) @listeners = Hash.new { |h,k| h[k] = [] } formatters.each do |formatter| register_listener(formatter, *NOTIFICATIONS) end @example_count = @failure_count = @pending_count = 0 @duration = @start = nil end
def message(message)
def message(message) notify :message, message end
def notify(event, *args, &block)
def notify(event, *args, &block) registered_listeners(event).each do |formatter| formatter.send(event, *args, &block) end end
def register_listener(listener, *notifications)
-
Array
(Array
) -- of symbols represents the events a listener wishes to subscribe too -
An
(Object
) -- obect that wishes to be notified of reporter events
Other tags:
- Api: -
def register_listener(listener, *notifications) notifications.each do |notification| @listeners[notification.to_sym] << listener if listener.respond_to?(notification) end true end
def registered_listeners(notification)
def registered_listeners(notification) @listeners[notification] end
def report(expected_example_count, seed=nil)
-
block
(Block
) -- yields itself for further reporting. -
seed
(Integer
) -- the seed used to randomize the spec run -
count
(Integer
) -- the number of examples being run
Overloads:
-
report(count, seed, &block)
-
report(count, &block)
Other tags:
- Api: -
def report(expected_example_count, seed=nil) start(expected_example_count) begin yield self ensure finish(seed) end end
def start(expected_example_count)
def start(expected_example_count) @start = RSpec::Core::Time.now notify :start, expected_example_count end
def stop
def stop @duration = (RSpec::Core::Time.now - @start).to_f if @start notify :stop end