Test::Perl::Critic その1
社内勉強会で発表するためのメモその1
概要
Test::Perl::Critic wraps the Perl::Critic engine in a convenient subroutine suitable for test programs written using the Test::More framework.
Test::Perl::Critic - Use Perl::Critic in test programs - metacpan.org
(超意訳)Test::Perl::CriticはTest::More向けの、Perl::Criticのラッパーだよ!
このモジュールはテスト対象のコードがPBPに準拠しているかどうかをテストしてくれるモジュールです。 PBPとはDamian Conway氏の提唱するPerl Best PracticesというPerlのコードを書く際のスタイルです。
第4回 Test::Perl::Critic, Test::Pod, Test::Pod::Coverage, Test::Exception, Test::Warn, Devel::Coverの紹介:Happy Testing Perl|gihyo.jp … 技術評論社
使ってみる
# t/99_perlcritic.t use strict; use Test::More; eval { require Test::Perl::Critic; Test::Perl::Critic->import(-profile => "t/perlcriticrc") }; plan skip_all => "Test::Perl::Critic is not installed." if $@; all_critic_ok( qw/ bin lib /);
はじめ、done_testingをつけて実行したところ、テスト数が合わないと言われパスしなかった。
ドキュメントを見てみると、Test::Moreのテスト数はTest::Perl::Criticが設定してくれる云々と書いてある。
また、t/perlcriticrcを作ってない場合は、空ファイルでいいので作らないとパスしない。
もしくは、以下のようにコードを変更するか。
#eval { require Test::Perl::Critic; Test::Perl::Critic->import(-profile => "t/perlcriticrc") }; eval { require Test::Perl::Critic; Test::Perl::Critic->import };
とりあえず、自分が書いたコードでテストしてみたが、なんとパスした。
ちょっと驚いた。それほど難しいことしてないためだろうが。