Как заставить SonarQube анализировать запахи кода в модульных тестах, но не считать их для отчетов о покрытии? - PullRequest
0 голосов
/ 24 мая 2018

У меня есть проект C ++, анализируемый с помощью коммерческого плагина SonarQube.

Мой проект, на мой взгляд, имеет искусственно высокий процент покрытия кода, который отображается как в виде строк "исходного" исходного кода, так и строк кода модульного теста.посчитаны.Довольно сложно написать много строк кода модульного тестирования, которые не выполняются как часть модульного тестирования, поэтому они немедленно повышают отчеты о покрытии.

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

Я попытался установить параметр sonar.tests=./Tests (где ./Tests - это каталог с моим тестовым кодом. Кажется, это исключает тестовый код из всего анализа, оставляя запахи необнаруженными. Я бы лучше проверил, что тестКод хорошего качества, чем надеюсь, что он подчиняется правилам, применяемым к проекту.

Я попытался добавить sonar.test.inclusions=./Tests/* в сочетании с вышеприведенным. Однако я либо получил неверный синтаксис пути к файлу, либо установил эту переменнуювызывает полное пропуск тестового кода, так что он больше не отображается на вкладке «Код», а также исключается.

Документация по Сужение фокуса из того, что анализируется , не совсем ясно, каково ожидаемое поведение, по крайней мере для меня. Любая помощь будет принята с благодарностью, поскольку прохождение каждой перестановки будет весьма запутанным.

Возможно, я должен простопринять идею о том, что при ~ 300 строках "производственного" кода и 900 строках заглушек, макетов и юнит-тестов значение 75% тестового покрытия может означать выполнение 0 строк «производственного» кода.Я проверил, и в настоящее время мое очень простое приложение имеет примерно такое же соотношение тестового кода и «производственного» кода.Я бы ожидал, что соотношение со временем увеличится к 50:50, но это может не сработать.

...