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 methods needed to be implemented by a formatter, as they are called from the reporter.

Direct Known Subclasses

BaseTextFormatter, JsonFormatter

Constant Summary

Constants included from Helpers

Helpers::DEFAULT_PRECISION, Helpers::SUB_SECOND_PRECISION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#format_duration, #format_seconds, #pluralize, #strip_trailing_zeroes

Constructor Details

#initialize(output) ⇒ BaseFormatter

Returns a new instance of BaseFormatter.

Parameters:

API:

  • public



23
24
25
26
27
28
29
30
# File 'lib/rspec/core/formatters/base_formatter.rb', line 23

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

#durationObject (readonly)

Returns the value of attribute duration.



16
17
18
# File 'lib/rspec/core/formatters/base_formatter.rb', line 16

def duration
  @duration
end

#example_countObject (readonly)

Returns the value of attribute example_count.



17
18
19
# File 'lib/rspec/core/formatters/base_formatter.rb', line 17

def example_count
  @example_count
end

#example_groupObject

Returns the value of attribute example_group.



15
16
17
# File 'lib/rspec/core/formatters/base_formatter.rb', line 15

def example_group
  @example_group
end

#examplesObject (readonly)

Returns the value of attribute examples.



16
17
18
# File 'lib/rspec/core/formatters/base_formatter.rb', line 16

def examples
  @examples
end

#failed_examplesObject (readonly)

Returns the value of attribute failed_examples.



18
19
20
# File 'lib/rspec/core/formatters/base_formatter.rb', line 18

def failed_examples
  @failed_examples
end

#failure_countObject (readonly)

Returns the value of attribute failure_count.



17
18
19
# File 'lib/rspec/core/formatters/base_formatter.rb', line 17

def failure_count
  @failure_count
end

#outputObject (readonly)

Returns the value of attribute output.



16
17
18
# File 'lib/rspec/core/formatters/base_formatter.rb', line 16

def output
  @output
end

#pending_countObject (readonly)

Returns the value of attribute pending_count.



17
18
19
# File 'lib/rspec/core/formatters/base_formatter.rb', line 17

def pending_count
  @pending_count
end

#pending_examplesObject (readonly)

Returns the value of attribute pending_examples.



18
19
20
# File 'lib/rspec/core/formatters/base_formatter.rb', line 18

def pending_examples
  @pending_examples
end

Instance Method Details

#closeObject

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

API:

  • public



172
173
174
# File 'lib/rspec/core/formatters/base_formatter.rb', line 172

def close
  restore_sync_output
end

#dump_failuresnil

Dumps detailed information about each example failure.

Returns:

API:

  • public



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

def dump_failures
end

#dump_pendingnil

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

Returns:

API:

  • public



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

def dump_pending
end

#dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object

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

Parameters:

API:

  • public



148
149
150
151
152
153
# File 'lib/rspec/core/formatters/base_formatter.rb', line 148

def dump_summary(duration, example_count, failure_count, pending_count)
  @duration = duration
  @example_count = example_count
  @failure_count = failure_count
  @pending_count = pending_count
end

#example_failed(example) ⇒ Array

Invoked when an example fails.

Parameters:

  • instance of subclass of RSpec::Core::ExampleGroup

Returns:

API:

  • public



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

def example_failed(example)
  @failed_examples << example
end

#example_group_finished(example_group) ⇒ Object

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

Parameters:

  • subclass of RSpec::Core::ExampleGroup

API:

  • public



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

def example_group_finished(example_group)
end

#example_group_started(example_group) ⇒ Object

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:

  • subclass of RSpec::Core::ExampleGroup

API:

  • public



57
58
59
# File 'lib/rspec/core/formatters/base_formatter.rb', line 57

def example_group_started(example_group)
  @example_group = example_group
end

#example_passed(example) ⇒ Object

Invoked when an example passes.

Parameters:

  • instance of subclass of RSpec::Core::ExampleGroup

API:

  • public



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

def example_passed(example)
end

#example_pending(example) ⇒ Array

Invoked when an example is pending.

Parameters:

  • instance of subclass of RSpec::Core::ExampleGroup

Returns:



91
92
93
# File 'lib/rspec/core/formatters/base_formatter.rb', line 91

def example_pending(example)
  @pending_examples << example
end

#example_started(example) ⇒ Array

Invoked at the beginning of the execution of each example.

Parameters:

  • instance of subclass of RSpec::Core::ExampleGroup

Returns:

API:

  • public



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

def example_started(example)
  examples << example
end

#format_backtrace(backtrace, example) ⇒ Object

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

API:

  • public



180
181
182
# File 'lib/rspec/core/formatters/base_formatter.rb', line 180

def format_backtrace(backtrace, example)
  super(backtrace, example.)
end

#message(message) ⇒ Object

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

Parameters:

API:

  • public



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

def message(message)
end

#start(example_count) ⇒ Object

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:

API:

  • public



42
43
44
45
# File 'lib/rspec/core/formatters/base_formatter.rb', line 42

def start(example_count)
  start_sync_output
  @example_count = example_count
end

#start_dumpnil

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.)

Returns:

API:

  • public



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

def start_dump
end

#stopnil

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

Returns:

API:

  • public



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

def stop
end