Hello,
We’re having problems with ruby 1.9 and test/unit. It looks like when
ObjectSpace is scanned that the methods we are defining aren’t being
seen.
Any suggestions?
Thanks,
-Adam
% cat 19test.rb
[~/code/planb/root]
require ‘test/unit’
class Foo
attr_reader :attrs
def initialize
@attrs = Hash.new
(“A”…“Z”).each { |x| @attrs[x] = x.downcase }
end
end
tclass = Class.new( Test::Unit::TestCase )
Foo.const_set “TestAttr” , tclass
Foo.new.attrs.each_pair do |key,value|
tclass.class_eval do
define_method(“test_#{key}”) do
assert_equal(key,value.upcase)
end
end
end
% /usr/bin/ruby -v
[~/code/planb/root]
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
% /usr/bin/ruby 19test.rb
[~/code/planb/root]
Loaded suite 19test
Started
…
Finished in 0.002402 seconds.
26 tests, 26 assertions, 0 failures, 0 errors
% /opt/bin/ruby -v
[~/code/planb/root]
ruby 1.9.0 (2007-04-24 patchlevel 0) [i686-darwin8.9.1]
% /opt/bin/ruby 19test.rb
[~/code/planb/root]
Loaded suite 19test
Started
F
Finished in 0.000685 seconds.
- Failure:
default_test(Foo::TestAttr)
[/opt/lib/ruby/1.9/test/unit/assertions.rb:48:inraise' /opt/lib/ruby/1.9/test/unit/assertions.rb:48:in
block in
assert_block’
/opt/lib/ruby/1.9/test/unit/assertions.rb:495:in_wrap_assertion' /opt/lib/ruby/1.9/test/unit/assertions.rb:11240:in
assert_block’
/opt/lib/ruby/1.9/test/unit/assertions.rb:313:influnk' /opt/lib/ruby/1.9/test/unit/testcase.rb:107:in
default_test’
/opt/lib/ruby/1.9/test/unit/testcase.rb:76:inrun' /opt/lib/ruby/1.9/test/unit/testsuite.rb:34:in
block in run’
/opt/lib/ruby/1.9/test/unit/testsuite.rb:33:ineach' /opt/lib/ruby/1.9/test/unit/testsuite.rb:33:in
run’
/opt/lib/ruby/1.9/test/unit/testsuite.rb:34:inblock in run' /opt/lib/ruby/1.9/test/unit/testsuite.rb:33:in
each’
/opt/lib/ruby/1.9/test/unit/testsuite.rb:33:inrun' /opt/lib/ruby/1.9/test/unit/ui/testrunnermediator.rb:46:in
run_suite’
/opt/lib/ruby/1.9/test/unit/ui/console/testrunner.rb:67:in
start_mediator' /opt/lib/ruby/1.9/test/unit/ui/console/testrunner.rb:41:in
start’
/opt/lib/ruby/1.9/test/unit/ui/testrunnerutilities.rb:29:inrun' /opt/lib/ruby/1.9/test/unit/autorunner.rb:215:in
run’
/opt/lib/ruby/1.9/test/unit/autorunner.rb:12:inrun' /opt/lib/ruby/1.9/test/unit.rb:278:in
block in <top (required)>’]:
No tests were specified.
1 tests, 1 assertions, 1 failures, 0 errors