class Minitest::DocReporter::DocReporter
Attributes
count[RW]
errors[RW]
failures[RW]
io[R]
options[R]
results[RW]
skips[RW]
start_time[RW]
total_time[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/minitest/doc_reporter.rb, line 17 def initialize(options = {}) @io = io @options = options self.results = [] self.errors = 0 self.skips = 0 self.count = 0 self.failures = 0 end
Public Instance Methods
record(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 32 def record(result) puts format_header(result) puts format_result(result) puts puts failure_info(result) unless result.passed? update_statistics(result) end
report()
click to toggle source
Calls superclass method
# File lib/minitest/doc_reporter.rb, line 43 def report super aggregate = self.results.group_by { |r| r.failure.class } aggregate.default = [] # dumb. group_by should provide this self.failures = aggregate[Assertion].size self.errors = aggregate[UnexpectedError].size self.skips = aggregate[Skip].size puts puts format_tests_run_count(count, total_time) puts statistics puts end
start()
click to toggle source
# File lib/minitest/doc_reporter.rb, line 27 def start puts self.start_time = Time.now end
Private Instance Methods
failure_info(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 61 def failure_info(result) if result.error? puts pad(format_error_info(result)) puts elsif result.failure result.failure.to_s.each_line {|l| puts pad(l)} puts end end
format_backtrace(bt)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 98 def format_backtrace(bt) output = "" bt.each {|l| output << pad(l)} output end
format_divider(divider = '|')
click to toggle source
# File lib/minitest/doc_reporter.rb, line 142 def format_divider(divider = '|') ANSI.white + ANSI.bold + " #{divider} " end
format_error_info(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 91 def format_error_info(result) e = result.failure.exception bt = Minitest.filter_backtrace e.backtrace ANSI.bold {e.class.to_s} + "\n" + pad(e.message.to_s) + "\n" + \ format_backtrace(bt) end
format_header(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 123 def format_header(result) ANSI.bold(result.class) end
format_result(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 104 def format_result(result) output = "" name = format_test_description result if result.passed? output = ANSI.green {name} else output = ANSI.red {name} end pad output end
format_result_type(type, count, colour)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 132 def format_result_type(type, count, colour) summary = "#{type}: #{count}" if count.zero? return ANSI.ansi(summary, :white, :bold) else return ANSI.ansi(summary, colour, :bold) end end
format_test_description(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 117 def format_test_description(result) verb = result.name.split[0].split("_").last phrase = result.name.split[1..-1].join " " "#{verb} #{phrase}" end
format_tests_run_count(count, total_time)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 127 def format_tests_run_count(count, total_time) time = ANSI.bold total_time.to_s "#{count} tests run in #{time} seconds." end
pad(str, amount = 2)
click to toggle source
formatters
# File lib/minitest/doc_reporter.rb, line 87 def pad(str, amount = 2) " " * amount + str end
statistics()
click to toggle source
# File lib/minitest/doc_reporter.rb, line 76 def statistics "#{format_result_type('Errors', errors, :red)} #{format_divider}" + \ "#{format_result_type('Failures', failures, :red)} #{format_divider}" + \ "#{format_result_type('Skips', skips, :yellow)}" end
update_statistics(result)
click to toggle source
# File lib/minitest/doc_reporter.rb, line 71 def update_statistics(result) self.count += 1 self.results << result unless result.passed? || result.skipped? end