module RubyUnit::Report

The RubyUnit::Report module is the test results report

Public Class Methods

counted_stats() click to toggle source
# File lib/RubyUnit/Report.rb, line 136
def self.counted_stats
  counted                     = rated_stats.clone
  counted['Skipped Tests']    = @@skip.count unless @@skip.count.zero?
  counted['Incomplete Tests'] = @@incomplete.count unless @@incomplete.count.zero?
  counted['Failed Tests']     = @@fail.count
  counted
end
finish() click to toggle source
# File lib/RubyUnit/Report.rb, line 46
def self.finish
  @@finish = Time.new if @@finish.nil?
  @@finish
end
per_second(count) click to toggle source
# File lib/RubyUnit/Report.rb, line 92
def self.per_second count
  return 0 if @@start.nil?
  finish  = @@finish.nil? ? Time.new : @@finish
  elapsed = (finish - @@start).to_r
  (count * (Rational(elapsed.denominator, elapsed.numerator))).to_f
end
rated_stats() click to toggle source
# File lib/RubyUnit/Report.rb, line 120
def self.rated_stats
  rated = {}
  rated['Tests']      = tests
  rated['Assertions'] = TestCase.assertions
  rated
end
record(result) click to toggle source
# File lib/RubyUnit/Report.rb, line 19
def self.record result
  @@results << result

  case result.error
  when RubyUnit::AssertionFailure
    @@fail << result
  when RubyUnit::SkippedTest
    @@skip << result
  when RubyUnit::IncompleteTest
    @@incomplete << result
  else
    if result.error.class <= Exception
      puts "error #{result.error.class}"
      @@errors << result
    end
  end
end
report(type, results = [], trace = true) click to toggle source
# File lib/RubyUnit/Report.rb, line 63
def self.report type, results = [], trace = true
  @@i = 0
  puts "\n#{results.count} #{type}:\n" if results.count > 0
  results.each_with_index do |result, i|
    report_head result
    report_info result, trace
  end
end
report_counted() click to toggle source
# File lib/RubyUnit/Report.rb, line 127
def self.report_counted
  s = ''
  counted_stats.each do |counted, count|
    s << "#{count} #{counted}"
    s << ', ' unless counted_stats.keys.last == counted
  end
  puts s
end
report_errors() click to toggle source
# File lib/RubyUnit/Report.rb, line 72
def self.report_errors
  report 'Errors in Tests', @@errors
end
report_failures() click to toggle source
# File lib/RubyUnit/Report.rb, line 76
def self.report_failures
  report 'Failed Tests', @@fail
end
report_head(result) click to toggle source
# File lib/RubyUnit/Report.rb, line 51
def self.report_head result
  puts
  puts "#{@@i += 1}) #{result.test_case}::#{result.test}(#{result.params})"
  puts result.error.class.to_s + ": " + result.error.message
end
report_incompletes() click to toggle source
# File lib/RubyUnit/Report.rb, line 84
def self.report_incompletes
  report 'Incomplete Tests', @@incomplete, false
end
report_info(result, trace = true) click to toggle source
# File lib/RubyUnit/Report.rb, line 57
def self.report_info result, trace = true
  puts
  puts result.error.info if result.error.respond_to? :info
  puts result.error.backtrace * "\n" if trace
end
report_rated() click to toggle source
# File lib/RubyUnit/Report.rb, line 111
def self.report_rated
  s = ''
  rated_stats.each do |rated, count|
    s << "%.3f #{rated}/s" % [per_second(count)]
    s << ', ' unless rated_stats.keys.last == rated
  end
  puts s
end
report_skips() click to toggle source
# File lib/RubyUnit/Report.rb, line 80
def self.report_skips
  report 'Skipped Tests', @@skip, false
end
report_stats() click to toggle source
# File lib/RubyUnit/Report.rb, line 144
def self.report_stats
  puts
  report_timed
  report_rated
  report_counted
end
report_timed() click to toggle source
# File lib/RubyUnit/Report.rb, line 99
def self.report_timed
  timed_stats.each do |key, duration|
    puts "#{key} in #{duration} seconds"
  end
end
start() click to toggle source
# File lib/RubyUnit/Report.rb, line 41
def self.start
  @@start = Time.new if @@start.nil?
  @@start
end
stats() click to toggle source
# File lib/RubyUnit/Report.rb, line 151
def self.stats
  {:timed=>timed_stats,:rate=>rated_stats,:count=>counted_stats}
end
status() click to toggle source
# File lib/RubyUnit/Report.rb, line 88
def self.status
  @@fail.count + @@errors.count
end
tests() click to toggle source
# File lib/RubyUnit/Report.rb, line 37
def self.tests
  @@results.count
end
timed_stats() click to toggle source
# File lib/RubyUnit/Report.rb, line 105
def self.timed_stats
  timed = {}
  timed['Tests Completed'] = @@finish - @@start
  timed
end