        end while @repeat_count && count < @repeat_count &&
 @@ -920,6 +922,7 @@ def _run_anything type
      #
-
+ 
      def _run_suites suites, type
 +      @assert = @options[:assert]
        suites.map { |suite| _run_suite suite, type }
      end
-
-@@ -941,18 +944,40 @@ def _run_suite suite, type
-
+ 
+@@ -941,19 +944,41 @@ def _run_suite suite, type
+ 
        leakchecker = LeakChecker.new
-
+ 
 +      verbose = options[:verbose]
 +      retry_run = options[:retry_run]
 +      retry_len = retry_run.to_s.length if retry_run

+        assert_offset = zombie + tracepnt
+      end
+
       assertions = filtered_test_methods.map { |method|
         inst = suite.new method
-        inst._assertions = 0
+        inst._assertions = assert_offset

-        print "#{suite}##{method} = " if @verbose
-
-        start_time = Time.now if @verbose
+        start_time = verbose ? Time.now : nil
         result = inst.run self

-        print "%.2f s = " % (Time.now - start_time) if @verbose
-        print result
-        puts if @verbose
+        if start_time
+          ttl = " = %.2f s = " % (Time.now - start_time)
+          if !self.assert # || MetaMetaMetaTestCase === inst.class.superclass
+            print "#{suite}##{method}#{ttl}#{result}"
+          elsif retry_run
+            @cntr ||= 0
+            @cntr += 1
+            print "[#{@cntr.to_s.rjust(retry_len)}/#{retry_run}] #{inst._assertions.to_s.rjust(6)} #{suite}##{method}#{ttl}#{result}"
+          else
+            print "#{inst._assertions.to_s.rjust(6)} #{suite}##{method}#{ttl}#{result}"
+            print @parallel_error if @parallel_error
+          end
+          print "\n"
+        else
+          print result
+        end
         $stdout.flush

         unless defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled? # compiler process is wrongly considered as leak
@@ -962,7 +987,7 @@ def _run_suite suite, type
         inst._assertions
       }

-      return assertions.size, assertions.inject(0) { |sum, n| sum + n }
+      return assertions.size, assertions.sum
     end

     ##
@@ -983,6 +1008,9 @@ def _run_suite suite, type
     # error or failure.

     def record suite, method, assertions, time, error
+      @parallel_error = (error && !options[:retry_run]) ?
+        "\n       #{location error}\n       #{error.message.gsub "\n", "\n       "}" :
+        nil
     end

     def location e # :nodoc:
@@ -1005,7 +1033,7 @@ def puke klass, meth, e
       e = case e
           when MiniTest::Skip then
             @skips += 1

           end
           unless @warnings.empty?
@@ -589,7 +600,7 @@ def setup_options(opts, options)
 
       def _run_suites(suites, type)
         result = super
-        report.reject!{|r| r.start_with? "Skipped:" } if @options[:hide_skip]
