typescript - SonarQube:扫描过程忽略 lcov.info

标签 typescript sonarqube code-coverage sonarqube-scan

我正在扫描 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/

相关文章:

typescript - 从 CLI 执行时,Cypress 环境变量会选择多个值。如何在Cypress测试中传递多个环境变量?

javascript - ES6 : How to use await with callbacks

java - SonarQube自定义规则-获取方法参数所有者类

c# - Sonarqube 排除测试的代码覆盖率,但包括代码气味和重复检测

javascript - 根据覆盖率报告删除未使用的 javascript 代码

arrays - Angular 2 中的数组初始化,Typescript

reactjs - 类型 'onClick' 上不存在属性 '{ children?: ReactNode; }'

用于 MSBuild 的 SonarQube 未报告质量问题

g++ - 是否可以使用gcov/gcovr合并来自两个可执行文件的coverage数据?

ruby-on-rails - Rcov:为什么这段代码没有被考虑覆盖?