class Spec::Runner::Formatter::QuickfixFormatter
Constants
- BACKTRACE_REGEXP
- MULTI_LINE_ERRORS
turn this on to output multiline error in quickfix. This kinda abuses quickfix but can provide the backtrace
Public Class Methods
new(options, output)
click to toggle source
# File lib/spec/quickfix_formatter.rb, line 9 def initialize(options, output) @options = options @output = output unless @output.is_a?(IO) @output = File.new(output, 'w') end end
Public Instance Methods
example_failed(example, counter, failure)
click to toggle source
use with this errorformat set errorformat=%f:%l\ %n\ %m
# File lib/spec/quickfix_formatter.rb, line 19 def example_failed(example, counter, failure) first_time = true failure.exception.backtrace.reverse.each do |frame| file, line, message = parse_backtrace(frame) message = failure.header if message.blank? if first_time and failure.exception.message.present? first_time = false message += failure.exception.message end @output.puts "%s:%d %d %s" % [file, line, counter, message] @output.flush MULTI_LINE_ERRORS or break end end
Private Instance Methods
parse_backtrace(trace)
click to toggle source
# File lib/spec/quickfix_formatter.rb, line 42 def parse_backtrace(trace) BACKTRACE_REGEXP.match(trace)[1..3] end