class Test::Unit::Collector::Load

def add_require_failed_test_suite(test_suites)

def add_require_failed_test_suite(test_suites)
  return if @require_failed_infos.empty?
  require_failed_infos = @require_failed_infos
  require_failed_errors = Class.new(Test::Unit::TestCase)
  require_failed_errors.class_eval do
    class << self
      def name
        "RequireFailedErrors"
      end
    end
    require_failed_infos.each do |info|
      path = info[:path]
      normalized_path = path.to_s.gsub(/[^a-z0-9\_]+/i, '_')
      normalized_path = normalized_path.gsub(/\A_+/, '')
      exception = info[:exception]
      define_method("test_require_#{normalized_path}") do
        raise(exception.class,
              "failed to load <#{path}>: #{exception.message}",
              exception.backtrace)
      end
    end
    def priority
      100
    end
  end
  add_suite(test_suites, require_failed_errors.suite)
end