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

 

 


相關推薦

2023-01-30

Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.54 正式发布,这是一个次要的版本,本次更新内容如下: 新的报告格式 html-report-v2.xslt 添加了一个新的 PMD 报告格式,它的特点是一个带有图表功能的数据表,它使用一个 XSLT 样

2022-10-05

Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.50 正式发布,本次更新内容如下: 新的和值得注意的变化 Lua 现在支持额外的 Luau 这个版本的 PMD 增加了对 Luau 的支持,Luau 是一种从 Lua 派生出来的语言。这意味着,PMD 中的 Lua

2022-06-28

Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.47.0 正式发布,本次更新内容如下: 修复的问题 core #3999: [cli] 尽管有参数 --file-list,但所有文件都被分析了 #4009: [core] 无法用 Temurin 17 构建 PMD java-bestpractices #3824: [

2022-11-29

Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.52 正式发布,本次更新内容如下: 新规则 新的 Java 规则 InvalidJavaBean 可以识别那些不符合 JavaBeans API 规范的 Bean,比如缺少 getters 或 setters 的 bean。 <rule ref="category/java/desi

2022-08-02

Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.48 正式发布,本次更新内容如下: 新特性 对 Java 19 的支持 注意:对 Java 17 预览语言功能的支持已被删除 Gherkin 支持 错误修复 apex ApexSOQLInjection:增加支持计数

2022-12-03

问 10001 Illegal_StaticView Openapi文件中没有定义过的静态文件 10002 Illegal_UnknownUrl Openapi文件中没有定义过的非静态文件(危险级别较静态文件高) 10003 Illegal_Method Openapi中定义过url,但是访问方法错误 10004

2023-04-16

根据 KotlinConf 2023 的消息,Kotlin 2.0 和 Kotlin K2 编译器即将发布。 Kotlin 2.0  从 Kotlin 1.8.20 开始,已经可以通过常规 Kotlin 语言版本标志( -language-version)启用 Kotlin 2.0 的预览。 Kotlin 2.0 发布后,将提供几个备受期待的功

2023-07-11

持从项目外部加载源代码来生成字段注释 (包括标准规范发布的 jar 包)。 支持生成多种格式文档:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。 轻易实现在 Spring Boot 服务上在线查看静态 HTML5 api 文档。 开放文档数据

2022-11-03

持从项目外部加载源代码来生成字段注释 (包括标准规范发布的 jar 包)。 支持生成多种格式文档:Markdown、HTML5、Asciidoctor、Postman collection、Open Api 3.0+。 轻易实现在 Spring Boot 服务上在线查看静态 HTML5 api 文档。 开放文档数据

2023-02-03

关于 C++ Core Guidelines 的工作,旨在为有需要的人提供静态保证的类型安全和资源安全的 C++。符合 C++ Core Guidelines 的良好静态分析器可以为 C++ 代码安全提供必要的保证,且比升级到更新的安全编程语言要简单得多。 他批评&n

2024-08-20

为用户提供更稳定、流畅的创新操作体验。 MoonBit自去年发布 alpha 版后,反响热烈。经过一年的高速迭代,MoonBit 到达了 beta 预览版的里程碑:在核心语言特性上,MoonBit媲美、甚至超越了大部分主流语言的1.0版本;语言特性的

2023-03-10

改善其安全状况的愿望。” JetBrains 方面表示,其最近还发布了 Qodana Cloud 的公共预览版,它在一个地方收集来自 Qodana linters 的数据,让开发者在他们的 CI 工具中包含静态分析,并提高速度。 更多详情和示例可查看官方博客。

2024-07-11

微软发布了 .NET 9 的第 6 个预览版,此版本包括对运行时、SDK、.NET MAUI、ASP.NET Core 和 C# 的更新。 运行时更新 ARM64 代码生成:改进了加载和存储数据的指令,增强了执行时间和性能。 代码布局:增强基本块排序,以最大

2023-12-12

的交互,测试 Web 应用的行为是否正确。 Mink 1.11.0 现已发布,此版本更新内容如下: New features: 添加了对symfony/css-selector7 的支持 为支持的键修饰符添加了常量 改进类型以帮助静态分析 为大多数方法添加了参数类型