Hemos escrito analizadores para diferentes formatos de datos científicos en Perl. Recientemente, agregué un paquete de prueba con un archivo parser_*.t
para cada formato y subformato.¿Cómo planificar pruebas adicionales ejecutadas por un sub externo?
Por supuesto, la API de los analizadores es exactamente la misma, solo difieren los datos leídos de los archivos de ejemplo que se utilizan para probar el análisis. Para simplificar los archivos de prueba, escribí un sub que pasa el objeto analizador y una estructura hash que representa los datos esperados. Parece que
my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
property1 => "value",
property2 => 123,
subobject_accessor => {
property3 => "foobar",
}
}
El sub test_nested_objects
paseos por el hash y realiza pruebas para todas las propiedades definidas en el hash, por ejemplo si se puede llamar al subobject_accessor
, devuelve un objeto y ese objeto se puede llamar property3
.
Comprobé cuántas pruebas ejecuta el archivo completo *.t
y agregué tests => 123
a todos los archivos *.t
. Ahora, agregué algunos controles a la función genérica y todos los planes son incorrectos.
¿Cómo hacer que mi plan esté al tanto de las sub pruebas? Me gustaría lograr lo siguiente:
- número de pruebas antes de ejecutarlos de vista de progess
- número total aumentó de forma automática → ningún cambio de los números a mano durante la edición de la sub
- pruebas individuales en sub visible cuando se ejecuta probar (ocultar pruebas en sub y devolver solo 0 o 1 no es aceptable porque realmente necesito saber qué está mal con los datos analizados)
Espero que puedan entender. Perdón por la larga historia, pero pensé que la gente probablemente no entendería sin un poco de conocimiento previo.