Class: RSpec::Core::Reporter

### Home Classes Methods

### In Files

- lib/rspec/core/reporter.rb

### Parent

Object

### Methods

- ::new
- #abort
- #deprecation
- #example_failed
- #example_group_finished
- #example_group_started
- #example_passed
- #example_pending
- #example_started
- #finish
- #message
- #notify
- #register_listener
- #registered_listeners
- #report
- #start
- #stop

### Class/Module Index

Quicksearch

- RSpec
- RSpec::Core
- RSpec::Core::BacktraceCleaner
- RSpec::Core::BacktraceFormatter
- RSpec::Core::CommandLine
- RSpec::Core::Configuration
- RSpec::Core::Configuration::MustBeConfiguredBeforeExampleGroupsError
- RSpec::Core::ConfigurationOptions
- RSpec::Core::ConstMissing
- RSpec::Core::DRbCommandLine
- RSpec::Core::DSL
- RSpec::Core::Deprecation
- RSpec::Core::DrbOptions
- RSpec::Core::Example
- RSpec::Core::Example::NotPendingExampleFixed
- RSpec::Core::Example::Procsy
- RSpec::Core::ExampleGroup
- RSpec::Core::Extensions
- RSpec::Core::Extensions::InstanceEvalWithArgs
- RSpec::Core::Extensions::ModuleEvalWithArgs
- RSpec::Core::Extensions::Ordered
- RSpec::Core::Extensions::Ordered::ExampleGroups
- RSpec::Core::Extensions::Ordered::Examples
- RSpec::Core::FilterManager
- RSpec::Core::FilterManager::BackwardCompatibility
- RSpec::Core::FilterManager::Describable
- RSpec::Core::Formatters
- RSpec::Core::Formatters::BaseFormatter
- RSpec::Core::Formatters::BaseTextFormatter
- RSpec::Core::Formatters::DeprecationFormatter
- RSpec::Core::Formatters::DocumentationFormatter
- RSpec::Core::Formatters::Helpers
- RSpec::Core::Formatters::HtmlFormatter
- RSpec::Core::Formatters::HtmlPrinter
- RSpec::Core::Formatters::JsonFormatter
- RSpec::Core::Formatters::ProgressFormatter
- RSpec::Core::Formatters::SnippetExtractor
- RSpec::Core::Formatters::SnippetExtractor::NullConverter
- RSpec::Core::Formatters::TextMateFormatter
- RSpec::Core::Hooks
- RSpec::Core::Hooks::AfterAllHook
- RSpec::Core::Hooks::AfterHook
- RSpec::Core::Hooks::AroundHook
- RSpec::Core::Hooks::AroundHookCollection
- RSpec::Core::Hooks::BeforeHook
- RSpec::Core::Hooks::GroupHookCollection
- RSpec::Core::Hooks::Hook
- RSpec::Core::Hooks::HookCollection
- RSpec::Core::Hooks::HookCollectionAliases
- RSpec::Core::Hooks::RegistersGlobals
- RSpec::Core::MemoizedHelpers
- RSpec::Core::MemoizedHelpers::BeforeAllMemoizedHash
- RSpec::Core::MemoizedHelpers::ClassMethods
- RSpec::Core::Metadata
- RSpec::Core::Metadata::ExampleMetadataHash
- RSpec::Core::Metadata::GroupMetadataHash
- RSpec::Core::Metadata::MetadataHash
- RSpec::Core::MetadataHashBuilder
- RSpec::Core::MetadataHashBuilder::Common
- RSpec::Core::MetadataHashBuilder::WithConfigWarning
- RSpec::Core::MetadataHashBuilder::WithDeprecationWarning
- RSpec::Core::MockFrameworkAdapter
- RSpec::Core::Parser
- RSpec::Core::Pending
- RSpec::Core::Pending::PendingDeclaredInExample
- RSpec::Core::Pending::PendingExampleFixedError
- RSpec::Core::ProjectInitializer
- RSpec::Core::RakeTask
- RSpec::Core::Reporter
- RSpec::Core::RubyProject
- RSpec::Core::Runner
- RSpec::Core::SharedContext
- RSpec::Core::SharedExampleGroup
- RSpec::Core::SharedExampleGroup::Collection
- RSpec::Core::SharedExampleGroup::Registry
- RSpec::Core::SharedExampleGroup::TopLevelDSL
- RSpec::Core::Time
- RSpec::Core::Version
- RSpec::Core::World
- RSpec::Rake
- RSpec::Runner
- Autotest
- Autotest::Rspec2
- Kernel

