class Tst::Reporters::Plain

Constants

BACKTRACE_FILTER

Attributes

io[R]
results[R]

Public Class Methods

new(io = $stdout) click to toggle source
# File lib/tst/reporters/plain.rb, line 6
def initialize(io = $stdout)
  @io = io
end

Public Instance Methods

backtrace(trace) click to toggle source
# File lib/tst/reporters/plain.rb, line 61
def backtrace(trace)
  filter_backtrace(trace).map { |line| "* #{line}" }.join("\n")
end
conclusion() click to toggle source
# File lib/tst/reporters/plain.rb, line 65
def conclusion
  [ "#{passed}, #{failed}, #{raised} in %.6fs" % results.elapsed ]
end
exception(result) click to toggle source
# File lib/tst/reporters/plain.rb, line 12
def exception(result) io.print('E') end
exception_details(name, exception, i) click to toggle source
# File lib/tst/reporters/plain.rb, line 50
def exception_details(name, exception, i)
  [ exception_header(name, exception, i),
    backtrace(exception.backtrace),
    "" ]
end
exception_header(name, exception, i) click to toggle source
# File lib/tst/reporters/plain.rb, line 56
def exception_header(name, exception, i)
  "E#{i+1}: #{exception.inspect} - #{name.inspect}"
end
exceptions() click to toggle source
# File lib/tst/reporters/plain.rb, line 44
def exceptions
  results.exceptions.each_with_index.flat_map do |exception, i|
    exception_details(exception.name, exception.exception, i)
  end
end
expected_actual(exception) click to toggle source
# File lib/tst/reporters/plain.rb, line 38
def expected_actual(exception)
  ["  exp: #{exception.expected.inspect}",
   "  got: #{exception.actual.inspect}"
  ].join("\n")
end
failed() click to toggle source
# File lib/tst/reporters/plain.rb, line 70
def failed; "#{results.failures.count} failed"   end
failure(result) click to toggle source
# File lib/tst/reporters/plain.rb, line 11
def failure(result)   io.print('F') end
failure_details(name, exception, i) click to toggle source
# File lib/tst/reporters/plain.rb, line 27
def failure_details(name, exception, i)
  [ failure_header(name, exception, i),
    expected_actual(exception),
    backtrace(exception.backtrace),
    "" ]
end
failure_header(name, exception, i) click to toggle source
# File lib/tst/reporters/plain.rb, line 34
def failure_header(name, exception, i)
  "F#{i+1}: #{exception.message} - #{name.inspect}"
end
failures() click to toggle source
# File lib/tst/reporters/plain.rb, line 21
def failures
  results.failures.each_with_index.flat_map do |failure, i|
    failure_details(failure.name, failure.exception, i)
  end
end
filter_backtrace(backtrace) click to toggle source
# File lib/tst/reporters/plain.rb, line 73
def filter_backtrace(backtrace)
  backtrace.reject do |line|
    line =~ BACKTRACE_FILTER
  end.map do |line|
    line.gsub("#{Dir.pwd}/", "").gsub(/:in.*$/, '')
  end
end
passed() click to toggle source
# File lib/tst/reporters/plain.rb, line 69
def passed; "#{results.successes.count} passed"  end
raised() click to toggle source
# File lib/tst/reporters/plain.rb, line 71
def raised; "#{results.exceptions.count} raised" end
success(result) click to toggle source
# File lib/tst/reporters/plain.rb, line 10
def success(result)   io.print('.') end
summarize(results) click to toggle source
# File lib/tst/reporters/plain.rb, line 14
def summarize(results)
  @results = results
  summary = ["\n"] + failures + exceptions + conclusion
  summary.each { |line| io.puts(line) }
  nil
end