【Perl】 Test::WWW::Simpleがインストールできない件

投稿日: / 更新日:

この記事は2年以上前に書かれたものです。情報が古い可能性があります。

Perlbrewで最新のPerl環境を構築した後は、大抵、いろいろなCPANモジュールを追加でインストールしますが、そのなかでも、テスト自動化のために欠かせないモジュールとして、Bundle::Testは是非ともインストールしておきたいところです。これは様々なテスト用モジュールをバンドルしたもので、Test::WarnDevel::CoverTest::Deepなど、テストで特に良く使われると思われるモジュールを一度にインストールすることができます。

さて、先ほども新たなPerl環境を構築し、このBundle::Testをインストールしてみたのですが、インストールされるモジュールのなかで、Test::WWW::Simpleだけ、インストール時のテストに失敗してしまい、インストールすることができません。エラーの内容は以下のとおりです。

少し詳しく見てみると、どうやらテスト用にMojoliciousサーバを起動しようとして失敗し、結果、その後のテストにも失敗している模様です。

エラーメッセージをもう一度詳しく見てみると、

どうやら、shagadelicという存在しないサブルーチンを呼び出していることが原因のようです。なお、Mojolicious側でAUTOLOADサブルーチンを定義しているため、AUTOLOADの警告も併せて出力されています。

Test::WWW::Simpleの、該当するテストコードの方を見てみます。

プロセスをforkした後、子プロセス側でMojoliciousサーバをセットアップして起動する、という内容のようです。また、shagadelic('daemon')の行で、サーバをデーモンモードで起動しようとしています。

MojoliciousのChangesを確認すると、以下の記述がありました。

上記によると、Mojoliciousのバージョン0.999925以降では、shagadelicサブルーチンの代わりにapp->startで起動する必要があるようです。ちなみに、現在のMojoliciousのバージョンは2.95ですので、Test::WWW::Simpleのテストコードを以下のように修正した上で、再度テストを行ってみます。

テストが成功しました。Test::WWW::Simpleのテストスクリプト自身の問題だと判明しましたので、改めてモジュールをインストールします。

これで、モジュールを無事インストールすることができました。

以上、Test::WWW::Simpleモジュールのインストールに関する話題をご紹介しました。

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。