Как использовать Devel::Cover with proof?

Я вижу, что есть некоторые подобные вопросы здесь и на http://www.perlmonks.org/ но я до сих пор не понимаю. Представьте, что у меня есть проект с каталогами 'lib/' и 't'. Я запускаю свои тесты с "доказать":

$ cd $PROJECT_ROOT
$ prove ./*.t

Я хочу получить отчет в формате html для одного или нескольких файлов в каталоге 'lib/'. Я не хочу отчеты для файлов в каталоге 't'. Простого примера должно быть достаточно. Спасибо

3 ответа

Решение
  1. perl Makefile.PL или же perl Build.PL
  2. cover -test

Правильный способ - всегда начинать с Makefile.PL/Build.PL, как и предполагает выбранный ответ. Однако иногда вы не тот, кто начал, так что...

Я делал фальшивый make-файл:

 % cat Makefile
 test:
      prove -Ilib -r t

Следующее также, кажется, работает (без касания ЛЮБЫХ файлов на диске):

cover -t -make 'prove -Ilib -r t; echo >/dev/null'

Однако это уродливый хак и может перестать работать, если авторы обложки решат более строго указывать опцию -make. Также это не должно работать под окнами. хотелось бы cover был -prove вариант вместо

Это все еще создает покрытие для *.t, а также модулей CPAN в нестандартных местах. Это поведение можно исправить с помощью +select/+ignore options (см. Справочную страницу Devel:: Cover):

cover -t +select ^lib +ignore ^

Таким образом, команда tl;dr "magic"

cover -t +select ^lib +ignore ^ -make 'prove -Ilib -r t; exit $?'

РЕДАКТИРОВАТЬ Следующее не работает для меня - он печатает только краткое резюме:

 PERL5OPT="$PERL5OPT -MDevel::Cover" prove -Ilib -r t
 cover -t +select ^lib +ignore ^

Обратите внимание, что prove -MSomething относится Something в prove сам по себе и не передает его (в отличие от -I).

Делатьproveзапустите каждый тестовый файл с активированным Devel::Cover:

      $ prove --exec 'perl -MDevel::Cover=-silent,1 -Ilib' t/*.t

По умолчанию это будет печатать статистику после каждого тестового файла. Вот почему я добавил-silent => 1.

Чтобы распечатать полную статистику, в конце добавьте:

      $ cover -summary
Другие вопросы по тегам