class Test::Unit::Collector::Load

def collect_recursive(path, already_gathered)

def collect_recursive(path, already_gathered)
  sub_test_suites = []
  if path.directory?
    directories, files = path.children.partition do |child|
      child.directory?
    end
    files.each do |child|
      next if excluded_file?(child.basename.to_s)
      collect_file(child, sub_test_suites, already_gathered)
    end
    directories.each do |child|
      next if excluded_directory?(child.basename.to_s)
      sub_test_suite = collect_recursive(child, already_gathered)
      sub_test_suites << sub_test_suite unless sub_test_suite.empty?
    end
  else
    unless excluded_file?(path.basename.to_s)
      collect_file(path, sub_test_suites, already_gathered)
    end
  end
  test_suite = TestSuite.new(path.basename.to_s)
  sort(sub_test_suites).each do |sub_test_suite|
    test_suite << sub_test_suite
  end
  test_suite
end