Test::LoadAllModulesをリリース
モジュールを書くたびに、00_load_all.tを書くのが面倒だなぁと思っていたので作ってみました。
http://github.com/dann/test-loadallmodules/tree/master
類似したモジュールにcharsbarさんのTest::UseAllModulesがあるのですが、違いはMANIFESTからuseするモジュールを読んでいないという点ですね。このモジュールでは、MANIFESTを読んでモジュールを探すという形をとっていないので、MANIFESTを更新しなくてもテストができます。
以下のように使います。
# basic use Test::LoadAllModules; BEGIN { all_uses_ok(search_path => 'MyApp'); }
いくつかのファイルを除きたいとき。Mouse::Role系とか。
use Test::LoadAllModules; BEGIN { all_uses_ok( search_path => 'MyApp', except => [ 'MyApp::Role', qr/MyApp::Exclude::.*/, ] ); }
t/libからも探したいなどの場合
# set @INC with lib parm use Test::LoadAllModules; BEGIN { all_uses_ok( search_path => 'MyApp', lib => [ 'lib', 't/lib', ] ); }
# charsbarさんの指摘もあったので、0.02から@INCの指定をlocalですることにしました。また、上記のようにlibパラメータで渡せるようにしました。