def fork_test( testfile )
src = ''
src << %{$:.unshift('lib')} unless against_installed
src << %{
#require 'test/unit'
require 'test/unit/collector'
require 'test/unit/collector/objectspace'
require 'test/unit/ui/testrunnermediator'
}
fixture.each do |fix|
src << %Q{
require '#{fix}'
}
end
src << %{
output = STDOUT.dup
STDOUT.reopen( PLATFORM =~ /mswin/ ? "NUL" : "/dev/null" )
load('#{testfile}')
tests = Test::Unit::Collector::ObjectSpace.new.collect
runner = Test::Unit::UI::TestRunnerMediator.new( tests )
result = runner.run_suite
output << Marshal.dump(result)
STDOUT.reopen(output)
output.close
}
result = IO.popen("ruby","w+") do |ruby|
ruby.puts src
ruby.close_write
ruby.read
end
p testfile if $VERBOSE
return Marshal.load(result)
end