.tファイルを t/hoge/*.t に置きたいとき
今日はYAPC::Asia 2008 でしたね。僕は最近の体調の悪さ具合を考えて、午前中は自分の体調と相談してました。
いけそうだなーと思ったので、午後から参加。
YAPCでテストの話題があったから、書いている...わけではないけど。
ExtUtils::MakeMaker を使ってる場合ですが、Tutorialには、
t/ の下にフラットにファイルを置かないといけないと書いてある。
t/ Tests for your modules go here. Each test filename ends with a .t. So t/foo.t/ 'make test' will run these tests. The directory is
flat, you cannot, for example, have t/foo/bar.t run by 'make test'.
でも、ちょっと、ごちゃーってしてやだなぁとか思うこともあるかもしれない。
コードを読むと、スペース区切りで split したやつを、glob に渡してるだけなので、
下記みたいな感じでOK。
use 5.008004; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'Module', # ... test => { TESTS => 't/*.t t/*/*.t'}, # ... );
んな感じで、用意されてるオプションで事足りるんでした。
チュートリアルに書いたらいいのに、とか思った。
Module::Install の場合、
tests_recursive;
って、書くらしい。
テストつながりで、Devel::Cover とかも、なかなか面白いですよねぇ。
後は、Test::Baseでサブクラス作るのが良いと思います。
以前作ったときは、Plagger のテストクラスとか参考にしました。
下記を見てもOK。
http://www.google.com/codesearch?q=%22use+Test%3A%3ABase+-Base%22&hl=ja&btnG=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%A4%9C%E7%B4%A2