Каковы некоторые инструменты покрытия кода для Perl?
Есть ли какие-либо хорошие (и, желательно, бесплатные) инструменты для покрытия кода для Perl?
Ответы
Ответ 1
Да, Devel:: Cover - это путь.
Если вы разработали модуль и используете Module::Build для управления установкой, у вас даже есть цель testcover
:
perl Build.PL
./Build testcover
Он запускает весь набор тестов и делает комбинированный отчет о покрытии в хорошем HTML, где вы можете просматривать через свои модули свои модули и следить за их охватом.
Ответ 2
Как обычно, CPAN - ваш друг: посмотрите Devel:: Cover
Ответ 3
Как уже отмечалось, Devel:: Cover - ваш друг, но вы тоже захотите его сделать. Документация немного редка, и если вы радикально измените свою среду, вам нужно будет переустановить ее, потому что она создает Devel:: Cover:: Inc с кучей информации, вытащенной из вашей среды во время ее установки. Это вызвало множество проблем для нас, поскольку у нас есть общая среда CPAN, и если один разработчик устанавливает Devel:: Cover, а другой разработчик пытается ее запустить, обычные (и неправильные) результаты являются общими.
Если вы используете этот модуль, также проверьте Devel:: CoverX:: Covered. Этот модуль захватит большую часть информации, которую Devel:: Cover выбрасывает. Это очень удобно.
Ответ 4
Мориц обсуждает, как модули, построенные с помощью модуля:: Build, могут легко использовать Devel:: Cover.
Для модулей, использующих ExtUtils:: MakeMaker, существует модуль расширения для вызова той же функциональности. Добавление следующего кода перед вызовом WriteMakefile():
eval "use ExtUtils::MakeMaker::Coverage";
if( [email protected] ) {
print "Adding testcover target\n";
}
... позволит запустить команду "make testcover" и запустить Devel:: Cover свою магию.