Class: RSpec::Core::Formatters::BaseFormatter

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/rspec/core/formatters/base_formatter.rb

Overview

RSpec's built-in formatters are all subclasses of RSpec::Core::Formatters::BaseTextFormatter, but the BaseTextFormatter documents all of the notifications implemented as part of the standard interface. The reporter will issue these during a normal test suite run, but a formatter will only receive those notifications it has registered itself to receive.

See Also:

Direct Known Subclasses

BaseTextFormatter

Constant Summary

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods included from Helpers

#format_duration, #format_seconds, #pluralize, #strip_trailing_zeroes

Constructor Details

- (BaseFormatter) initialize(output)

Returns a new instance of BaseFormatter

Parameters:

  • output (IO)

    the formatter output



27
28
29
30
31
32
33
34
# File 'lib/rspec/core/formatters/base_formatter.rb', line 27

def initialize(output)
  @output = output || StringIO.new
  @example_count = @pending_count = @failure_count = 0
  @examples = []
  @failed_examples = []
  @pending_examples = []
  @example_group = nil
end

Instance Attribute Details

- (void) example_group

Returns the value of attribute example_group



20
21
22
# File 'lib/rspec/core/formatters/base_formatter.rb', line 20

def example_group
  @example_group
end

- (void) examples (readonly)

Returns the value of attribute examples



21
22
23
# File 'lib/rspec/core/formatters/base_formatter.rb', line 21

def examples
  @examples
end

- (void) failed_examples (readonly)

Returns the value of attribute failed_examples



22
23
24
# File 'lib/rspec/core/formatters/base_formatter.rb', line 22

def failed_examples
  @failed_examples
end

- (void) output (readonly)

Returns the value of attribute output



21
22
23
# File 'lib/rspec/core/formatters/base_formatter.rb', line 21

def output
  @output
end

- (void) pending_examples (readonly)

Returns the value of attribute pending_examples



22
23
24
# File 'lib/rspec/core/formatters/base_formatter.rb', line 22

def pending_examples
  @pending_examples
end

Instance Method Details

- (void) close(notification)

Invoked at the very end, close allows the formatter to clean up resources, e.g. open streams, etc.

Parameters:

  • notification (NullNotification)


155
156
157
# File 'lib/rspec/core/formatters/base_formatter.rb', line 155

def close(notification)
  restore_sync_output
end

- (void) dump_failures

Dumps detailed information about each example failure.

Parameters:

  • notification (NullNotification)


# File 'lib/rspec/core/formatters/base_formatter.rb', line 125

- (void) dump_pending

Outputs a report of pending examples. This gets invoked after the summary if option is set to do so.

Parameters:

  • notification (NullNotification)


# File 'lib/rspec/core/formatters/base_formatter.rb', line 141

- (void) dump_summary

This method is invoked after the dumping of examples and failures. Each parameter is assigned to a corresponding attribute.

Parameters:

  • summary (SummaryNotification)

    containing duration, example_count, failure_count and pending_count



# File 'lib/rspec/core/formatters/base_formatter.rb', line 132

- (void) example_failed(notification)

Invoked when an example fails.

Parameters:

  • notification (ExampleNotification)

    containing example subclass of RSpec::Core::Example



98
99
100
# File 'lib/rspec/core/formatters/base_formatter.rb', line 98

def example_failed(notification)
  @failed_examples << notification.example
end

- (void) example_group_finished

Invoked at the end of the execution of each example group.

Parameters:

  • notification (GroupNotification)

    containing example_group subclass of RSpec::Core::ExampleGroup



# File 'lib/rspec/core/formatters/base_formatter.rb', line 63

- (void) example_group_started(notification)

This method is invoked at the beginning of the execution of each example group.

The next method to be invoked after this is #example_passed, #example_pending, or #example_group_finished.

Parameters:

  • notification (GroupNotification)

    containing example_group subclass of RSpec::Core::ExampleGroup



59
60
61
# File 'lib/rspec/core/formatters/base_formatter.rb', line 59

def example_group_started(notification)
  @example_group = notification.group
end

- (void) example_passed

Invoked when an example passes.

Parameters:

  • notification (ExampleNotification)

    containing example subclass of RSpec::Core::Example



# File 'lib/rspec/core/formatters/base_formatter.rb', line 79

- (void) example_pending(notification)

Invoked when an example is pending.

Parameters:

  • notification (ExampleNotification)

    containing example subclass of RSpec::Core::Example



89
90
91
# File 'lib/rspec/core/formatters/base_formatter.rb', line 89

def example_pending(notification)
  @pending_examples << notification.example
end

- (void) example_started(notification)

Invoked at the beginning of the execution of each example.

Parameters:

  • notification (ExampleNotification)

    containing example subclass of RSpec::Core::Example



75
76
77
# File 'lib/rspec/core/formatters/base_formatter.rb', line 75

def example_started(notification)
  examples << notification.example
end

- (void) format_backtrace(backtrace, example)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Formats the given backtrace based on configuration and the metadata of the given example.



163
164
165
# File 'lib/rspec/core/formatters/base_formatter.rb', line 163

def format_backtrace(backtrace, example)
  configuration.backtrace_formatter.format_backtrace(backtrace, example.)
end

- (void) message

Used by the reporter to send messages to the output stream.

Parameters:

  • notification (MessageNotification)

    containing message



# File 'lib/rspec/core/formatters/base_formatter.rb', line 102

- (void) start(notification)

This method is invoked before any examples are run, right after they have all been collected. This can be useful for special formatters that need to provide progress on feedback (graphical ones).

This will only be invoked once, and the next one to be invoked is #example_group_started.

Parameters:

  • notification (StartNotification)


46
47
48
49
# File 'lib/rspec/core/formatters/base_formatter.rb', line 46

def start(notification)
  start_sync_output
  @example_count = notification.count
end

- (void) start_dump

This method is invoked after all of the examples have executed. The next method to be invoked after this one is #dump_failures (BaseTextFormatter then calls #dump_failure once for each failed example.)

Parameters:

  • notification (NullNotification)


# File 'lib/rspec/core/formatters/base_formatter.rb', line 116

- (void) stop

Invoked after all examples have executed, before dumping post-run reports.

Parameters:

  • notification (NullNotification)


# File 'lib/rspec/core/formatters/base_formatter.rb', line 109