首页 > 解决方案 > Sonarcloud 显示 JS 代码覆盖率为 0

问题描述

我们正在尝试将 sonarcloud 与 circleci 集成,对于每个提交,我们的 circleci 将触发带有测试用例的构建,并且项目基于 Nodejs。执行完成后,仪表板仍将代码覆盖率显示为 0。

声纳-project.properties

sonar.projectName=test sonar.language=js sonar.sources=src sonar.tests=src/app/client/src/app/sonar.javascript.lcov.reportPaths=src/app/client/coverage/lcov.info 声纳。 projectKey=harshavardhanc_test sonar.organization=harshavardhanc sonar.host.url= https://sonarcloud.io sonar.login=xxxxxxxxx

在 circleci 构建结束时,我们调用声纳扫描器命令,执行成功。

请帮助我如何在仪表板中获得覆盖率值。

标签: node.jssonarqubecirclecisonarcloud

解决方案


Sonarqube 和声纳扫描仪不提供生成代码覆盖率报告的工具。Sonarqube 用于分析覆盖报告的结果,并将其转换为具有严重性等的人类可读格式。

要获得覆盖率报告,您需要选择一个可以为您生成此报告的工具。一个好的起点是测试覆盖和执行页面。他们似乎说 LCOV 可以为 Sonarqube 可以处理的 javascript 生成报告。

然后,您可以将声纳扫描仪指向具有sonar.javascript.lcov.reportPaths属性的 LCOV 覆盖报告文件的输出。

所以你基本上需要以下步骤进行分析:

  1. 声纳扫描仪开始
  2. 恢复包
  3. 构建应用程序
  4. 使用代码覆盖率工具测试和计算应用程序的覆盖率
  5. 声纳扫描仪端

推荐阅读