CPANTESTERS: Test de instalación de módulos Perl
Los probadores de CPAN son un grupo de voluntarios que se dedican a
efectuar pruebas sobre módulos Perl, creando informes que son remitidos al
autor y almacenados en un lugar centralizado, que puede ser consultado
públicamente, además de adjuntarlo como valor añadido a la información que el
propio CPAN
muestra de cada uno.
Existen dos sitios con información al respecto, por si alguien tiene la idea de unirse al grupo, a pesar de que no parecen estar excesivamente actualizados:
La lista de mis módulos es un poco desastrosa dado que voy aprendiendo sobre la marcha, pero confío en conseguir instalaciones limpias en breve. :-)
Resultados de los tests
Según consta en el wiki del proyecto, los tests de instalación pueden dar alguno de los siguientes resultados.
PASS
La distribución ha sido construída y todos sus test se han ejecutado correctamente, aunque esto no quiere decir que el software sea perfecto; es posible que el autor no haya incluído el suficiente número de test en su paquete, ó que éstos no cubran en su totalidad el buen funcionamiento del mismo. Es más, las advertencias (warnings) que se emiten en los test no se tienen en cuenta y pueden ser síntomas de posteriores fallos.
En este caso el mensaje no se suele enviar al autor, únicamente a la lista CPAN-Testers para que conste.
FAIL
Si la distribución falla en uno ó más test ó en algún punto del proceso de construcción (perl Makefile.PL, make ó make test por ejemplo) adquiere el estatus de fallida y el informe se envía tanto al autor como a la lista.
UNKNOWN
En esta categoría entran aquellas distribuciones que no incluyen un paquete de tests, ó el resultado de estos es ambiguo para los entornos de prueba (Test::Harness y similares).
En este caso el informe se envía al autor y a la lista, y se añaden algunos párrafos animando al autor a incluir dichos tests en la distribución, dado que algunos tests son mejores que ninguno. Además se incluye un test de ejemplo y se le remite al tutorial de Michael G. Schwern para usarlo como base.
NA
NA es el acrónimo de no aplicable (Not Applicable) y aparece cuando la
versión de Perl
instalada no está soportada en la plataforma en la que
vamos a efectuar el test. Los informes deben enviarse a la lista y no al
autor.
Como ejemplos de cuándo una distribución entra en esta categoría podemos citar
a Win32::OLE y Mac::Glue, puesto que no se espera que puedan
probarse en otras plataformas. También están las que solicitan una versión
concreta de Perl
, dado que ésta ó las siguientes incluyen soporte que
otras más antiguas no, como el Unicode
.
Problemas de dependencias
Cuando una dependencia falla, cualquier parte dependiente, incluyendo la distribución que instiga el test, pasa a estar retenida (on hold) hasta que el problema se resuelva, y no se debería enviar informe alguno. Una vez arreglado el problema las partes dependientes pueden ser probadas de nuevo y el informe completado.
Si una dependencia tiene el estatus NA todos los componentes dependientes lo adquieren inmediatamente y se crea un informe para enviar a la lista.
Formato de informes de test
No existe aún un formato completamente unificado de informes de error, aunque se está trabajando en ello.
Cada mensaje de correo debe incluir en la línea Asunto la siguiente información:
<class> <distribution name>-<distribution-version> <platform>
donde class puede ser PASS, FAIL, UNKNOWN ó NA, y la distribución debe contener nombre y versión, pero no la extensión del archivo que la contiene:
FAIL Module-Build-PM_Filter-1.0.0 i686-linux 2.4.27-3-686
Por otra parte, el cuerpo del mensaje debe llevar esto:
- Una introducción para el autor, advirtiéndole de que es un informe automatizado.
- Si el resultado es FAIL, UNKNOWN ó NA se añadirá la salida de los tests.
- Por contra, si el resultado es PASS se debería también incluir dicha salida sólo en el caso de que haya aparecido algún aviso.
- Comentarios del testador opcionales.
- El resultado de ejecutar
perl -V
Como extras tendría que contener también una lista de los prerequisitos y las versiones instaladas en el sistema de prueba.