Właściwym sposobem jest zawsze rozpocząć się Makefile.PL/Build.PL, tak jak sugeruje wybrana odpowiedź. Czasami jednak nie jesteś jedynym, który rozpoczął się, więc ...
kiedyś zrobić fałszywy makefile:
% cat Makefile
test:
prove -Ilib -r t
Poniższa również wydaje się działać (w/o dotykania żadnych plików na dysku):
cover -t -make 'prove -Ilib -r t; echo >/dev/null'
jest brzydki hack, jednak i może przestać działać, jeśli autorzy cover zdecydować zacytować -make opcję bardziej surowo. Również nie powinno działać w systemie Windows. Chciałbym, aby cover
miał zamiast tego opcję -prove
.
Ten nadal generuje pokrycie modułów * .t oraz CPAN w niestandardowych lokalizacjach. Takie zachowanie może być ustalona przy użyciu + select/+ ignorować opcji (patrz Devel::Cover's manpage):
cover -t +select ^lib +ignore^
tak więc tl; dr komenda "magia" jest
cover -t +select ^lib +ignore^-make 'prove -Ilib -r t; exit $?'
EDIT Poniższa nie praca dla mnie - to tylko drukuje krótkie podsumowanie:
PERL5OPT="$PERL5OPT -MDevel::Cover" prove -Ilib -r t
cover -t +select ^lib +ignore^
Zauważ, że prove -MSomething
stosuje Something
do prove
sam w sobie i nie przekazuje go (w przeciwieństwie do -I).
To nie jest projekt do rozpowszechniania. istnieje tylko katalog "lib" pełen * .pm i "t" Brak plików Makefile. –
@Berov, miałem ten sam problem i sugestia Daxima jest prawidłowa. Nadal można dodać szkielet Makefile.PL lub Build.PL do projektu, a następnie uzyskać raport o zasięgu. Jeśli to pomaga, skontaktowałem się z autorem Devel :: Cover i potwierdził, że jest to sposób, aby to osiągnąć. – oalders
Zadziwiająco to działało dobrze. Stworzyłem plik Makefile.PL gołe kości, uruchomiłem cover -test, a teraz mam wyczerpujący zestaw stron HTML w folderze cover_db. Kto by pomyślał, że będzie tak prosty ... Wielkie dzięki. –