node.js - 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 构建结束时,我们调用声纳扫描器命令,执行成功。
请帮助我如何在仪表板中获得覆盖率值。
解决方案
Sonarqube 和声纳扫描仪不提供生成代码覆盖率报告的工具。Sonarqube 用于分析覆盖报告的结果,并将其转换为具有严重性等的人类可读格式。
要获得覆盖率报告,您需要选择一个可以为您生成此报告的工具。一个好的起点是测试覆盖和执行页面。他们似乎说 LCOV 可以为 Sonarqube 可以处理的 javascript 生成报告。
然后,您可以将声纳扫描仪指向具有sonar.javascript.lcov.reportPaths
属性的 LCOV 覆盖报告文件的输出。
所以你基本上需要以下步骤进行分析:
- 声纳扫描仪开始
- 恢复包
- 构建应用程序
- 使用代码覆盖率工具测试和计算应用程序的覆盖率
- 声纳扫描仪端
推荐阅读
- java - Javax 验证 - 来自属性的值
- sql - 如何列出 Nexus3 存储库中的所有资产(groupId、名称、大小)?
- regex - 使用 Importxml 函数时在 Google 表格中包含单元格引用以形成 URL
- tensorflow - 使用 CNN 进行模型预测
- php - 用户无法使用手机上传文件
- python - 不正确的父元素 lxml
- machine-learning - 在哪种情况下最好使用 SGD 优化器
- php - Laravel 5.8 在“char”类型列迁移时出错
- ibm-watson - IBM 沃森项目。注销后如何在活动项目中重新访问我的笔记本
- logging - Syslog 解析格式错误的日志