PMD eclipse 插件中的误报

False positives in PMD eclipse plugin

Eclipse 2019-09,Java11.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 插件将 assertEquals 标记为 JUnit assertions should include a message,这显然是错误的。 Gradle pmd 插件,使用相同的 ruleset.xml,没有显示任何错误。如何在不停用规则的情况下删除这些消息?

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

这听起来 PMD issue 1009 which has been fixed some time ago. PMD 6.19.0 should contain this fix. The fix makes the rule 对 JUnit 4(在 assertEquals 中消息是第一个参数)和 JUnit 5(消息是第三个参数)的处理不那么严格。

目前还不清楚为什么 运行 遇到这个 pmd-eclipse-plugin 4.8.0 的问题,因为它应该包含 PMD 6.19.0 with the fix for JUnit 5. You might report the issue to the pmd-eclipse-plugin team. There is more than one Eclipse PMD plug-in 您可能会用到的,至少在问题解决之前是这样.