Конфигурация покрытия Sonarqube для React и Jest

У меня проблема с настройкой sonarqube для правильной работы с React + Jest.

Моя конфигурация:

my_moudle.sonar.projectBaseDir=front_appmy_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>
Другие вопросы по тегам