Каковы некоторые инструменты покрытия кода для Perl?

StackOverflow https://stackoverflow.com/questions/230065

  •  04-07-2019
  •  | 
  •  

Вопрос

Существуют ли какие-либо хорошие (и желательно бесплатные) инструменты покрытия кода для Perl?

Это было полезно?

Решение

Да, Devel :: Cover - это то, что нужно.

Если вы разрабатываете модуль и используете Module :: Build для управления установкой у вас даже есть цель testcover :

 perl Build.PL
 ./Build testcover

Он запускает весь набор тестов и создает комбинированный отчет о покрытии в прекрасном HTML, где вы можете просматривать свои модули и просматривать их покрытие.

Другие советы

Как обычно, CPAN - ваш друг: посмотрите Devel :: Cover

Как уже отмечалось, Devel :: Cover - ваш друг, но вы также захотите поискать его в Google. Его документация немного скудна, и если вы радикально измените свою среду, вам придется переустановить ее, потому что она собирает Devel :: Cover :: Inc с кучей информации, извлеченной из вашей среды во время ее установки. Это вызвало множество проблем для нас на работе, поскольку у нас есть общая среда CPAN, и если один разработчик устанавливает Devel :: Cover, а другой разработчик пытается ее запустить, странные (и неправильные) результаты являются общими.

Если вы используете этот модуль, также ознакомьтесь с Devel :: CoverX :: Covered . Этот модуль будет захватывать большую часть информации, которую выбрасывает Devel :: Cover. Это очень удобно.

Мориц обсуждает, как модули, созданные с помощью Module :: Build, могут легко использовать Devel :: Cover.

Для модулей, использующих ExtUtils :: MakeMaker, существует модуль расширения для вызова той же функциональности. Добавление следующего кода перед вызовом метода WriteMakefile ():

eval "use ExtUtils::MakeMaker::Coverage";
if( !$@ ) {
    print "Adding testcover target\n";
}

... позволит запустить команду 'make testcover' и заставить Devel :: Cover выполнять свою магию.

scroll top