Vamos a hacer una prueba mas. Supongamos que tengo la intención de
añadir una función GenKnap
que genere aleatoriamente un problema de
la mochila. Como no esta hecho,
lo declaramos como una prueba a hacer ( TODO ). Es decir, se trata de un
test que fallará, pero que se espera que deje de hacerlo en el futuro.
42 TODO: { 43 local $TODO = "Randomly generated problem"; 44 can_ok('Algorithm::Knap01DP', 'GenKnap'); 45 }Primero una ejecución a mano:
~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/t$ perl \ -I/home/lhp//Lperl/src/threads/knapsack/Algorithm-Knap01DP/lib 01MartelloAndTothBook.t 1..11 ok 1 - use Algorithm::Knap01DP qw/Knap01DP ReadKnap/;; ok 2 - ReadKnap knap21.dat ok 3 - Knap01DP knap21.dat ok 4 - ReadKnap knap22.dat ok 5 - Knap01DP knap22.dat ok 6 - ReadKnap knap23.dat ok 7 - Knap01DP knap23.dat ok 8 - ReadKnap knap25.dat ok 9 - Knap01DP knap25.dat ok 10 not ok 11 - Algorithm::Knap01DP->can('GenKnap') # TODO Randomly generated problem # Failed (TODO) test (01MartelloAndTothBook.t at line 45) # Algorithm::Knap01DP->can('GenKnap') failedObsérvese que:
t
.
-I
para que pueda encontrar el módulo.
not ok 11 - ... # TODO Return ...
indicando que falla y que es una prueba TODO
.
make test
(un directorio por encima):
~/Lperl/src/threads/knapsack/Algorithm-Knap01DP$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" \ "-e" "test_harness(0, 'blib/lib', 'blib/arch')" \ t/*.t t/01MartelloAndTothBook....ok All tests successful. Files=1, Tests=11, 0 wallclock secs ( 0.09 cusr + 0.00 csys = 0.09 CPU)Observa como ahora se informa que todas las pruebas fueron correctamente. Se ha ocultado que hay una prueba
TODO
y su fallo no se considera significativo para
la posible instalación del módulo. De este modo el directorio
de pruebas puede ser utilizado como lista recordatorio de objetivos
y requerimientos a realizar.
Casiano Rodríguez León