testunitの驚き

以下のコードを実行するとおもしろいことになる


require 'test/unit'


class TestHashConst < Test::Unit::TestCase

def setup
end
def teardown
end
end

結果

$ ruby -I ../src testx.rb
Loaded suite testx
Started
F
Finished in 0.03 seconds.

1) Failure:
default_test(TestHashConst)
[/usr/lib/ruby/1.8/test/unit/assertions.rb:32:in `assert_block'
/usr/lib/ruby/1.8/test/unit/assertions.rb:30:in `_wrap_assertion'
/usr/lib/ruby/1.8/test/unit/assertions.rb:34:in `assert_block'
/usr/lib/ruby/1.8/test/unit/assertions.rb:227:in `flunk'
/usr/lib/ruby/1.8/test/unit/testcase.rb:99:in `default_test'
/usr/lib/ruby/1.8/test/unit/testcase.rb:70:in `__send__'
/usr/lib/ruby/1.8/test/unit/testcase.rb:70:in `run'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'
/usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'
/usr/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in `run_suite'
/usr/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:72:in `start_mediator'

/usr/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:46:in `start'
/usr/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:21:in `run'
/usr/lib/ruby/1.8/test/unit/autorunner.rb:185:in `run'
/usr/lib/ruby/1.8/test/unit/autorunner.rb:13:in `run'
/usr/lib/ruby/1.8/test/unit.rb:275
/usr/lib/ruby/1.8/test/unit.rb:275]:
No tests were specified.

1 tests, 1 assertions, 1 failures, 0 errors

単に文法チェクをやるつもりで実行してみたらエラーになる.
何が原因だかわからず試行錯誤したところテストメソッドが一つも定義されていない状態で実行するとこうなると判明.
ちょっと焦った.
バグではないんだろうな,たぶん.

[permalink][contents][page top]