Java 如何忽略测试方法缺少@throws的CheckStyle警告?
我被关于测试方法JavaDoc中缺少@throws的CheckStyle警告所困扰 我使用的测试方法如下:Java 如何忽略测试方法缺少@throws的CheckStyle警告?,java,junit,checkstyle,Java,Junit,Checkstyle,我被关于测试方法JavaDoc中缺少@throws的CheckStyle警告所困扰 我使用的测试方法如下: /** * Check that something works. <== CheckStyle wants @throws here */ @Test public void testSomething() throws Exception { ... } /** *检查一下有没有什么办法 对。可以为特定文件的checkstyle错误指定抑制过滤器。看见从那里 Filte
/**
* Check that something works. <== CheckStyle wants @throws here
*/
@Test
public void testSomething() throws Exception {
...
}
/**
*检查一下有没有什么办法 对。可以为特定文件的checkstyle错误指定抑制过滤器。看见从那里
Filter SuppressionFilter根据文件中的suppressions XML文档拒绝检查错误的审核事件。如果没有配置的抑制文件,则筛选器接受所有审核事件
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
抑制XML文档包含一组抑制元素,其中
每个抑制元素可以具有以下属性:
- files-与文件名匹配的正则表达式
与审核事件关联。这是强制性的
- 支票-a
正则表达式与关联检查的名称匹配
一个审计事件。如果指定了id,则为可选
- id-字符串
与审核事件关联的支票id匹配。
如果指定了检查,则为可选
- 行-以逗号分隔的行列表
值,其中每个值是一个整数或表示的整数范围
按整数。它是可选的
- 列-逗号分隔
值列表,其中每个值都是一个整数或一系列整数
用整数表示。它是可选的李>
根据每个抑制元素检查每个审核事件。它是
如果所有指定的属性都与审核事件匹配,则被抑制
因此,在您的情况下,您可以执行以下操作:
<suppressions>
<suppress checks="JavadocStyleCheck" files="*Test.java"/>
</suppressions>
我不确定JavadocStyleCheck是否真的是您想要删除的检查,但请查看文档了解更多信息。一个非常合适的方法是:
为src
code设置一个checkStyle规则,为test设置另一个checkStyle规则
在eclipse中,您可以在Project->Properties->Checkstyle中配置它。
src的Checkstyle规则并不总是适用于测试代码,如上面示例中的OP所示。测试中要禁用的其他候选规则是MagicNumber检查。
如果需要禁用src中接下来N行的一个或多个检查,
您应该配置:(另请参阅)
配置筛选器以便CHECKSTYLE忽略下一个变量的检查
行可避免触发对当前行的给定检查的任何审核
第行和下一个var行(总共var+1行):
如果“规则”是规则的名称,请在上面的链接中查找该名称。
对于忽略80个字符的行长度限制,对于接下来的10行,注释将是
//CHECKSTYLE IGNORE Line 100
您可以进一步连接规则:
//CHECKSTYLE IGNORE Line|MethodLength 100
如果您是一名非常认真的开发人员,您可以添加一条评论,说明您为什么这样做:
//CHECKSTYLE IGNORE Catch 1 Last line of defense: need to catch Exception
您可以在每个方法之前,或在包含它们的类之前添加一次:
@SuppressWarnings("checkstyle:javadocmethod")
@SuppressWarnings(“checkstyle:javadocmethod”)是用于抑制Getter和Setter或java中任何不需要javadoc的方法的警告的注释单元测试首先需要javadoc注释吗?我更倾向于去掉整个JavaDoc注释,让checkstyle忽略方法缺少文档这一事实。除此之外,CheckStyle是正确的:如果您的方法抛出了一些东西,您必须解释它发生的原因(记住这不适用于单元测试)。谢谢!我的案例的语法是:不幸的是,这比我想跳过的CheckStyle多了一点。因为它也将省略javadoc检查的另一个方法。但我想这就是你在没有编程的情况下能走多远。:-)这将阻止对所有测试方法进行所有Javadoc检查。至少,您可以只使用JavadocMethod。不管怎样,我已经设立了一个赏金,看看是否可以做得更好。谢谢!我正在自动集成测试(在jenkins中)中运行maven checkstyle插件,该测试统计项目中的checkstyle违规数量。不可能(AFAIK)为同一maven模块的不同部分设置不同的配置。我在《赏金》中所说的更详细的意思是,上面提出的解决方案并没有真正做到OP所要求的。我认为这是可能的:我们使用ant,我们要测试一个不同的目标,其中使用了其他checkstyle规则。我确信这也适用于maven。@Miquel我的解决方案完全符合OP的要求。这是专业软件团队推荐的解决方案。两个checkstyle配置,一个用于src,一个用于测试。甚至eclipse在GUI中也支持这一点。你是对的,它会按照OP的建议去做。看起来应该有一个更好的方法来处理压制文件,但我也没有看到比你建议的更好的方法。谢谢你的解决方案!除了我的答案之外,这并没有增加任何东西。
//CHECKSTYLE IGNORE Catch 1 Last line of defense: need to catch Exception
@SuppressWarnings("checkstyle:javadocmethod")