2008-09-09 23 views

回答

12

在设置档案方面,你有没有试过perlcritic --profile-proto?这将发出标准化所有安装的策略及其所有选项,并以perlcriticrc格式描述这两个策略,包括它们的默认值。保存并编辑,以匹配你想要的。每当您升级Perl :: Critic时,您可能需要再次运行此命令并使用当前的perlcriticrc进行比较,以便您可以看到现有策略的任何更改并选取新策略。

在定期运行perceritic方面,建立一个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开发人员也不同意康威所说的一切。查看Perl :: Critic本身使用的perlcriticrc文件,并在Perl :: Critic代码中搜索“## no critic”的实例;目前我算143。

(是的,我的Perl的::评论家开发者之一。)

5

对于大多数文体标准,有perltidy。 perlcritic可以很容易地配置使用.perlcritic file。我个人在第一级使用它,但我禁用了一些策略。

4

除了'自动化框架',我强烈推荐Damian Conway的Perl最佳实践。我不同意他所建议的100%,但大部分时间他都在砰砰作响。

1

一个很好的组合与Eclipse的EPIC - 击中CTRL-SHIFT-C(或您的首选配置的快捷方式),并且您的代码用警告指示器标记​​,无论哪里perlritic已发现什么抱怨。比记得在签入前运行它好得多。正常情况下,它会接收您的.perlcriticrc,以便您可以自定义规则。我们保持版本控制中的.perlcriticrc,以便每个人都获得相同的标准。

0

除了化妆品的最佳实践,我总是觉得有用就在我的单元测试套件运行杰韦利::教授检查测试覆盖率。

相关问题