SonarQube 单元测试报告不显示 Javascript 文件

Posted

技术标签:

【中文标题】SonarQube 单元测试报告不显示 Javascript 文件【英文标题】:SonarQube unit test report doesnt show Javascript files 【发布时间】:2018-11-08 03:39:22 【问题描述】:

我有一个包含 Java 和 javascript 模块的 maven 项目。 我在 SonarQube 的测试报告中没有看到 Javascript 单元测试文件,而只有 Java 单元测试文件。 覆盖率报告

coverage_reports 文件夹中,我有由 Jest 创建的 cobertura-coverage.xml。 这个sonar.javascript.jstest.reportPaths 是否仍在使用或已被其他配置替换。我们在服务器上使用 Sonarqube 6.7。

编辑: 为了让其他人知道,我使用jest-sonar-reporter 和测试脚本作为

"test": "cross-env CI=true NODE_PATH=./src react-scripts test --env=jsdom --coverage --no-cache -u --testResultsProcessor jest-sonar-reporter"

这创建了一个我这样使用的测试报告 xml 文件

<sonar.tests>src/test</sonar.tests>
<sonar.testExecutionReportPaths>path/to/test-report.xml</sonar.testExecutionReportPaths>
<sonar.javascript.lcov.reportPaths>path/to/lcov.info</sonar.javascript.lcov.reportPaths>

【问题讨论】:

“我在 SonarQube 的测试报告中没有看到 Javascript 单元测试文件”是什么意思? 【参考方案1】:

据我所知,sonar.javascript.jstest.reportPaths 不存在(而且从未存在)。

有两件事(从问题我不确定你需要哪一件):

    单元测试报告导入(多少单元测试,失败,跳过等)。为此,请参阅 doc here(您最终需要使用 sonar.testExecutionReportPaths 属性)。 覆盖报告导入。如果您能够生产 LCOV,请参阅 doc here。如果没有,您需要将您的报告转换为通用 SonarQube 格式(请参阅here)。

最后,要查看 JS 的单元测试文件,请正确设置 sonar.tests 属性(由于 maven 扫描仪足够智能,所以会显示 Java 测试文件)

【讨论】:

以上是关于SonarQube 单元测试报告不显示 Javascript 文件的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 没有获得单元测试覆盖率

将 Angular 单元测试报告导入 Sonarqube

带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量

使用 Powermock 在 Sonarqube 中配置 jacoco 以进行集成和单元测试报告

具有 android 测试和测试覆盖率的 sonarqube

nUnit 的结果未显示在 SonarQube 中