我在使用声纳配置时遇到问题,无法与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文件夹指向tests文件夹,因为我在同一项目文件夹的 tests 文件夹中为每个组件设置了一组测试。 感谢SonarJS,我对我的项目有适当的掩护,但是我不知道为什么在覆盖率度量指标中看不到单元测试的数量。 任何选中的配置都将不胜感激。
谢谢, 倒钩
答案 0 :(得分:1)
SonarJS不负责单元测试报告(Relevant FAQ entry) SonarQube有责任导入单元测试报告。
我已经通过以下设置成功做到了。
首先,我们需要将笑话结果转换为sonar consumable format。为此,我使用了以下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
}
您现在将需要开玩笑地将此模块用作处理器,并告诉声纳扫描仪使用该模块生成的文件。说明在官方文档中。
但是,如果您使用的是create-react-app / react-scripts,则可能需要一些其他步骤,因为所有配置都不会被它们暴露。
您需要将package.json的scripts
块中的测试条目修改为:
"test": "react-scripts test --env=jsdom --testResultsProcessor <pathToNodeModules/jestSonarReporter/index.js>