    # File lib/rubygems/validator.rb, line 153
        def unit_test(gem_spec)
         start_dir = Dir.pwd
         Dir.chdir(gem_spec.full_gem_path)
          $: << File.join(Gem.dir, "gems", gem_spec.full_name)
            # XXX: why do we need this gem_spec when we've already got 'spec'?
          test_files = gem_spec.test_files
          if test_files.empty?
            say "There are no unit tests to run for #{gem_spec.full_name}"
            require 'test/unit/ui/console/testrunner'
            return Test::Unit::TestResult.new
          end
          gem gem_spec.name, "= #{gem_spec.version.version}"
          test_files.each do |f| require f end
          suite = Test::Unit::TestSuite.new("#{gem_spec.name}-#{gem_spec.version}")
          ObjectSpace.each_object(Class) do |klass|
            suite << klass.suite if (klass < Test::Unit::TestCase)
          end
          result = TestRunner.run(suite, ui())
          unless result.passed?
            alert_error(result.to_s)
            #unless ask_yes_no(result.to_s + "...keep Gem?", true) then
              #Gem::Uninstaller.new(gem_spec.name, gem_spec.version.version).uninstall
            #end
          end
          result
        ensure
          Dir.chdir(start_dir)
        end