3

我想让 checkstyle 在测试中忽略缺少的 javadoc for@throws子句,但在非测试中抱怨。

因为抑制文件不支持JavadocMethod的子属性,所以我被迫要么完全忽略测试中的 javadoc,要么根本不忽略,没有粒度。这也是this other question的结论。

这就是我现在正在尝试的:我是否可以在我的 checkstyle 配置中有两个具有不同 ID(例如test和)的 JavadocMethod 模块,并有选择地在非测试中抑制模块,反之亦然?notesttest

我无法让它工作,我开始认为我不能在 checkstyle 中有重复的模块。有什么见解吗?

以下是我在配置 xml 中关于 JavadocMethod 的规则:

<module name="JavadocMethod">
  <property name="id" value="nontest"/>
</module>
<module name="JavadocMethod">
  <property name="id" value="test"/>
  <property name="allowMissingThrowsTags" value="true"/>
</module>

这是我的抑制文件:

<suppressions>
   <!-- Supress non-test-doc on tests -->
   <suppress id="nontestdoc" files=".*(?:Test|IT).*java" />
   <suppress id="testdoc" files=".*(?!Test|IT).*java" />
</suppressions>

谢谢!

4

1 回答 1

0

您可以在 checkstyle 中有重复的模块。

分别用和尝试了2个Indentation模块。并使用了以下类似的东西tab 2tab 4suppression.xml

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress id="IndnA" files=".*\.java"/>
    <suppress id="IndnB" files=".*\.java"/>
</suppressions>

什么是正则.*(?:Test|IT).*java表达式.*(?!Test|IT).*java?为什么要使用 LookAhead?

请检查文件.*\.java是否有效。

于 2013-08-16T12:00:01.003 回答