2009-10-03 13 views
8

Después de haber acumulado suficientes pruebas para ejecutarlas, todo lleva tiempo real, miré el Test::Class::Load doc para encontrar un consejo para ejecutar clases de prueba individuales. Proporciona una manera de hacer esto, pero me falta algo, porque no puedo hacer que funcione. Aquí es lo que tengo:¿Cómo puedo ejecutar pruebas individuales con Test :: Class :: Load?

Mi directorio de prueba:

drewfus:~/sandbox$ ls t/ 
lib/ perlcriticrc PerlCritic.t Unit.t 

t/Unit.t consiste en lo siguiente:

use strict; 
use warnings; 

use Test::Class; 
use Test::More 'no_plan'; 
use Test::Class::Load 't/lib'; 

por la sugerencia en el Test::Class::Load doc, tengo una clase base para cada uno de mi prueba clases para heredar de, SG::TestBase que vive en t/lib/SG/TestBase.pm:

package SG::TestBase; 
use strict; 
use warnings; 
use base 'Test::Class'; 

INIT { Test::Class->runtests } 

1; 

Y, por último, aquí es una clase de ejemplo de prueba, SG::UtilsTest en t/lib/SG/UtilsTest.pm:

package SG::UtilsTest; 
use strict; 
use warnings; 
use base 'SG::TestBase'; 

BEGIN { use_ok('SG::Utils') }; 
<etc> 

Todo sigue melocotón si quiero ejecutar todas las pruebas con Build test o prove, pero tratando de ejecutar una prueba individual doesn 't trabajo:

drewfus:~/sandbox$ prove -lv SG::UtilsTest 
Cannot determine source for SG::UtilsTest at /usr/share/perl/5.10/App/Prove.pm line 496 

Respuesta

5

Felicitaciones por detectar el error en la documentación :-)

el último argumento debe ser el pa a la clase de prueba, no al nombre del paquete. También deberá agregar la ruta a las bibliotecas de la clase de prueba para comprobar que puede encontrarlas Realizando:

prove -lv -It/lib t/lib/SG/UtilsTest.pm 

debería funcionar.

+0

Esto funciona, pero siete años después la documentación sigue teniendo el mismo error. – jja

Cuestiones relacionadas