У меня есть приложение JavaScript, в котором мы создаем отчет о покрытии кода с помощью Istanbul и используем SonarCloud для статического анализа.
Есть два способа исключить код из Стамбула. Во-первых, установить пути исключения. В jest.config.js
у нас есть это, чтобы исключить шаблоны:
"coveragePathIgnorePatterns": [
"source/legacy"
]
Второй способ — использовать Стамбул для игнорирования комментариев в исходных файлах, таких как /* istanbul ignore file */
. В любом случае игнорируемый файл не будет частью сгенерированного файла отчета.
В нашей конфигурации Sonar мы настроили его на использование сгенерированного файла отчета lcov.info
со свойством sonar.javascript.lcov.reportPaths
. Однако затем нам также нужно установить sonar.coverage.exclusions
, чтобы исключить такие шаблоны, как source/legacy
, потому что он не рассматривает отчет lcov.info
как источник истины. Это приемлемо, но дублирует конфигурацию, что вызывает сожаление. Настоящая проблема заключается в том, что я не могу найти способ заставить Sonar обрабатывать файлы, исключенные с помощью /* istanbul ignore file */
.
Есть ли способ заставить Sonar рассматривать файл lcov.info
как источник правды, чтобы любой файл, не включенный в файл, был исключен из охвата?
В качестве альтернативы, есть ли способ со Стамбулом, где я могу указать список игнорируемых файлов, но сказать, что они игнорируются? Может, так Сонар увидит, что их игнорируют.