class Minitest::ServerReporter
def initialize pid
def initialize pid uri = Minitest::Server.path(pid) @mt_server = DRbObject.new_with_uri uri super() end
def record result
def record result r = result c = r.class if defined?(Minitest::Result) && Minitest::Result === r then file, = r.source_location cn = r.klass else file, = r.method(r.name).source_location cn = c.name end sanitize r.failures @mt_server.result file, cn, r.name, r.failures, r.assertions, r.time end
def report
def report @mt_server.report end
def sanitize failures
def sanitize failures failures.map! { |e| case e when Minitest::UnexpectedError then # embedded exception might not be able to be marshaled. bt = e.exception.backtrace ex = RuntimeError.new(e.exception.message) e.exception = ex ex.set_backtrace bt e = Minitest::UnexpectedError.new ex # ugh. some rails plugin. ugh. if ex.instance_variables.include? :@bindings then # web-console is Evil ex.instance_variable_set :@bindings, nil e.instance_variable_set :@bindings, nil end when Minitest::Assertion then bt = e.backtrace e = e.class.new(e.message) e.set_backtrace bt when Minitest::Skip then # do nothing else warn "Unhandled exception type: #{e.class}\n\n#{e.inspect}" end e } end
def start
def start @mt_server.start end