Конфигурация покрытия Sonarqube для React и Jest
У меня проблема с настройкой sonarqube для правильной работы с React + Jest.
Моя конфигурация:
my_moudle.sonar.projectBaseDir=front_app
my_module.sonar.javascript.file.suffixes=.js,.jsx
my_module.sonar.tests=src
my_module.sonar.test.inclusions=**/__tests__/**
my_module.sonar.javascript.lcov.reportPaths=coverage/lcov.info
В настоящее время я указываю на папку src как на папку тестов, потому что у меня есть набор тестов для каждого компонента в папке тестов в одной папке проекта. Благодаря SonarJS у меня есть должное вознаграждение за мой проект, но я не знаю, почему я не вижу количества модульных тестов в показателях показателей покрытия. Любая проверенная конфигурация будет оценена.
Спасибо Барб
1 ответ
SonarJS не несет ответственности за отчеты о модульных испытаниях ( соответствующая запись FAQ). SonarQube несет ответственность за импорт отчета о модульных испытаниях.
Мне удалось сделать это со следующей настройкой.
Сначала нам нужно преобразовать результаты шутки в формат расходных материалов сонара. Для этого я использовал следующий модуль npm: jest-sonar-reporter.
Фрагмент моего package.json
:
"devDependencies": {
...
"jest": "^21.1.0",
"jest-sonar-reporter": "^1.3.0",
...
},
"jestSonar": {
"sonar56x": true,
"reportPath": "testResults",
"reportFile": "sonar-report.xml",
"indent": 4
}
Теперь вам нужно будет указать jest использовать этот модуль в качестве процессора и указать сканеру сонара использовать файл, созданный этим модулем. Инструкция есть в официальной документации.
Если вы используете сценарии create-реагировать-приложение / реагировать-сценарии, вам может потребоваться несколько дополнительных шагов, так как они не раскрывают всю конфигурацию.
Вам нужно будет изменить свою запись для тестирования в scripts
заблокировать в package.json для:
"test": "react-scripts test --env=jsdom --testResultsProcessor <pathToNodeModules/jestSonarReporter/index.js>