PMD 6.51 发布,静态代码自动分析工具
PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.51 正式发布,本次更新内容如下: 新规则 新的 Apex 规则ApexUnitTestClassShouldHaveRunAs,确保单元测试至少使用一次System.runAs() 。测试更加健壮,并且独立于运行它的用户。 <rule ref="category/apex/bestpractices.xml/ApexUnitTestClassShouldHaveRunAs"/> 该规则是 quickstart.xml 规则集的一部分。 修改规则 Java 规则 TestClassWithoutTestCases 有一个新属性testClassPattern,用于按名称检测空测试类。以前此规则只能正确检测空的 JUnit3 测试用例。要切换回旧行为,可以将此属性设置为空值,从而禁用按模式检测测试类。 已修复的问题 apex #4149 : [apex] 新规则:ApexUnitTestClassShouldHaveRunAs java-最佳实践 #4140 : [java] [doc] 使用 Java 11 隐藏的 AccessorClassGeneration 违规 java代码风格 #4139 : [java] UnnecessaryFullyQualifiedName FP 当当前包中存在相同的简单类名时 java文档 #4141 : [java] UncommentedEmptyConstructor FP 当构造函数使用 @Autowired 注释时 java性能 #1167 : [java] AvoidArrayLoops 双重赋值误报 #2080 : [java] StringToString 规则误报与字段访问 #2692 : [java] [doc] AvoidArrayLoops 将同一数组中的复制分配标记为次优 #3437 : [java] StringToString 不会在 Bar.class.getSimpleName().toString() 上触发 #3681 : [java] StringToString 不会在字符串文字上触发 #3847 : [java] AvoidArrayLoops 应该考虑最终变量 #3977 : [java] StringToString 误报与本地方法名称混淆 #4091 : [java] 使用 do-while 循环避免ArrayLoops 误报 #4148 : [java] UseArrayListInsteadOfVector 在导入其他类时忽略 Vector java 容易出错 #929 : [java] 与 TestClassWithoutTestCases 不一致的结果 #2636 : [java] TestClassWithoutTestCases 误报 JUnit5 ParameterizedTest javascript #4165 : [javascript] InaccurateNumericLiteral 下划线分隔符号误报 更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.51.0