La forma adecuada es comenzar siempre con Makefile.PL/Build.PL, tal como sugiere respuesta seleccionada. Sin embargo, a veces no es el que comenzó, así que ...
Yo solía hacer un makefile falsa:
% cat Makefile
test:
prove -Ilib -r t
Lo siguiente también parece funcionar (w/o tocar cualquier archivos en el disco):
cover -t -make 'prove -Ilib -r t; echo >/dev/null'
es un truco feo y sin embargo puede dejar de funcionar si los autores de la cubierta deciden citar -hacer opción más estricta. Además, no debería funcionar en Windows. Ojalá cover
tuviera una opción -prove
en su lugar.
Este sigue generando cobertura para * .t y módulos CPAN en ubicaciones no estándar. Este comportamiento se puede solucionar con seleccionar +/+ ignoran opciones (véase la Devel::Cover's manpage):
cover -t +select ^lib +ignore^
Así que el tl; dr comando "mágica" es
cover -t +select ^lib +ignore^-make 'prove -Ilib -r t; exit $?'
EDITAR El siguiente no lo hizo trabajo para mí - que sólo imprime breve resumen:
PERL5OPT="$PERL5OPT -MDevel::Cover" prove -Ilib -r t
cover -t +select ^lib +ignore^
Tenga en cuenta que se aplica prove -MSomething
Something
-prove
y no la pasa (a diferencia de -I).
No es un proyecto distribuible. solo hay un directorio "lib" lleno de * .pm y una "t" Sin makefiles. –
@Berov, tuve el mismo problema y la sugerencia de Daxim es correcta. Todavía puede agregar un esqueleto Makefile.PL o Build.PL a su proyecto y luego obtener su informe de cobertura. Si ayuda, contacté con el autor de Devel :: Cover y confirmó que esta es la manera de hacerlo. – oalders
Sorprendentemente, funcionó bien. Creé un Makefile.PL escueto, ejecuté una versión de prueba, y ahora tengo un conjunto exhaustivo de páginas HTML en la carpeta cover_db. Quien supondría que sería tan simple ... Muchas gracias. –