class RSpec::Core::Reporter
spec suite run.
A reporter will send notifications to listeners, usually formatters for the
def deprecation(hash)
- Private: -
def deprecation(hash) notify :deprecation, Notifications::DeprecationNotification.from_hash(hash) end
def example_failed(example)
- Private: -
def example_failed(example) @failed_examples << example notify :example_failed, Notifications::ExampleNotification.for(example) end
def example_group_finished(group)
- Private: -
def example_group_finished(group) notify :example_group_finished, Notifications::GroupNotification.new(group) unless group.descendant_filtered_examples.empty? end
def example_group_started(group)
- Private: -
def example_group_started(group) notify :example_group_started, Notifications::GroupNotification.new(group) unless group.descendant_filtered_examples.empty? end
def example_passed(example)
- Private: -
def example_passed(example) notify :example_passed, Notifications::ExampleNotification.for(example) end
def example_pending(example)
- Private: -
def example_pending(example) @pending_examples << example notify :example_pending, Notifications::ExampleNotification.for(example) end
def example_started(example)
- Private: -
def example_started(example) @examples << example notify :example_started, Notifications::ExampleNotification.for(example) end
def finish
- Private: -
def finish stop notify :start_dump, Notifications::NullNotification notify :dump_pending, Notifications::ExamplesNotification.new(self) notify :dump_failures, Notifications::ExamplesNotification.new(self) notify :deprecation_summary, Notifications::NullNotification unless mute_profile_output? notify :dump_profile, Notifications::ProfileNotification.new(@duration, @examples, @configuration.profile_examples) end notify :dump_summary, Notifications::SummaryNotification.new(@duration, @examples, @failed_examples, @pending_examples, @load_time) notify :seed, Notifications::SeedNotification.new(@configuration.seed, seed_used?) ensure notify :close, Notifications::NullNotification end
def initialize(configuration)
def initialize(configuration) @configuration = configuration @listeners = Hash.new { |h, k| h[k] = Set.new } @examples = [] @failed_examples = [] @pending_examples = [] @duration = @start = @load_time = nil end
def message(message)
- Private: -
def message(message) notify :message, Notifications::MessageNotification.new(message) end
def mute_profile_output?
def mute_profile_output? # Don't print out profiled info if there are failures and `--fail-fast` is # used, it just clutters the output. !@configuration.profile_examples? || (@configuration.fail_fast? && @failed_examples.size > 0) end
def notify(event, notification)
- Private: -
def notify(event, notification) registered_listeners(event).each do |formatter| formatter.__send__(event, notification) end end
def register_listener(listener, *notifications)
-
notifications
(Array
) -- Array of symbols represents the events a -
listener
(Object
) -- An obect that wishes to be notified of reporter
def register_listener(listener, *notifications) notifications.each do |notification| @listeners[notification.to_sym] << listener end true end
def registered_listeners(notification)
- Private: -
def registered_listeners(notification) @listeners[notification].to_a end
def report(expected_example_count)
- Yield: - block yields itself for further reporting.
Parameters:
-
expected_example_count
(Integer
) -- the number of examples being run
Overloads:
-
report(count, &block)
-
report(count, &block)
Other tags:
- Api: -
def report(expected_example_count) start(expected_example_count) begin yield self ensure finish end end
def reset
- Private: -
def reset @examples = [] @failed_examples = [] @pending_examples = [] end
def seed_used?
def seed_used? @configuration.seed && @configuration.seed_used? end
def start(expected_example_count, time=RSpec::Core::Time.now)
- Private: -
def start(expected_example_count, time=RSpec::Core::Time.now) @start = time @load_time = (@start - @configuration.start_time).to_f notify :start, Notifications::StartNotification.new(expected_example_count, @load_time) notify :seed, Notifications::SeedNotification.new(@configuration.seed, seed_used?) end
def stop
- Private: -
def stop @duration = (RSpec::Core::Time.now - @start).to_f if @start notify :stop, Notifications::ExamplesNotification.new(self) end