class Tapout::Reporters::BreakdownReporter
The Breakdown report format gives a tally for each test case.
Public Class Methods
new()
click to toggle source
Calls superclass method
Tapout::Reporters::Abstract::new
# File lib/tapout/reporters/breakdown_reporter.rb, line 11 def initialize super @case = {} @case_entries = [] end
Public Instance Methods
finish_case(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 33 def finish_case(entry) label = entry['label'][0,19] groups = @case_entries.group_by{ |e| e['status'] } total = @case_entries.size sums = %w{pass fail error todo omit}.map{ |n| groups[n] ? groups[n].size : 0 } result = sums[1] + sums[2] > 0 ? "FAIL".ansi(:red) : "PASS".ansi(:green) puts "%-20s %8s %8s %8s %8s %8s %8s [%s]" % ([label, total] + sums + [result]) end
finish_suite(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 46 def finish_suite(entry) post_report(entry) end
post_report(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 51 def post_report(entry) sums = count_tally(entry) #%w{pass fail error todo}.map{ |n| entry['counts'][n] || 0 } tally_line = "%-20s " % "TOTAL" tally_line << "%8s %8s %8s %8s %8s %8s" % sums puts ("-" * 80) puts(tally_line + "\n") index = 1 unless @failed.empty? puts @failed.each do |test| printout(test, index, *config.fail) index += 1 end puts end unless @raised.empty? puts @raised.each do |test| printout(test, index, *config.fail) index += 1 end puts end time, rate, avg = time_tally(entry) puts "Finished in %.4fs at %.2f tests/s." % [time, rate, avg] puts puts tally_message(entry) end
start_case(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 23 def start_case(entry) @case = entry @case_entries = [] end
start_suite(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 17 def start_suite(entry) headers = [ 'TESTCASE', 'TESTS', 'PASS', 'FAIL', 'ERROR', 'TODO', 'OMIT' ] puts "\n%-20s %8s %8s %8s %8s %8s %8s\n" % headers puts ("-" * 80) end
start_test(entry)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 28 def start_test(entry) @case_entries << entry end
Private Instance Methods
printout(test, index, *ansi)
click to toggle source
# File lib/tapout/reporters/breakdown_reporter.rb, line 90 def printout(test, index, *ansi) x = test['exception'] label = test['label'].to_s exclass = test['exception']['class'] message = test['exception']['message'] exclass = nil if exclass.to_s.strip.empty? message = nil if message.to_s.strip.empty? print "#{index}. " print label.ansi(*config.highlight) print " " + exclass.ansi(*ansi) if exclass puts puts message.tabto(4) if message puts backtrace_snippets(test).tabto(4) puts captured_output(test).tabto(4) puts end