module Hoe::Test

def define_test_tasks

def define_test_tasks
  default_tasks = []
  if File.directory? "test" then
    desc 'Run the test suite. Use FILTER or TESTOPTS to add flags/args.'
    task :test do
      ruby make_test_cmd
    end
    desc 'Run the test suite using multiruby.'
    task :multi do
      ENV["EXCLUDED_VERSIONS"] = multiruby_skip.join(":")
      system "multiruby -S rake"
    end
    desc 'Show which test files fail when run alone.'
    task :test_deps do
      tests = Dir["test/**/test_*.rb"]  +  Dir["test/**/*_test.rb"]
      paths = ['bin', 'lib', 'test'].join(File::PATH_SEPARATOR)
      null_dev = Hoe::WINDOZE ? '> NUL 2>&1' : '&> /dev/null'
      tests.each do |test|
        if not system "ruby -I#{paths} #{test} #{null_dev}" then
          puts "Dependency Issues: #{test}"
        end
      end
    end
    default_tasks << :test
  end
  if File.directory? "spec" then
    found = try_loading_rspec2 || try_loading_rspec1
    if found then
      default_tasks << :spec
    else
      warn "Found spec dir, but couldn't load rspec (1 or 2) task. skipping."
    end
  end
  desc 'Run the default task(s).'
  task :default => default_tasks
  unless default_tasks.empty? then
    ##
    # This is for Erik Hollensbe's rubygems-test project. Hoe is
    # test-happy, so by using this plugin you're already testable. For
    # more information, see: <https://github.com/erikh/rubygems-test>
    # and/or <http://www.gem-testers.org/>
    gemtest = ".gemtest"
    gemtest.encode!(Encoding::UTF_8) if gemtest.respond_to?(:encoding)
    self.spec.files += [gemtest]
    pkg  = pkg_path
    turd = "#{pkg}/.gemtest"
    file turd => pkg_path do
      touch turd
    end
    file "#{pkg}.gem" => turd
  end
  desc 'Run ZenTest against the package.'
  task :audit do
    libs = %w(lib test ext).join(File::PATH_SEPARATOR)
    sh "zentest -I=#{libs} #{spec.files.grep(/^(lib|test)/).join(' ')}"
  end
end