Files
aviator/test/support/test_reporter.rb
2013-08-30 09:22:26 -07:00

47 lines
1.2 KiB
Ruby

require "minitest/reporters"
module Aviator
class Test
class SpecReporter < MiniTest::Reporters::SpecReporter
private
def pad_test(test)
str = test.to_s.gsub(/(test_)/, '').gsub(/_/, ' ')
pad("%-#{TEST_SIZE}s" % str, TEST_PADDING)[0..TEST_SIZE]
end
def print_info(e)
print " #{e.exception.class.to_s}:\n"
e.message.each_line { |line| print_with_info_padding(line) }
trace = filter_backtrace(e.backtrace)
# TODO: Use the proper MiniTest way of customizing the filter
trace.each { |line| print_with_info_padding(line) unless line =~ /\.rvm|gems|_run_anything/ }
end
def print_suite(suite)
puts suite.name.gsub('::#', '#')
@suites << suite
end
end
class ProgressReporter < MiniTest::Reporters::ProgressReporter
private
def print_test_with_time(suite, test)
total_time = Time.now - (runner.test_start_time || Time.now)
suite_name = suite.name.gsub('::#', '#').gsub('::::', '::')
test_name = test.to_s.gsub(/test_\d+|_/, ' ').strip
print(" %s %s (%.2fs)%s" % [suite_name, test_name, total_time, clr])
end
end
end
end
MiniTest::Reporters.use! Aviator::Test::ProgressReporter.new