aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/test/unit.rb65
2 files changed, 38 insertions, 32 deletions
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 <aaron@tenderlovemaking.com>
+
+ * 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 <nobu@ruby-lang.org>
* 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