Unable to change output of test suite

I’m trying to change the output of a test suite, and from what I can
tell the one line I’m interested in (the indication of numbers of
tests, assertions, failures, and errors) is generated by
Test::Unit::TestResult#to_s. It seems like a simple change, but I’m
running into trouble.

The following code:

require ‘test/unit’

class Test::Unit::TestResult
def to_s() ‘this should be different’; end
end

class WeirdnessTest < Test::Unit::TestCase
end

Gives me this result:

Loaded suite test_weirdness
Started
F
Finished in 0.000871 seconds.

  1. Failure:
    default_test(WeirdnessTest) [test_weirdness.rb:7]:
    No tests were specified.

1 tests, 1 assertions, 1 failures, 0 errors

Is there some dark magic with test suites or am I just missing
something simple? After looking through some of the test/unit code,
I’m not even sure where Test::Unit::TestResult objects come from, but
I’m still somewhat convinced they’re necessary

Hi,

At Sat, 1 Sep 2007 06:34:14 +0900,
Yossef M. wrote in [ruby-talk:266993]:

require ‘test/unit’
require ‘test/unit/testresult’

class Test::Unit::TestResult
def to_s() ‘this should be different’; end
end

class WeirdnessTest < Test::Unit::TestCase
end

test/unit.rb just defines Test::Unit, but not TestResult, and
test/unit/testresult.rb isn’t loaded until any TestRunner
libraris get loaded. So your TestResult is overridden by the
true TestResult definition.

On Aug 31, 8:06 pm, Nobuyoshi N. [email protected] wrote:

def to_s() ‘this should be different’; end

Nobu Nakada

Of course it had to be something simple like that.

Thank you very much.