9

我在配置 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,我的项目得到了适当的覆盖,但我不知道为什么我在覆盖度量指标中看不到单元测试的数量。任何检查的配置将不胜感激。

谢谢,倒钩

4

1 回答 1

17

SonarJS 不负责单元测试报告,(相关常见问题解答条目)SonarQube 负责导入单元测试报告。

我已经设法通过以下设置来做到这一点。

首先,我们需要将 jest 结果转换为声纳消耗格式。为此,我使用了以下 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-react-app/react-scripts,则可能需要一些额外的步骤,因为它们不会公开所有配置。

您需要将scriptspackage.json 中的 test in block 条目修改为:

"test": "react-scripts test --env=jsdom --testResultsProcessor ./node_modules/jest-sonar-reporter/index.js
于 2018-08-21T14:38:17.467 回答