我受到CheckStyle警告在JavaDoc测试方法中缺少@throws的困扰。
我正在使用这样的测试方法:
/**
* Check that something works. <== CheckStyle wants @throws here
*/
@Test
public void testSomething() throws Exception {
...
}
是否有可配置的方式告诉CheckStyle忽略这个?
“throws”子句是特别是,因为它是一种测试方法;通常会忽略异常处理。
答案 0 :(得分:4)
一种非常合适的方法是:
为src
代码设置一个checkStyle规则,为test
设置另一个规则。
在eclipse中,您可以在Project-&gt; Properties-&gt; Checkstyle中配置它。
src的Checkstyle规则并不总是适用于测试代码,如上例中的OP所示。在测试中禁用的其他候选规则是The MagicNumber检查。
如果你需要为src中的下N行禁用一个或多个检查, 你应该配置:(另见http://checkstyle.sourceforge.net/config.html)
配置过滤器,以便CHECKSTYLE IGNORE检查FOR NEXT var LINES避免触发对给定的当前检查的任何审核 line和下一个var行(总共var + 1行):
<module name="SuppressWithNearbyCommentFilter">
<property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/>
<property name="checkFormat" value="$1"/>
<property name="influenceFormat" value="$2"/> </module>
然后在您的src或测试代码中,您可以使用
禁用特定的Checkstyle
规则
/**
* Tests worker1.
*/
//CHECKSTYLE IGNORE <Rule> 1
public void testWorker1() throws Exception {
}
“规则”是规则的名称,请在上面的链接中查找 为了忽略行长度限制为80个字符,对于10行,评论将是
//CHECKSTYLE IGNORE Line 100
您的进一步可以连接规则:
//CHECKSTYLE IGNORE Line|MethodLength 100
如果你是一个非常认真的开发者,你可以添加评论为什么你这样做:
//CHECKSTYLE IGNORE Catch 1 Last line of defense: need to catch Exception
答案 1 :(得分:2)
是。您可以为特定文件的checkstyle错误指定抑制过滤器。见Checkstyle 5.5, section SuppressionFilter。从那里,
Filter SuppressionFilter根据文件中的抑制XML文档拒绝检查错误的审核事件。如果没有配置的抑制文件,则过滤器将接受所有审核事件。
<module name="SuppressionFilter">
<property name="file" value="docs/suppressions.xml"/>
</module>
抑制XML文档包含一组抑制元素,其中 每个suppress元素都可以具有以下属性:
- files - 与文件名匹配的正则表达式 与审计事件相关联。这是强制性的。
- 检查 - a 正则表达式与相关检查的名称匹配 审核事件。如果指定了id,则为可选。
- id - 一个字符串 匹配与审核事件关联的检查的ID。 如果指定了检查,则可选。
- lines - 以逗号分隔的列表 值,其中每个值是整数或表示的整数范围 按整数整数。这是可选的。
- 列 - 以逗号分隔 值列表,其中每个值是整数或整数范围 用整数整数表示。这是可选的。
针对每个suppress元素检查每个审核事件。它是 如果所有指定的属性都与审核事件匹配,则禁止。
因此,在您的情况下,您可以执行以下操作:
<suppressions>
<suppress checks="JavadocStyleCheck" files="*Test.java"/>
</suppressions>
我不确定JavadocStyleCheck是否真的是您要删除的检查,但请查看文档以获取更多信息。
答案 2 :(得分:1)
您可以在每个方法之前添加它,或者在包含它们的类之前添加一次:
<div class="btn-group" role="group">
<button type="button" class="btn btn-default" data-toggle="modal" data-target="#LabelMaker">PRINT LABELS</button>
</div>
<!-- Label Maker Modal -->
<div class="modal fade" id="LabelMaker" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Label Maker</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12">
<label for="LabelNum">Please enter label start number:</label>
<div class="input-group">
<input type="text" class="form-control" name="LabelNum" id="LabelNum">
</div>
</div>
</div>
</div>
<div class="modal-footer group">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary label_accept">Accept</button>
</div>
</div>
</div>
</div>
<!-- End Label Maker Modal -->
答案 3 :(得分:-1)
@SuppressWarnings(“checkstyle:javadocmethod”)是用于抑制getter和setter的警告或java中不需要javadoc的任何方法的注释