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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs