ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 忽略带有Test注释的方法的PMD规则

2019-09-10 22:02:41  阅读:420  来源: 互联网

标签:pmd java junit abstract-syntax-tree


我将PMD用于包含MockMvc个测试的Spring Boot项目.该类强制用户捕获常规异常.

class MockMvc {
    public ResultActions perform(RequestBuilder requestBuilder) throws Exception {}
}

使用导致PMD错误 – SignatureDeclareThrowsException.我想取消所有@Test方法的检查.因此我尝试遵循Stackoverflow answer但配置更改无效.

<rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException" >
    <properties>
        <!-- Ignore @Test methods -->
        <property name="violationSuppressXPath" value="
        //ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation//Name[@Image='Test']" />
    </properties>
</rule>

我怎么能实现它?

抽象语法树为测试方法显示以下子树.

> ClassOrInterfaceBodyDeclaration
  > Annotation
    > MarkerAnnotation
      > Name:Test
  > MethodDeclaration:(public)
    > ResultType:(void)
    ...

解决方法:

可以使用IgnoreJUnitCompletely属性在版本中解决测试方法的特定问题.

<!-- PMD > version 6.* -->
<rule ref="category/java/design.xml/SignatureDeclareThrowsException" >
    <properties>
        <property name="IgnoreJUnitCompletely" value="true" />
    </properties>
</rule>

在PMD 6之前,您必须从typeresolution.xml获取规则,但不能从strictexception.xml获取规则.

<!-- PMD > version 4.* -->
<rule ref="rulesets/java/typeresolution.xml/SignatureDeclareThrowsException">
    <properties>
        <property name="IgnoreJUnitCompletely" value="true" />
    </properties>
</rule>

但它没有回答有关violationSuppressXPath问题的问题.

标签:pmd,java,junit,abstract-syntax-tree
来源: https://codeday.me/bug/20190910/1801734.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有