Parent

Class/Module Index [+]

Quicksearch

RSpec::Core::Formatters::BaseFormatter

Attributes

duration[R]
example_count[R]
example_group[RW]
examples[R]
failed_examples[R]
failure_count[R]
output[R]
pending_count[R]
pending_examples[R]

Public Class Methods

new(output) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 22
def initialize(output)
  @output = output || StringIO.new
  @example_count = @pending_count = @failure_count = 0
  @examples = []
  @failed_examples = []
  @pending_examples = []
  @example_group = nil
end
relative_path(line) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 15
def self.relative_path(line)
  line = line.sub(File.expand_path("."), ".")
  line = line.sub(/\A([^:]+:\d+)$/, '\1')
  return nil if line == '-e:1'
  line
end

Public Instance Methods

close() click to toggle source

This method is invoked at the very end. Allows the formatter to clean up, like closing open streams.

# File lib/rspec/core/formatters/base_formatter.rb, line 99
def close
  restore_sync_output
end
dump_failures() click to toggle source

Dumps detailed information about each example failure.

# File lib/rspec/core/formatters/base_formatter.rb, line 83
def dump_failures
end
dump_pending() click to toggle source

This gets invoked after the summary if option is set to do so.

# File lib/rspec/core/formatters/base_formatter.rb, line 95
def dump_pending
end
dump_summary(duration, example_count, failure_count, pending_count) click to toggle source

This method is invoked after the dumping of examples and failures.

# File lib/rspec/core/formatters/base_formatter.rb, line 87
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) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 67
def example_failed(example)
  @failed_examples << example
end
example_group_finished(example_group) click to toggle source

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

# File lib/rspec/core/formatters/base_formatter.rb, line 53
def example_group_finished(example_group)
end
example_group_started(example_group) click to toggle source

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

The next method to be invoked after this is example_passed, example_pending, or example_finished

# File lib/rspec/core/formatters/base_formatter.rb, line 47
def example_group_started(example_group)
  @example_group = example_group
end
example_passed(example) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 60
def example_passed(example)
end
example_pending(example) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 63
def example_pending(example)
  @pending_examples << example
end
example_started(example) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 56
def example_started(example)
  examples << example
end
format_backtrace(backtrace, example) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 103
def format_backtrace(backtrace, example)
  return "" unless backtrace
  return backtrace if example.metadata[:full_backtrace] == true

  if at_exit_index = backtrace.index(RSpec::Core::Runner::AT_EXIT_HOOK_BACKTRACE_LINE)
    backtrace = backtrace[0, at_exit_index]
  end

  cleansed = backtrace.map { |line| backtrace_line(line) }.compact
  cleansed.empty? ? backtrace : cleansed
end
message(message) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 71
def message(message)
end
start(example_count) click to toggle source

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

# File lib/rspec/core/formatters/base_formatter.rb, line 37
def start(example_count)
  start_sync_output
  @example_count = example_count
end
start_dump() click to toggle source

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

# File lib/rspec/core/formatters/base_formatter.rb, line 79
def start_dump
end
stop() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 74
def stop
end

Protected Instance Methods

backtrace_line(line) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 121
def backtrace_line(line)
  return nil if configuration.cleaned_from_backtrace?(line)
  self.class.relative_path(line)
end
color_enabled?() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 164
def color_enabled?
  configuration.color_enabled?
end
configuration() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 117
def configuration
  RSpec.configuration
end
find_failed_line(backtrace, path) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 140
def find_failed_line(backtrace, path)
  backtrace.detect { |line|
    match = line.match(/(.+?):(\d+)(|:\d+)/)
    match && match[1].downcase == path.downcase
  }

end
output_supports_sync() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 156
def output_supports_sync
  output.respond_to?(:sync=)
end
profile_examples?() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 160
def profile_examples?
  configuration.profile_examples
end
read_failed_line(exception, example) click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 126
def read_failed_line(exception, example)
  unless matching_line = find_failed_line(exception.backtrace, example.file_path)
    return "Unable to find matching line from backtrace"
  end

  file_path, line_number = matching_line.match(/(.+?):(\d+)(|:\d+)/)[1..2]

  if File.exist?(file_path)
    File.readlines(file_path)[line_number.to_i - 1]
  else
    "Unable to find #{file_path} to read failed line"
  end
end
restore_sync_output() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 152
def restore_sync_output
  output.sync = @old_sync if output_supports_sync and !output.closed?
end
start_sync_output() click to toggle source
# File lib/rspec/core/formatters/base_formatter.rb, line 148
def start_sync_output
  @old_sync, output.sync = output.sync, true if output_supports_sync
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.