[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Unable to change output of test suite

Yossef Mendelssohn

8/31/2007 9:34:00 PM

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

--
-yossef


2 Answers

Nobuyoshi Nakada

9/1/2007 1:06:00 AM

0

Hi,

At Sat, 1 Sep 2007 06:34:14 +0900,
Yossef Mendelssohn 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.

--
Nobu Nakada

Yossef Mendelssohn

9/1/2007 3:33:00 PM

0


On Aug 31, 8:06 pm, Nobuyoshi Nakada <n...@ruby-lang.org> wrote:
> Hi,
>
> At Sat, 1 Sep 2007 06:34:14 +0900,
> Yossef Mendelssohn 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.
>
> --
> Nobu Nakada

Of course it had to be something simple like that.

Thank you very much.

--
-yossef