diff options
Diffstat (limited to 'test/minitest/metametameta.rb')
-rw-r--r-- | test/minitest/metametameta.rb | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/test/minitest/metametameta.rb b/test/minitest/metametameta.rb index a4f7dfa1e6..65eece07ca 100644 --- a/test/minitest/metametameta.rb +++ b/test/minitest/metametameta.rb @@ -24,7 +24,9 @@ class MetaMetaMetaTestCase < MiniTest::Unit::TestCase EOM - @tu.run flags + with_output do + @tu.run flags + end output = @output.string.dup output.sub!(/Finished tests in .*/, "Finished tests in 0.00") @@ -49,14 +51,24 @@ class MetaMetaMetaTestCase < MiniTest::Unit::TestCase srand 42 MiniTest::Unit::TestCase.reset @tu = MiniTest::Unit.new - @output = StringIO.new("") + MiniTest::Unit.runner = nil # protect the outer runner from the inner tests - MiniTest::Unit.output = @output end def teardown super - MiniTest::Unit.output = $stdout - Object.send :remove_const, :ATestCase if defined? ATestCase + end + + def with_output + synchronize do + begin + @output = StringIO.new("") + MiniTest::Unit.output = @output + + yield + ensure + MiniTest::Unit.output = STDOUT + end + end end end |