cpanfileを使うようにしたらTravis CIでテストがコケた件

cpanm(App::cpanminus)は1.6000でcpanfileをサポートしましたが、Travis CIでcpanfileを使用したモジュールのテストがコケるという現象が発生していました。

原因

--notestオプションが指定されると、cpanfileの on 'test' で指定されたモジュールがインストールされないことが原因でした。

Travis CIではテストを実行する前に

cpanm --quiet --installdeps --notest .

を実行して依存モジュールをインストールしていたため、テスト用のモジュールがインストールされず、その後のテストでモジュールがロードできず 'Can't locate Test/Mock/Guard.pm in @INC' なような状態になります。

解決

cpanmの問題とするかどうか微妙でしたが、宮川さんが対応してくれました。

というわけで、この件は App::cpanminus-1.6101で修正されて、--notestオプションをつけた場合でも --installdepsで on 'test' の依存モジュールがインストールされるようになっています。