Noté que en Perl la costumbre es pegar todas las pruebas en el directorio t. ¿Cómo separe la prueba unitaria de las funcionales? O, para hacer la pregunta más simple y más obvia, ¿cómo separe las pruebas que se ejecutan rápidamente de las que no? Cuando todas las pruebas se ejecutan juntas, las pruebas tardan demasiado en ser utilizadas rutinariamente en el desarrollo, lo cual es una lástima.¿Cómo puedo separar diferentes tipos de pruebas de Perl para que no tenga que ejecutarlas todas?
Pensé que podría establecer alguna variable de entorno como QUICK_TEST
y omitir las pruebas largas según su valor. ¿Separe las pruebas de unidad y funcionales? ¿Cómo? (Esto no pretende ser una encuesta - Sólo pensé que tal vez hay alguna solución idiomática.)
Actualización: Hasta aquí he llegado a esto:
package Test::Slow;
use strict;
use Test::More;
BEGIN {
plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST};
}
1;
Y en una cercana .t
file:
# This is a slow test not meant
# to run frequently.
use Test::Slow;
use Test::More;
Parece que funciona bien.
P.S. Ahora disponible como Test::Slow en CPAN.
No sé si es "por lo general"; He visto el uso de variables de entorno, directorios separados, omisión de pruebas si los módulos (por ejemplo, Test :: Pod :: Cobertura) no están instalados, incluso las comprobaciones de nombre de usuario o directorio codificadas. Veo todo esto, en mayor o menor grado, como impedimentos para cualquier persona que no sea el autor que trabaja en un módulo y deseo que la gente simplemente no se moleste. Las pruebas de solo autor rara vez son tan costosas de ejecutar. – ysth