たろマーク (はてなブックマーク)
-
[ javascript ][ test ] Rspec ライクな Javascript テストフレームワーク
-
[ ezpublish ] eZ のデータソースを CakePHP で使うためのアダプタ。Rails とか Django にこれを移植すれば!
-
[ iquestioner ]
-
[ ruby ]
-
[ lazy-people ] おつでしたー
■ Catalyst で app 生成時に perlcritic なテストを吐く
Test::Perl::Critic は miyagawa さんのやり方をパクって使ってます。
んで、Catalyst で開発するときとか catalyst.pl MyApp した後にわざわざ t/99perlcritic.t なファイル作ってコピペしてたんですが、catalyst.pl MyApp したときに自動で吐くようにしてみました。ので Catalyst::Helper のパッチ。
*** Helper.pm.org 2007-05-26 19:23:49.000000000 +0900
--- Helper.pm 2007-05-26 19:32:56.000000000 +0900
***************
*** 397,402 ****
--- 397,404 ----
$self->render_file( 'apptest', "$t\/01app.t" );
$self->render_file( 'podtest', "$t\/02pod.t" );
$self->render_file( 'podcoveragetest', "$t\/03podcoverage.t" );
+ $self->render_file( 'perlcritic', "$t\/99perlcritic.t" );
+ $self->render_file( 'perlcriticrc', "$t\/perlcriticrc" );
}
sub _mk_cgi {
***************
*** 715,720 ****
--- 717,742 ----
plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
all_pod_coverage_ok();
+ __perlcritic__
+ use strict;
+ use warnings;
+ 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 $@;
+ plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+ all_critic_ok("lib");
+ __perlcriticrc__
+ # for mkdir $dir, 0777
+ [-ValuesAndExpressions::ProhibitLeadingZeros]
+
+ # we do eval $asset_pl a lot
+ [-BuiltinFunctions::ProhibitStringyEval]
+
+ # no strict 'refs'
+ [TestingAndDebugging::ProhibitNoStrict]
+ allow = refs
__cgi__
[% startperl %]
意外と引っかからないなぁとか思ってたけど、severity を 1 にしたら結構色々言われました。こういうの見るとなるほどなぁとも思うんだけど、RCS keywords $Id$ not found とか言われるのはうっとうしいので severity は 1 にして、perlcriticrc を編集したらいいかなぁ。(ちなみに上のパッチは default の 5)
トラックバック
このエントリーのトラックバックURL:
http://vkgtaro.jp/cgi-bin/mt/mt-tb.cgi/608




