コードカバレッジ
コードカバレッジというのは、ソースコードの何%が実行されたかという指標のことです。たとえば、以下のようなコードがあったら、
sub is_devide_100 { my $value = shift; if ($value % 100 == 0) { return 1; } else { return 0; } }
&is_divide_100(1); と &is_divide_100(100); を呼ぶと、すべてのパスを通るので is_divide_100 のコードカバレッジは100%になります。
CPAN に Devel::Cover というモジュールがあります。このモジュールを使うと、Perl のコードカバレッジが計れます。Catalyst アプリでコードカバレッジを計るには、以下のようにします。
$ sudo cpan Devel::Cover $ cd myapp/script $ perl -MDevel::Cover myapp_test.pl / $ perl -MDevel::Cover myapp_test.pl /class1 $ perl -MDevel::Cover myapp_test.pl /class1/action1 $ perl -MDevel::Cover myapp_test.pl /class1/action1/arg1 (以下外から叩けるURIを全部指定する)
そうすると以下のような値が取得できます。
---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ ...l/temp/MyApp/lib/MyApp.pm 100.0 n/a n/a 100.0 100.0 13.0 100.0 myapp_test.pl 100.0 50.0 33.3 100.0 n/a 87.0 91.2 Total 100.0 50.0 33.3 100.0 100.0 100.0 94.4 ---------------------------- ------ ------ ------ ------ ------ ------ ------