mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
35 lines
936 B
Ruby
35 lines
936 B
Ruby
|
module Minitest
|
||
|
# Adds minimal support for parallel tests to the default verbose progress reporter.
|
||
|
def self.plugin_verbose_progress_init(options)
|
||
|
if options[:verbose]
|
||
|
self.reporter.reporters.
|
||
|
delete_if {|r| r.is_a?(ProgressReporter)}.
|
||
|
push(VerboseProgressReporter.new(options[:io], options))
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Verbose progress reporter that supports parallel test execution.
|
||
|
class VerboseProgressReporter < Reporter
|
||
|
def prerecord(klass, name)
|
||
|
@current ||= nil
|
||
|
@current = [klass.name, name].tap(&method(:print_start))
|
||
|
end
|
||
|
|
||
|
def record(result)
|
||
|
print_start [result.klass, result.name]
|
||
|
@current = nil
|
||
|
io.print "%.2f s = " % [result.time]
|
||
|
io.print result.result_code
|
||
|
io.puts
|
||
|
end
|
||
|
|
||
|
def print_start(test)
|
||
|
unless @current == test
|
||
|
io.puts '…' if @current
|
||
|
io.print "%s#%s = " % test
|
||
|
io.flush
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|