diff --git a/ChangeLog b/ChangeLog index 9c9ea8df97..6d4a63c020 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Oct 24 12:08:54 2010 Aaron Patterson + + * lib/test/unit.rb: make test/unit play nicely with the rake test + loader. [ruby-core:32864] + Sun Oct 24 00:25:13 2010 Nobuyoshi Nakada * test/ruby/test_rubyoptions.rb (test_segv_test): follow up the diff --git a/lib/test/unit.rb b/lib/test/unit.rb index 74ac201c4b..f722205fa4 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -70,17 +70,6 @@ module Test end def non_options(files, options) - files.each {|f| - d = File.dirname(path = File.expand_path(f)) - unless $:.include? d - $: << d - end - begin - require path - rescue LoadError - puts "#{f}: #{$!}" - end - } end end @@ -133,35 +122,47 @@ module Test end end + module RequireFiles + def non_options(files, options) + super + files.each {|f| + d = File.dirname(path = File.expand_path(f)) + unless $:.include? d + $: << d + end + begin + require path + rescue LoadError + puts "#{f}: #{$!}" + end + } + end + end + def self.new(*args, &block) + Mini.class_eval do + include Test::Unit::RequireFiles + end Mini.new(*args, &block) end class Mini < MiniTest::Unit include Test::Unit::GlobOption include Test::Unit::LoadPathOption + include Test::Unit::RunCount + include Test::Unit::Options + + class << self; undef autorun; end + def self.autorun + at_exit { + Test::Unit::RunCount.run_once { + exit(Test::Unit::Mini.new.run(ARGV) || true) + } + } unless @@installed_at_exit + @@installed_at_exit = true + end end end end -class MiniTest::Unit - def self.new(*args, &block) - obj = allocate - .extend(Test::Unit::RunCount) - .extend(Test::Unit::Options) - obj.__send__(:initialize, *args, &block) - obj - end - - class << self; undef autorun; end - def self.autorun - at_exit { - Test::Unit::RunCount.run_once { - exit(Test::Unit::Mini.new.run(ARGV) || true) - } - } unless @@installed_at_exit - @@installed_at_exit = true - end -end - -MiniTest::Unit.autorun +Test::Unit::Mini.autorun