Instale el módulo Devel::Cover. El módulo Devel::Cover ha sido escrito por Paul Johnson y proporciona estadísticas del cubrimiento alcanzado por una ejecución. Para usarlo siga estos pasos:
hp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ cover -delete Deleting database /home/lhp/projects/perl/src/threads/knapsack/Algorithm-Knap01DP/cover_db lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ make HARNESS_PERL_SWITCHES=-MDevel::Cover test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01alltests....ok t/02bench.......ok All tests successful. Files=2, Tests=16, 18 wallclock secs (17.05 cusr + 0.75 csys = 17.80 CPU) Writing HTML output to /home/lhp/projects/perl/src/threads/knapsack/Algorithm-Knap01DP/cover_db/coverage.html ... done.La ejecución toma ahora mas tiempo. Al ejecutar
cover
de nuevo obtenemos una tabla con las estadísticas
de cubrimiento:
lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ cover Reading database from /home/lhp/projects/perl/src/threads/knapsack/Algorithm-Knap01DP/cover_db ---------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt bran cond sub pod time total ---------------------------- ------ ------ ------ ------ ------ ------ ------ ...lib/Algorithm/Knap01DP.pm 100.0 82.1 37.5 100.0 0.0 100.0 88.8 Total 100.0 82.1 37.5 100.0 0.0 100.0 88.8 ---------------------------- ------ ------ ------ ------ ------ ------ ------ Writing HTML output to /home/lhp/projects/perl/src/threads/knapsack/Algorithm-Knap01DP/cover_db/coverage.html ... done.El HTML generado nos permite tener una visión mas detallada de los niveles de cubrimiento.
lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ cd cover_db/ lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/cover_db$ ls -l total 68 -rw-r--r-- 1 lhp lhp 3424 2007-05-16 15:48 blib-lib-Algorithm-Knap01DP-pm--branch.html -rw-r--r-- 1 lhp lhp 3127 2007-05-16 15:48 blib-lib-Algorithm-Knap01DP-pm--condition.html -rw-r--r-- 1 lhp lhp 34909 2007-05-16 15:48 blib-lib-Algorithm-Knap01DP-pm.html -rw-r--r-- 1 lhp lhp 2207 2007-05-16 15:48 blib-lib-Algorithm-Knap01DP-pm--subroutine.html -rw-r--r-- 1 lhp lhp 3345 2007-05-16 15:48 cover.12 -rw-r--r-- 1 lhp lhp 2004 2007-05-16 15:48 coverage.html -rw-r--r-- 1 lhp lhp 1348 2007-05-16 15:48 cover.css drwx------ 2 lhp lhp 4096 2007-05-16 15:48 runs drwx------ 2 lhp lhp 4096 2007-05-16 15:48 structure
Para mejorar el cubrimiento de tu código comienza por el informe de cubrimiento de subrutinas. Cualquier subrutina marcada como no probada es un candidato a contener errores o incluso a ser código muerto.
Casiano Rodríguez León