module Minitest

def self.__run reporter, options

def self.__run reporter, options
  suites = Runnable.runnables
  parallel, serial = suites.partition { |s| s.test_order == :parallel }
  # If we run the parallel tests before the serial tests, the parallel tests
  # could run in parallel with the serial tests. This would be bad because
  # the serial tests won't lock around Reporter#record. Run the serial tests
  # first, so that after they complete, the parallel tests will lock when
  # recording results.
  serial.map { |suite| suite.run reporter, options } +
    parallel.map { |suite| suite.run reporter, options }
end