java - PMD eclipse 插件中的误报

标签 java eclipse eclipse-plugin pmd

Eclipse 2019-09、Java 11.0.5、PMD 插件 4.8.0

@Test
public final void testValueOf() {
    final String message = "Colour Object correctly set?";
    assertEquals(diamond, QCardColour.valueOf('d'), message);
    assertEquals(heart, QCardColour.valueOf('h'), message);
    assertEquals(spade, QCardColour.valueOf('s'), message);
    assertEquals(club, QCardColour.valueOf('c'), message);
    assertThrows(IllegalArgumentException.class, () -> {
        QCardColour.valueOf('B');
    }, message);
}

PMD eclipse 插件使用 JUnit 断言应包含一条消息 标记assertEquals,这显然是错误的。 Gradle pmd 插件使用相同的ruleset.xml,没有显示任何错误。如何在不停用规则的情况下删除这些消息?

编辑:该错误仅出现在一个项目中。在至少两个使用assertEquals的其他项目中,一切都很好。

最佳答案

这听起来像PMD issue 1009前一段时间已经修复了。 PMD 6.19.0 应包含此修复。该修复使得 the rule JUnit 4(在 assertEquals 中,消息是第一个参数)和 JUnit 5(消息是第三个参数)的处理不太严格。

目前尚不清楚为什么 pmd-eclipse-plugin 4.8.0 会遇到此问题,因为它应该包含 PMD 6.19.0修复 JUnit 5。您可能 report the issue to the pmd-eclipse-plugin team 。有more than one Eclipse PMD plug-in您可能会使用它,至少在问题解决之前。

关于java - PMD eclipse 插件中的误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58713381/

相关文章:

java - SQL SELECT 和时间戳列

java - 在 Eclipse 中,文本超出页面范围

java - Google App Engine Java,无法访问本地主机!

java - 如何在 Eclipse 插件中的 IProgressMonitor 中设置精确工作?

eclipse-plugin - Vagrant 和 Eclipse IDE 的插件

java - 字节码——公共(public)属性和私有(private)属性的区别

java - 使用@XmlRootElement 编写 REST 网络服务

java - 这段代码没有绘制出它应该绘制的骰子......有什么提示吗? (Java,请参阅这两个类)

java - 仅从文件夹创建 Eclipse 项目

java - 如何在JBossAS 6.1.0.Final中监控Java堆空间