React js 中的 Sonarqube 覆盖率 0%

Sonarqube coverage 0% in react js

我开玩笑地写了一些单元测试。他们都成功了。可以查看 jest

生成的测试覆盖率报告

但我的 sonarqube 仪表板始终显示 0% 的覆盖率,但正在检测单元测试。

我正在使用 jest-sonar-reporter 生成报告的声纳消耗格式。

这是我的声纳属性文件

sonar.projectKey=skyflow-app
sonar.projectName=Skyflow App
sonar.host.url = http://localhost:9000
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.sources=src
sonar.exclusions=**/node_modules/**,**/*.spec.ts, **/*.stories.tsx
sonar.tests=src
sonar.test.inclusions=**/*.test.tsx,**/*.test.ts
sonar.test.exclusions=**/*.stories.tsx
sonar.ts.tslintconfigpath=tslint.json
sonar.testExecutionReportPaths=testResults/sonar-report.xml
# sonar.coverageReportPaths = coverage/lcov.info
sonar.javascript.lcov.reportPaths = coverage/lcov.info

请让我知道哪里出错了。

你能分享 jenkins 作业的控制台输出吗?

在我的例子中,jenkins 无法找到覆盖率报告并得到如下所示的登录控制台输出:

15:26:37  [ERROR] Coverage report '/home/jenkins/workspace/microservices-pipelines/xxx/target/jacoco.exec' could not be read/imported. Error: {}
15:26:37  java.lang.IllegalStateException: Failed to parse JaCoCo XML report: /home/jenkins/workspace/microservices-pipelines/xxx/target/jacoco.exec

我这边犯了一个愚蠢的错误。

sonar.javascript.lcov.reportPaths 替换为 sonar.typescript.lcov.reportPaths 解决了问题。