4

Test :: Perl :: Criticに基づいた簡単なテストケースを作成しました。これcriticは、リポジトリ内のすべてのソースファイルで実行されます( all_critic_ok)。ただし、特にPerl :: Tidyポリシーも使用しているため、このテストには長い時間がかかります。

通常、異なるファイルを批評することは他の批評家に依存しないので、私はそれらのテストを並列化できると思いました。結局のところ、TAP :: Harnessは実際にテストを並列化できますが、テストごとではなく、ファイルごとにのみ並列化できます。

これらのテストをどのように並列化しますか?どんな回避策でもかまいません。

4

2 に答える 2

3

Perl Hacksのハック#68には、 PersistentPerlを使用してテストを永続的に実行するためのレシピがあります。あなたはこの目的のためにそれを適応させることができるかもしれません。

于 2009-10-28T23:48:43.647 に答える
1

多数のファイルがある場合、複数の Test::Perl::Critic テスト スクリプトを作成することはそれほど悪い考えではないかもしれません。たとえば、Perl-Critic 自体には 3 つの Test::Perl::Critic スクリプトがあります。1 つはアプリケーション コードのチェック用、もう 1 つはテスト コード用、もう 1 つは *.run ファイル用です。そして、これらはそれぞれ、わずかに異なる一連のルールを使用しています。

したがって、コードを少なくとも 2 つの論理グループに分割し、それらに対して別個の Test::Perl::Critic スクリプトを作成できれば、それらを Tap::Harness と並行して実行することで、少なくとも 2 倍のパフォーマンス向上を得ることができます。

さらに、PPI キャッシュを有効にすることもできます (手順については、Test::Perl::Critic のドキュメントを参照してください)。しかし、それはわずかなパフォーマンスの改善にすぎません。

Test::Perl::Critic を真に並行して実行することに本当に興味がある場合は、コードの提供を歓迎します。http://perlcritic.tigris.orgでコミット ビットに登録できます。

于 2009-11-18T19:48:20.683 に答える