Источник тестовых классов правил PMD для сравнительного анализа

#static-analysis #pmd

#статический анализ #pmd

Вопрос:

Существуют ли какие-либо тестовые классы, в которых можно протестировать правило PMD? В принципе, я хочу снова сравнить какой-нибудь другой инструмент с базовым набором правил PMD. Похоже, PMd проверяет свое правило на каком-то тестовом коде..

Я перерыл исходный код PMD, но не смог выяснить, где находятся такие классы.

Ответ №1:

На странице «Рекомендации по правилам» описывается флаг -benchmark, с помощью которого вы можете увидеть, сколько времени требуется правилу для сравнения с заданным исходным кодом — они указывают на сам код JDK.

Комментарии:

1. На самом деле, я пытаюсь протестировать JTest и PMD, чтобы увидеть, что лучше. Итак, я подумал, есть ли подобные тесты для «плохого кода», которые предоставляет PMD, я могу протестировать их.

2. Вы можете запускать JTest и PMD для одной и той же кодовой базы. Тогда вам больше не нужен -baseline. Недавно я участвовал в проекте, который перешел с JTest на PMD. Производительность была примерно одинаковой для конфигураций, которые мы использовали (за исключением очень больших баз кода). Тем не менее, мы отключили множество правил JTest, потому что они снижали производительность, и включили PMD со многими другими правилами.