私はCPANのTest
モジュールを使ってテストスクリプトを書いています。私のプログラムがURI :: URLパッケージを読み込むかどうかを調べるためにスクリプトをテストしたいと思います。これは可能ですか?Perlスクリプトが特定のモジュールをロードするためのテストを書く
答えて
私が正しく理解していれば、あるコードが特定のモジュールをロードしているかどうかを確認する必要があります。
# run your script (e.g. via 'do' or 'require')
# ...
ok $INC{'URI/URL.pm'}, "URI::URL was loaded";
%INC
を解析するのではなく、モジュールModule::Loaded
を使用する方がよいかもしれません:
あなたはその後、その後%INC
をチェックし、コードの一部を実行することによってそれを行うことができます。これはperl 5.9.4以降のコアモジュールです。あなたの問題を解決し
http://perldoc.perl.org/Module/Loaded.html
use Module::Loaded;
if (is_loaded('URI::URL')) {
print "Is loaded\n";
} else {
print "Is NOT loaded\n";
}
希望。
これはこの文脈でうまくいきますが、リストコンテキストでは、 'is_loaded'は失敗した場合(falseの代わりに)何も返しません(空のリスト)。 'foo(is_loaded(" Weird :: Stuff "))'は実際には引数なしで 'foo()'を呼び出します。 – melpomene
@zdimあなたが 'my%hash =(foo => 1、bar => is_loaded($ module)、baz => 2)'を実行してから 'is_loaded'が突然空リストを返し、後続のキーは値になり、その逆もあります。そして、あなたはあなたのbugzillaやCGIコードにセキュリティーホールを持っています(悪名高いPerl Jamの話を見てください)。その原因は '$ cgi-> param()'であり、少なくともリストを返すように文書化されています! – melpomene
@zdimいいえ、 'is_loaded'が常にスカラー(' undef'を含む)を返しても、すべて正常です。 – melpomene
- 1. セレンでテストを書くために使うperlモジュールはどれですか?
- 2. perlのいくつかのスクリプトとモジュールの定数を定義する
- 3. 国を特定するためのスクリプト
- 4. TestLoaderで特定のテストをロードする
- 5. mysqldumpでmysql増分バックアップを取るためのperlスクリプトを書く
- 6. 特定のパターンを避けるためのperlスクリプト/正規表現
- 7. ログインのテーブルをテストするためのbashスクリプトを書くには?
- 8. 症状ペアを特定するためのアルゴリズムを書く
- 9. スクリプトを書くたびに特定のモジュールを「自動使用」する方法はありますか?
- 10. Perl:モジュールをスクリプトに含める/埋め込む
- 11. perlパッケージdbd mysqlモジュールのスクリプト
- 12. Perlは、特定のモジュールをロードすることができる場合に応じて、evalを
- 13. ウェブサイトの異なるページのスクリーンショットを取得して郵送するためのPerlスクリプトを書くには?
- 14. レスポンシブデザイン - 特定のスクリプトをロードしないでください。
- 15. サーバをテストするために何度もウェブページを開くためのスクリプト
- 16. Perlスクリプト内のディスクパーティションのリストを再ロード
- 17. Perl Irssiスクリプト:msgを特定のチャンネルに送信するには?
- 18. cpanモジュールを使ってExcelファイルを読み込むためのperlスクリプト
- 19. require.js特定のモジュールを含むビルドでスクリプトが失われる
- 20. )(logger.isDebugEnabledのためのテストを書くには助けが必要
- 21. コンソール内でコマンドを実行するためのスクリプトを書く
- 22. カスタムタグを使ってHTML文書を解析するための単純なPerlスクリプト(Perlインタープリタ)は何ですか?
- 23. Pythonで複数のスクリプトを実行するためのスクリプトを書く
- 24. PHPスクリプトは、私がテストとして次のスクリプトを書いた
- 25. 特定のファイルを削除するためのBashスクリプト
- 26. 書く方法クエリービルディングをテストするための弾性ユニットテスト
- 27. 特定のスクリプトが書かれている最小perlバージョンを推測するには?
- 28. Jestのハンドルバーテンプレートファイルをロードするための単体テストの書き方は?
- 29. Djangoモジュールで動作するスタンドアロンのPythonスクリプトを書くには?
- 30. 交絡変数を特定するための関数を書く
Test :: Moreは['use_ok'](https://metacpan.org/pod/Test::More#Module-tests)と' require_ok'を持っています...あなたがTestを使用している特定の理由がありますか? .pmの代わりに.pmを使用します。 Test :: Moreはかなり標準的です。 – ThisSuitIsBlackNot
私は 'Test :: More'を使用しています。私はそれらのテストを試しましたが、私のテストスクリプトがパッケージをロードできるかどうかだけを見ているようです。別のファイルから実行しているターゲットスクリプトがパッケージをロードしているかどうかをテストしたいと思います。 – StevieD