Ложные срабатывания в плагине PMD Eclipse - PullRequest
1 голос
/ 05 ноября 2019

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 помечает assertEquals JUnit assertions should include a message, что, очевидно, неправильно. Плагин Gradle pmd, работающий с тем же ruleset.xml, не показывает ошибок. Как избавиться от этих сообщений без деактивации правила?

Редактировать: ошибка появляется только в одном проекте. По крайней мере, в двух других проектах, где используется assertEquals, все в порядке.

1 Ответ

1 голос
/ 07 ноября 2019

Похоже на Выпуск PMD 1009 , который был исправлен некоторое время назад. PMD 6.19.0 должен содержать это исправление. Исправление делает правило менее строгим для обработки как JUnit 4 (где в assertEquals сообщение является первым параметром), так и JUnit 5 (message - третий параметр).

ЭтоНепонятно, почему вы сталкиваетесь с этой проблемой с помощью pmd-eclipse-plugin 4.8.0, поскольку он должен содержать PMD 6.19.0 с исправлением для JUnit 5. Вы можете сообщить о проблеме вКоманда pmd-eclipse-plugin . Вы можете использовать более одного подключаемого модуля Eclipse PMD , по крайней мере до тех пор, пока проблема не будет устранена.

...