Что касается настройки профиля, вы пробовали perlcritic --profile-proto
? В стандартный вывод будут выведены все ваши установленные политики со всеми их параметрами с описанием обеих, включая их значения по умолчанию, в формате perlcriticrc. Сохраните и отредактируйте, чтобы соответствовать тому, что вы хотите. Каждый раз, когда вы обновляете Perl :: Critic, вы можете захотеть запустить эту команду еще раз и провести сравнение с вашим текущим perlcriticrc, чтобы вы могли видеть любые изменения существующих политик и выбирать любые новые.
Что касается регулярного запуска perlcritic, настройте Test :: Perl :: Critic Тестируйте вместе с остальными вашими тестами. Это хорошо для нового кода.
Для существующего кода используйте Test :: Perl :: Critic :: Progressive вместо этого. T :: P :: C :: Progressive будет успешным при первом запуске, но сохранит подсчет количества нарушений; после этого T :: P :: C :: Progressive будет жаловаться, если какое-либо из значений увеличится. Одна вещь, на которую следует обратить внимание, - это когда вы отменяете изменения в своей системе управления версиями. (Вы используете один, не так ли?) Скажем, я регистрирую изменения и запускаю тесты, и мои изменения уменьшают количество нарушений P :: C. Позже выясняется, что мои изменения были плохими, поэтому я возвращаюсь к старому коду. Тест T :: P :: C :: Progressive завершится неудачно из-за уменьшения количества. На этом этапе проще всего просто удалить файл истории (расположение по умолчанию t / .perlcritic-history) и запустить снова. Он должен воспроизводить ваши старые счетчики, и вы можете написать новый материал, чтобы снова их снизить.
Perl :: Critic имеет множество политик, которые поставляются вместе с ним, но есть множество дополнительных распределений политик. Взгляните на Task :: Perl :: Critic и Task :: Perl :: Critic :: IncludingOptionalDependencies.
Вам не нужно, чтобы один perlcriticrc обрабатывал весь ваш код. Создайте отдельные файлы perlcriticrc для каждого набора файлов, который вы хотите протестировать, а затем отдельный тест, указывающий на каждый из них. Например, взгляните на авторские тесты для самого P :: C по адресу http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/. Когда запускаются авторские тесты, есть тест, который запускает весь код P :: C, второй тест, который применяет дополнительные правила только к политикам, и третий, который критикует тесты P :: C.
Я лично считаю, что каждый должен работать с «жестокой» степенью серьезности, но отбросить политику, с которой он не согласен. Perl :: Critic не полностью самодостаточен; даже разработчики P :: C не согласны со всем, что говорит Конвей. Посмотрите на файлы perlcriticrc, используемые в самом Perl :: Critic, и найдите в коде Perl :: Critic примеры «## no critical»; Сейчас я насчитываю 143 человека.
(Да, я один из разработчиков Perl :: Critic.)
person
Elliot Shank
schedule
15.09.2008