У меня есть проект C ++, анализируемый с помощью коммерческого плагина SonarQube.
Мой проект, на мой взгляд, имеет искусственно высокий процент покрытия кода, который отображается как в виде строк "исходного" исходного кода, так и строк кода модульного теста.посчитаны.Довольно сложно написать много строк кода модульного тестирования, которые не выполняются как часть модульного тестирования, поэтому они немедленно повышают отчеты о покрытии.
Можно ли по-прежнему анализировать код модульного теста на наличие запахов кода, но не учитывать ли он показатель метрики покрытия теста?
Я попытался установить параметр sonar.tests=./Tests
(где ./Tests - это каталог с моим тестовым кодом. Кажется, это исключает тестовый код из всего анализа, оставляя запахи необнаруженными. Я бы лучше проверил, что тестКод хорошего качества, чем надеюсь, что он подчиняется правилам, применяемым к проекту.
Я попытался добавить sonar.test.inclusions=./Tests/*
в сочетании с вышеприведенным. Однако я либо получил неверный синтаксис пути к файлу, либо установил эту переменнуювызывает полное пропуск тестового кода, так что он больше не отображается на вкладке «Код», а также исключается.
Документация по Сужение фокуса из того, что анализируется , не совсем ясно, каково ожидаемое поведение, по крайней мере для меня. Любая помощь будет принята с благодарностью, поскольку прохождение каждой перестановки будет весьма запутанным.
Возможно, я должен простопринять идею о том, что при ~ 300 строках "производственного" кода и 900 строках заглушек, макетов и юнит-тестов значение 75% тестового покрытия может означать выполнение 0 строк «производственного» кода.Я проверил, и в настоящее время мое очень простое приложение имеет примерно такое же соотношение тестового кода и «производственного» кода.Я бы ожидал, что соотношение со временем увеличится к 50:50, но это может не сработать.