Как обнаружить повторяющиеся строки кода с помощью PMD

#code-coverage #apex #pmd #code-duplication #cpd

#покрытие кода #apex #pmd #дублирование кода #cpd

Вопрос:

Популярной попыткой обойти правила покрытия кода Salesforce Apex являются code busters, в которых одна инструкция используется в тысячах повторяющихся строк.

Мы нашли такие варианты, как i=1; или a ; или a=b; с бесконечными вариациями имени переменной. Общим для всех является то, что две (или более) последовательные строки (исключая пустые или комментарии) идентичны.

Как я могу обнаружить их в PMD?

Ответ №1:

Это больше похоже на вариант использования детектора копирования-вставки. Это отдельный инструмент, также доступный в PMD: https://pmd.github.io/pmd-6.12.0/pmd_userdocs_cpd.html

Однако CPD ориентирован на поиск дублированного кода между разными файлами, в то время как вы, похоже, ищете дублированный код внутри одного файла.

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

1. Я специально ищу последовательные идентичные строки. Я в курсе CPD — нам было с ним очень весело (и некоторые покраснели). На самом деле не работает для этого варианта использования