Test::Unit::AutoRunnerでちょっとびっくり。

単体テストのファイル名の命名ルールが混在してしまったプロジェクトがあって、そのプロジェクトの中でhoge/以下のtest-*.rbなファイルを一括でテストしようとして、以下のように書いた。

Test::Unit::AutoRunner.run(true, 'hoge',  ['--pattern=/test\-.*\.rb\Z/i'])

すると、test-*.rbに加えてtest_*.rbなファイルまでテストされてびっくり。
わけわからんのでTest::Unitのソースコードを読んだら、AutoRunnerによるテスト対象は以下のようだ。

  • test_*.rbに加えて、--paternで指定したファイルがテスト対象になる。
  • test_*.rbを外したければ、--excludeが必要。

なお、rubyのバージョンは、以下の通り。

c:\>ruby --version
ruby 1.8.5 (2006-08-25) [i386-mswin32]