読者です 読者をやめる 読者になる 読者になる

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パラメータで渡せるようにしました。