Test::Classでヘルパースクリプトを作らずにテストを実行する
ベースクラス
package My::TestBase; use strict; use warnings; use base 'Test::Class'; INIT { Test::Class->runtests } 1;
テストクラス
package My::Dog::Test; use base qw/My::TestBase/; use Test::More; sub test_bark : Test(2) { is 'bow', "bowbow", 'dog barks'; is 'bowbow', "bowbow", 'dog barks twice'; } 1;
上記のようにベースクラスを用意してあげると、テストのクラスでruntestsを毎回書く必要は無くなるので、ブートストラップ用のスクリプトはいらないかなぁと。
後は、prove -lv t/lib/My/Dog/Test.pm とすればよいと。
(perl的な配置だと、prove -lv t/01-dog.t とかのほうがあってるのかな。そこらはまだよくわかってないけれど、クラスに対するテストであることがわかるのがいいかなと。)
もしくは、以下のように必ずテストパッケージの下部でruntestsを書いておいてもブートストラップ用のスクリプトは不要そうです。
package My::AnotherDog::Test; use base qw/Test::Class/; use Test::More; sub test_bark : Test(2) { is 'bow', "bowbow", 'dog barks'; is 'bowbow', "bowbow", 'dog barks twice'; } __PACKAGE__->runtests; 1;