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

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

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営業担当【hsd-sales@atomitech.jp】までご連絡ください。

※お問い合わせフォームからご連絡の場合には、お問い合わせ内容で「Hinemosについて」を選択し、
 本文の冒頭に「Hinemos研究日記_【タイトル名】」とご記載ください。
※メールアドレスへご連絡の場合には、件名を「Hinemos研究日記_【タイトル名】」でご連絡ください。