Как анализировать только новые добавленные строки кода? - PullRequest
0 голосов
/ 12 мая 2019

Я хочу использовать SonarQube в своем проекте. Проект довольно большой и сканирование целых файлов занимает много времени. Можно ли сканировать только измененные файлы при последнем коммите и предоставлять отчет только на основе измененных строк кода? Я хочу проверить, ухудшают ли добавленные или измененные строки качество проекта, и мне наплевать на старый код.

Например, если человек А создал файл с 9 ошибками, а затем зафиксировал изменения - в отчете и в графе качества должно отображаться 9 ошибок. Затем сотрудник B отредактировал тот же файл, добавив несколько строк, содержащих 2 дополнительные ошибки, затем подтвердил изменения - в отчете должны быть указаны 2 последние ошибки, а последние изменения должны быть выполнены для проверки качества (поэтому следует рассмотреть последние 2 ошибки)

Мне удалось ограничить сканирование только измененными файлами в последнем коммите, но отчет генерируется на основе целых файлов. У меня была идея обрезать только измененные строки кода, вставить их в новый файл и запустить сонарное сканирование файла - но я почти уверен, что SonarQube нужен весь контекст файла.

Можно ли как-нибудь добиться моего варианта использования?

1 Ответ

1 голос
/ 12 мая 2019

Нет, это невозможно. Я видел много подобных вопросов. Это ответы на два из них:

Только новый анализ кода :

Г Энн Кэмпбелл:

Анализ всегда будет включать весь код. Зачем? Зачем тратить время на проанализировать все это, когда только файл или два были изменены? Так как Любое данное изменение может иметь далеко идущие последствия. Я дам вам два Примеры:

Я регистрирую изменение, которое осуждает широко используемый метод. Вдруг, вопросы об использовании устаревшего кода должны быть подняты во всем проект, но поскольку я проанализировал только один файл, новых проблем не было поднял.

Я изменяю часто используемый метод, чтобы в некоторых случаях возвращать ноль. Вдруг все методы, которые разыменовывают возвращаемое значение без первого проверка на нуль - это риск возникновения исключений NullPointerException. Но только один файл, который я изменил, был проанализирован, поэтому ни один из этих «Возможных NPE» вопросы поднимаются. Хуже того, они не будут подняты до случается, что тронут отдельный файл.

И поэтому все файлы включены в каждый анализ.

Я хочу провести гидролокационный анализ вновь введенного кода :

G Энн Кэмпбелл:

Во-первых, интерфейс SonarQube и Quality Gate по умолчанию призваны помочь вам сосредоточиться на новый период кода. Вы не можете помешать анализу подобрать эти старые проблемы, но вы можете решить только обратить внимание на поднятые вопросы на недавно измененный код. Это означает, что вы бы по существу игнорировали проблемы на левой стороне домашней страницы проекта с белым фон и сосредоточиться вместо этого на значениях нового кода над желтым фон справа. Мы называем это Устранение утечки , или поочередно чистите, как вы код.

Во-вторых, если у вас есть коммерческое издание, то анализ отрасли и PR доступны для вас. С короткоживущим отделением (SLB) и анализом PR все еще охватывает все файлы, но все, что сообщается в пользовательском интерфейсе, это то, что изменено в PR / SLB.

В идеале вы должны объединить обе эти вещи, чтобы убедиться, что ваш новый код остается чистым.

Положение в этом вопросе не изменилось за последние годы, поэтому не ожидайте, что оно изменится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...