8

次のコマンドを使用して、perl コードをテストしています。

perl -MB::Lint::StrictOO -MO=Lint,all,oo -M-circular::require -M-indirect -Mwarnings::method -Mwarnings::unused -c $file

perl バージョンが 5.10 未満のシステムでは、uninit も使用しています。

私は Perl::Critic と Perl::Tidy も使用しており、好みに合わせて適切な rc ファイルをセットアップしています。

これらのモジュールは、私が最初に perl を学習したときに学んだいくつかの悪い習慣を打破するのに非常に役立ちました。

私が混乱したときにまっすぐで狭いところに戻ってくるモジュールやプラグマは他にありますか?

テストの使用、およびモジュールの Test::* ファミリといくつかの優れた書籍が指摘されています。この新しい情報により、テストとコード スキル構築の関係について、いくつかの前提を再考する必要がありました。これらはすべて高く評価されており、すでに研究され、使用されています。

It seems to me that these are two separate parts of a whole. 'perl -c', Perl::Critic and Perl::Tidy all help during the process of writing code and before execution of code. Devel::Cover, Devel::NYTProf and Tests happen during and after execution of code.

Good development dictates an iterative process, so tests will be run, and code developed over and over, but we still have this separation.

It appears to me that the focus in the answers have been on the 'during and after execution' of code. Again, this is very appreciated. Can I assume that I have the 'writing and pre-execution' part down pretty well then? At least, insomuch as the pragmas, modules and utilities are concerned.

4

2 に答える 2

4

あなたが Perl 5.9 を使っているのが少し心配です。理由は 2 つあります。

まず、少し古いです。5.9.0 は 2003 年にリリースされ、5.9.5 (5.9.x シリーズの最後のバージョン) は 2007 年にリリースされました。それ以来、いくつかの高品質バージョンの Perl が存在しています。

次に (そして最も重要なことに)、5.9 は Perl の不安定な開発バージョンです。5.9 は基本的に、最終的に Perl 5.10.0 につながる一連の実験です。これを使用する唯一の理由は、5.10 が Perl の安定したバージョンになることをテストすることです。今は誰も使っていないはずです。

于 2012-07-20T10:49:41.847 に答える
2

コードがコンパイルされることを確認するだけで、コードをテストしているようには見えません。Test::More (実際のテストを簡単に書けるようにする)、Test::Class (非常に大きなテスト スイートを扱いやすくする)、および Devel::Cover (コードのどのビットを参照するかを確認するため) を参照することをお勧めします。テストでカバーされているものとそうでないもの)。

于 2012-07-20T10:54:35.377 に答える