首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SonarQube:扫描过程忽略lcov.info

SonarQube:扫描过程忽略lcov.info
EN

Stack Overflow用户
提问于 2018-01-22 13:51:31
回答 5查看 19.5K关注 0票数 4

我正在扫描一个ui项目。

源代码在typescript中。

gulp test-coverage生成.js文件(然后扫描这些文件以获得覆盖率)。(每个.ts文件都在它的旁边获得一个.js文件,位于同一个位置)

我将扫描仪指向lcov.info文件,如下所示:

代码语言:javascript
复制
sonar.javascript.lcov.reportPaths=test-coverage/lcov.info

问题

lcov.info提供.js文件的覆盖率信息。

出于某种原因,SonarQube还提供了*.ts文件的覆盖率信息(尽管没有包含在测试覆盖率报告中)。

,为什么?

如果我明确地使用

代码语言:javascript
复制
sonar.inclusions=**/*.ts

代码语言:javascript
复制
sonar.language=ts

.js文件将从覆盖率报告中被忽略。

如果我用

代码语言:javascript
复制
sonar.coverage.exclusions=**/*.ts

并且没有特定的包含,这将导致-- .ts.js文件都被扫描以寻找错误,这最终会导致重复错误(毕竟,.js文件是由它们的.ts对应方生成的。

有什么建议吗?

当然,如果sonarqube对lcov.info少之又少,没有主动扫描其他文件,整个问题就会消失。)

EN

回答 5

Stack Overflow用户

发布于 2018-01-22 14:12:10

如果您的源代码是用TypeScript编写的,则覆盖率报告(lcov.info)必须包含有关TypeScript文件的信息,而不是编译的JavaScript。在本例中必须使用的属性是sonar.typescript.lcov.reportPaths

您可以查看此示例(https://github.com/SonarSource/SonarTS-example)以获得更多详细信息。

票数 8
EN

Stack Overflow用户

发布于 2019-03-13 01:25:04

以下所有配置一起工作,我还需要jest-sonar-reporter来生成声纳所需的XML文件。

声纳特性

代码语言:javascript
复制
npm run sonar-scanner -- \
  -Dsonar.sources=./src \
  -Dsonar.exclusions=**/node_modules/**/*,**/coverage-reports/** \
  -Dsonar.typescript.exclusions=**/node_modules/** \
  -Dsonar.typescript.lcov.reportPaths=coverage-reports/lcov.info \
  # be sure to include your test files
  -Dsonar.test.inclusions=**/__test__/*.spec.ts,**/__test__/*.test.ts \
  # generate by jest sonar reporter at <rootDir>
  -Dsonar.testExecutionReportPaths=test-report.xml \ 
  -Dsonar.coverage.exclusions=src/**/*.tsx

jest.config.json

代码语言:javascript
复制
"testResultsProcessor": "jest-sonar-reporter",
票数 3
EN

Stack Overflow用户

发布于 2018-01-26 20:12:33

在我的打字稿项目中,我也遇到过同样的问题,

为了实现对类型记录的静态代码分析&编译Javascript的代码覆盖报告。配置声纳属性,如下所示。

文件夹信息,应用程序文件夹包含类型记录源文件&构建文件夹包含已编译的Javascript文件

代码语言:javascript
复制
sonar.sources=app/src/,build/src
sonar.exclusions=**/node_modules/**

#Excluding app folder in code coverage analysis
sonar.coverage.exclusions=app/src/**.ts    
sonar.ts.tslint.configPath=tslint.json
sonar.javascript.lcov.reportPaths=reports/lcov.dat

由于Javascript用于代码覆盖,Sonar项目具有2质量配置文件(Javascript和Typescript).

这两个质量档案将分析的来源,其中包括,它将结束在重复错误。

为了实现静态代码分析,只对类型文本源代码。Javascript的所有Linting规则都需要禁用.

默认Javascript Sonarway质量概要规则不能自定义。

若要禁用所有Javscript规则,请为Javascript创建自己的质量概要文件,禁用所有规则。

为项目配置新创建的JavaScript质量配置文件。

这里附上了我的项目仪表板带有质量配置表的Sonarqube项目仪表板的屏幕截图

这个解决方案对我很好,希望它也能帮助你!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48383149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档