def post_report(suite)
tally = test_tally(suite)
width = suite.collect{ |tr| tr.name.to_s.size }.max
headers = [ 'TESTCASE ', ' TESTS ', 'ASSERTIONS', ' FAILURES ', ' ERRORS ', 'SKIPS ' ]
io.puts "\n\n%-#{width}s %10s %10s %10s %10s %10s\n" % headers
io.puts ("-" * (width + 60))
files = nil
suite.each do |testrun|
if testrun.files != [testrun.name] && testrun.files != files
label = testrun.files.join(' ')
label = Colorize.magenta(label)
io.puts(label + "\n")
files = testrun.files
end
io.puts paint_line(testrun, width)
end
tally_line = ("-" * (width + 60))
tally_line << "\n%-#{width}s " % "TOTAL"
tally_line << "%10s %10s %10s %10s %10s" % tally
io.puts(tally_line + "\n\n\n")
io.puts "-- Failures --\n\n" unless @fails.empty?
@fails.each do |tc, cc|
cc.each do |e|
message = e.message.tabto(0).strip
message = Colorize.red(message)
message += "\n" + clean_backtrace(e.backtrace).join("\n")
io.puts(message+"\n\n")
end
io.puts
end
io.puts "-- Errors --\n\n" unless @errors.empty?
@errors.each do |tc, cc|
cc.each do |e|
message = e.message.tabto(0).strip
message = Colorize.red(message)
message += "\n" + clean_backtrace(e.backtrace).join("\n")
io.puts(message+"\n\n")
end
io.puts
end
end