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') failed
Obsé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
