Class: RSpec::Core::Notifications::FailedExampleNotification

Inherits:
ExampleNotification show all
Defined in:
lib/rspec/core/notifications.rb

Overview

The FailedExampleNotification extends ExampleNotification with things useful for failed specs.

Examples:

def example_failed(notification)
  puts "Hey I failed :("
  puts "Here's my stack trace"
  puts notification.exception.backtrace.join("\n")
end

See Also:

Direct Known Subclasses

PendingExampleFixedNotification

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

- (RSpec::Core::Example) example

the current example



141
142
143
# File 'lib/rspec/core/notifications.rb', line 141

def example
  @example
end

Instance Method Details

- (Array(String)) colorized_formatted_backtrace(colorizer = ::RSpec::Core::Formatters::ConsoleCodes)

Returns the failures colorized formatted backtrace.



182
183
184
185
186
# File 'lib/rspec/core/notifications.rb', line 182

def colorized_formatted_backtrace(colorizer = ::RSpec::Core::Formatters::ConsoleCodes)
  formatted_backtrace.map do |backtrace_info|
    colorizer.wrap "# #{backtrace_info}", RSpec.configuration.detail_color
  end
end

- (Array(String)) colorized_message_lines(colorizer = ::RSpec::Core::Formatters::ConsoleCodes)

Returns the message generated for this failure colorized line by line.



165
166
167
168
169
# File 'lib/rspec/core/notifications.rb', line 165

def colorized_message_lines(colorizer = ::RSpec::Core::Formatters::ConsoleCodes)
  add_shared_group_line(failure_lines, colorizer).map do |line|
    colorizer.wrap line, RSpec.configuration.failure_color
  end
end

- (String) description



150
151
152
# File 'lib/rspec/core/notifications.rb', line 150

def description
  example.full_description
end

- (Exception) exception



145
146
147
# File 'lib/rspec/core/notifications.rb', line 145

def exception
  example.execution_result.exception
end

- (Array(String)) formatted_backtrace

Returns the failures formatted backtrace.



174
175
176
# File 'lib/rspec/core/notifications.rb', line 174

def formatted_backtrace
  backtrace_formatter.format_backtrace(exception.backtrace, example.)
end

- (String) fully_formatted(failure_number, colorizer = ::RSpec::Core::Formatters::ConsoleCodes)



190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/rspec/core/notifications.rb', line 190

def fully_formatted(failure_number, colorizer = ::RSpec::Core::Formatters::ConsoleCodes)
  formatted = "\n  #{failure_number}) #{description}\n"

  colorized_message_lines(colorizer).each do |line|
    formatted << RSpec::Support::EncodedString.new("     #{line}\n", encoding_of(formatted))
  end

  colorized_formatted_backtrace(colorizer).each do |line|
    formatted << RSpec::Support::EncodedString.new("     #{line}\n", encoding_of(formatted))
  end

  formatted
end

- (Array(String)) message_lines

Returns the message generated for this failure line by line.



157
158
159
# File 'lib/rspec/core/notifications.rb', line 157

def message_lines
  add_shared_group_line(failure_lines, NullColorizer)
end