Craftworks Tech Blog - Branch このページをアンテナに追加 RSSフィード Twitter

2009-09-06

Test::Dependencies と Module::Install でテストが通らない

| 23:24 | Test::Dependencies と Module::Install でテストが通らないを含むブックマーク Test::Dependencies と Module::Install でテストが通らないのブックマークコメント

依存モジュールの指定漏れを防ぐ方法 - 名称未設定 - subtech

Makefile.PL に書き忘れている依存モジュールを自動検出してくれるテストモジュール Test::Dependencies ですが、Module::Install と併用していると、テストがコケます。

これは、Module::Install が生成する META.yml の中に、

build_requires:
  ExtUtils::MakeMaker: 6.42

が書いてあるのに関わらず、どのテストスクリプトにも、use ExtUtils::MakeMaker が無いのが原因です。

META.yml の中の ExtUtils::MakeMaker の記述を消せば、テストは通るのですが、自動生成されるファイルをいちいち編集するのも面倒ですし、そもそも Module::Install が、わざわざバージョン指定しているので、消すことによって何か不具合が起こりそうですし、解決策としてはやっつけ過ぎです。

他の CPAN モジュールはどうしているのかなと思い、いくつか同梱の META.yml を覗いてみましたが、build_requires に ExtUtils::MakeMaker を指定していないモジュール結構ありました。

結局、どうしたら良い解決法なのか分かりませんが、とりあえず、下記のように Test::Dependencies を使っているテストスクリプトに、use ExtUtils::MakeMaker を書いて誤魔化すことにしました。

use ExtUtils::MakeMaker;
use Test::Dependencies
    exclude => [qw/Test::Dependencies MyModule/],
    style   => 'light' ;

ok_dependencies();

皆さんはどう対処されているでしょうか?

B003U9V6A6
Sony Import Script
購入: 1人 クリック: 73回