如何忽略CheckStyle警告缺少测试方法的@throws?

Jan*_*rts 5 java junit checkstyle

我受到CheckStyle警告在JavaDoc测试方法中缺少@throws的困扰.

我正在使用这样的测试方法:

/**
 * Check that something works. <== CheckStyle wants @throws here
 */
@Test
public void testSomething() throws Exception {
  ...
}
Run Code Online (Sandbox Code Playgroud)

是否有一种可配置的方式告诉CheckStyle忽略这个?

"throws"条款特别是因为它是一种测试方法; 通常会忽略异常处理.

Mat*_*ell 2

是的。您可以为特定文件的检查样式错误指定抑制过滤器。请参阅Checkstyle 5.5,SuppressionFilter 部分。从那里,

过滤器 SuppressionFilter 根据文件中的抑制 XML 文档拒绝检查错误的审核事件。如果没有配置的抑制文件,则过滤器接受所有审核事件。

<module name="SuppressionFilter">
    <property name="file" value="docs/suppressions.xml"/>
</module>
Run Code Online (Sandbox Code Playgroud)

抑制 XML 文档包含一组抑制元素,其中每个抑制元素可以具有以下属性:

  • files - 与审计事件关联的文件名相匹配的正则表达式。这是强制性的。
  • 检查 - 与审计事件关联的检查名称相匹配的正则表达式。如果指定了 id,则为可选。
  • id - 与审计事件关联的检查 ID 相匹配的字符串。如果指定了检查,则可选。
  • lines - 以逗号分隔的值列表,其中每个值都是一个整数或由整数-整数表示的整数范围。它是可选的。
  • columns - 以逗号分隔的值列表,其中每个值都是一个整数或由整数-整数表示的整数范围。它是可选的。

每个审核事件都会针对每个抑制元素进行检查。如果所有指定的属性都与审核事件匹配,则会抑制该事件。

因此,就您的情况而言,您可以执行以下操作:

<suppressions>
   <suppress checks="JavadocStyleCheck" files="*Test.java"/>
</suppressions>
Run Code Online (Sandbox Code Playgroud)

我不确定 JavadocStyleCheck 是否确实是您要删除的检查,但请查看文档以了解更多信息。