SonarCloud требует покрытия кода для файлов, игнорируемых Стамбулом

У меня есть приложение 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 как источник правды, чтобы любой файл, не включенный в файл, был исключен из охвата?

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


person JamesFaix    schedule 21.10.2020    source источник


Ответы (2)


Для тех, кто ищет решение, вам, к сожалению, нужно указать sonarqube явно игнорировать этот файл. Не идеальное решение, но то, что у меня получилось.

документы: https://docs.sonarqube.org/latest/project-administration/narrowing-the-focus/

Я поместил свое имя файла в sonar.coverage.exclusions.

person Justin Abrahms    schedule 01.02.2021

В итоге моя организация ввела политику, которая просто не использовала комментарии к файлу игнорирования istanbul, а вместо этого игнорировала каждую функцию в файле. Тоже не идеал.

person JamesFaix    schedule 01.02.2021