SonarQube не требует XML-файлов для покрытия JavaScript, он требует, чтобы отчет был в формате lcov .Пожалуйста, ознакомьтесь с документацией SonarQube: Импорт результатов покрытия JavaScript .
Чтобы создать этот отчет lcov, вы можете сделать следующее:
- Поместите все свои JSONданные о покрытии (что записывает браузер / проводка глобально
__coverage__
) в каталог, по умолчанию .nyc_output
- Запустите команду
nyc report --reporter=lcov --report-dir=.nyc_coverage
- Это говорит
nyc
, чтовы хотите сгенерировать отчет, используя все файлы в каталоге, указанном --report-dir
(.nyc_coverage
в данном случае), и что вам нужен отчет в формате, указанном --reporter
(lcov
в данном случае) nyc
создаст папку (.nyc_output
по умолчанию) и запишет туда файл lcov
Если вы хотите, вы также можете добавить дополнительных репортеров для здравомыслия.Я обычно добавляю --reporter=text
, чтобы он также распечатывал покрытие.
Таким образом, ваша последняя команда может быть:
nyc report \
--reporter=lcov \
--reporter=text \
--report-dir=.nyc_coverage
=
являются необязательными, а аргументы команды могутперед подкомандой, так что вы также можете запустить указанную вами команду:
nyc --reporter lcov --reporter text --report-dir .nyc_coverage report
Кроме того, вы сообщаете SonarQube, где находится отчет, указав его в командной строке:
sonar-scanner \
-Dsonar.projectKey=whatever \
-Dsonar.javascript.lcov.reportPaths=coverage/lcov.info
Или вы можете установить его в настройках проекта:
Project -> Administration -> JavaScript -> Tests and Coverage -> LCOV Files