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/