No matching classes.

# RSpec::Core::Reporter

### Constants

NOTIFICATIONS

### Public Class Methods

new(*formatters) click to toggle source

    # File lib/rspec/core/reporter.rb, line 7
    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

### Public Instance Methods

abort(seed) click to toggle source
Alias for: finish
deprecation(message) click to toggle source

    # File lib/rspec/core/reporter.rb, line 100
    def deprecation(message)
      notify :deprecation, message
    end

example_failed(example) click to toggle source

    # File lib/rspec/core/reporter.rb, line 90
    def example_failed(example)
      @failure_count += 1
      notify :example_failed, example
    end

example_group_finished(group) click to toggle source

    # File lib/rspec/core/reporter.rb, line 77
    def example_group_finished(group)
      notify :example_group_finished, group unless group.descendant_filtered_examples.empty?
    end

example_group_started(group) click to toggle source

    # File lib/rspec/core/reporter.rb, line 73
    def example_group_started(group)
      notify :example_group_started, group unless group.descendant_filtered_examples.empty?
    end

example_passed(example) click to toggle source

    # File lib/rspec/core/reporter.rb, line 86
    def example_passed(example)
      notify :example_passed, example
    end

example_pending(example) click to toggle source

    # File lib/rspec/core/reporter.rb, line 95
    def example_pending(example)
      @pending_count += 1
      notify :example_pending, example
    end

example_started(example) click to toggle source

    # File lib/rspec/core/reporter.rb, line 81
    def example_started(example)
      @example_count += 1
      notify :example_started, example
    end

finish(seed) click to toggle source

    # File lib/rspec/core/reporter.rb, line 104
    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

Also aliased as: abort
message(message) click to toggle source

    # File lib/rspec/core/reporter.rb, line 69
    def message(message)
      notify :message, message
    end

notify(event, *args, &block) click to toggle source

    # File lib/rspec/core/reporter.rb, line 125
    def notify(event, *args, &block)
      registered_listeners(event).each do |formatter|
        formatter.send(event, *args, &block)
      end
    end

register_listener(listener, *notifications) click to toggle source

@api @param [Object] An obect that wishes to be notified of reporter events @param [Array] Array of symbols represents the events a listener wishes to subscribe too

Registers a listener to a list of notifications. The reporter will send notification of events to all registered listeners

    # File lib/rspec/core/reporter.rb, line 22
    def register_listener(listener, *notifications)
      notifications.each do |notification|
        @listeners[notification.to_sym] << listener if listener.respond_to?(notification)
      end
      true
    end

registered_listeners(notification) click to toggle source

    # File lib/rspec/core/reporter.rb, line 29
    def registered_listeners(notification)
      @listeners[notification]
    end

report(expected_example_count, seed=nil) click to toggle source

@api @overload report(count, &block) @overload report(count, seed, &block) @param [Integer] count the number of examples being run @param [Integer] seed the seed used to randomize the spec run @param [Block] block yields itself for further reporting.

Initializes the report run and yields itself for further reporting. The block is required, so that the reporter can manage cleaning up after the run.

### Warning:

The `seed` argument is an internal API and is not guaranteed to be supported in the future.

@example

    reporter.report(group.examples.size) do |r|
      example_groups.map {|g| g.run(r) }
    end

    # File lib/rspec/core/reporter.rb, line 55
    def report(expected_example_count, seed=nil)
      start(expected_example_count)
      begin
        yield self
      ensure
        finish(seed)
      end
    end

start(expected_example_count) click to toggle source

    # File lib/rspec/core/reporter.rb, line 64
    def start(expected_example_count)
      @start = RSpec::Core::Time.now
      notify :start, expected_example_count
    end

stop() click to toggle source

    # File lib/rspec/core/reporter.rb, line 120
    def stop
      @duration = (RSpec::Core::Time.now - @start).to_f if @start
      notify :stop
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.