我正在扫描 ui
项目。
源代码在 typescript
中。gulp test-coverage
生成 .js
文件(然后扫描覆盖范围)。 (每个 .ts
文件旁边都有一个 .js
文件,位于同一位置)
我将扫描仪指向 lcov.info
文件,如下所示:
sonar.javascript.lcov.reportPaths=test-coverage/lcov.info
问题 :
lcov.info
,提供 .js
文件的覆盖信息出于某种原因,SonarQube 还提供了
*.ts
文件的覆盖信息(尽管 没有 合并在测试覆盖率报告中)。
为什么?
如果我明确使用
sonar.inclusions=**/*.ts
或者
sonar.language=ts
.js
文件将从覆盖率报告中忽略如果我使用
sonar.coverage.exclusions=**/*.ts
并且没有特定的包含,这将导致
.ts
和 .js
文件都被扫描以查找错误,这将导致重复错误(毕竟,.js
文件是由它们的 .ts
对应文件生成的。有什么建议么?
如果 sonarqube 随意使用
lcov.info
并且不主动扫描其他文件,那么整个问题当然会消失。)
最佳答案
如果您的源代码是用 TypeScript 编写的,则覆盖率报告 (lcov.info
) 必须包含有关 TypeScript 文件的信息,而不是已编译的 JavaScript。在这种情况下,您必须使用的属性是 sonar.typescript.lcov.reportPaths
。
您可以查看此示例 ( https://github.com/SonarSource/SonarTS-example ) 以获取更多详细信息。
关于typescript - SonarQube:扫描过程忽略 lcov.info,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48383149/