【问题标题】:Angular 6 - Sonarqube coverage report is always 0 but karma shows coverageAngular 6 - Sonarqube 覆盖率报告始终为 0,但业力显示覆盖率
【发布时间】:2021-10-19 08:02:12
【问题描述】:

我正在尝试为我的 Angular 6 项目设置 sonarqube。我有 5 个运行良好的基本测试,下面给出了业力覆盖率报告

Chrome 92.0.4515 (Windows 10.0.0): Executed 5 of 5 SUCCESS (0.807 secs / 0.868 secs)

=============================== Coverage summary ===============================
Statements   : 29.65% ( 282/951 )
Branches     : 23.37% ( 115/492 )
Functions    : 16.84% ( 32/190 )
Lines        : 28.2% ( 258/915 )
================================================================================

我在本地设置了 sonarqube 以查看覆盖率报告,但它始终将覆盖率设为 0%。

由于业力显示出一些覆盖范围,我希望声纳覆盖范围至少应该是少数。

sonar-project.properties 文件

sonar.host.url=http://localhost:9000
sonar.login=admin
sonar.password=admin123
sonar.projectKey=myproject:ui
sonar.projectName=Sample App
sonar.projectVersion=0.0.0
sonar.sourceEncoding=UTF-8
sonar.sources=src
sonar.exclusions=**/node_modules/**
sonar.tests=src
sonar.test.inclusions=**/*.spec.ts
sonar.typescript.lcov.reportPaths=coverage/myproject/lcov.info

package.json sn-p

"scripts": {
    "sonar": "sonar-scanner"
  },
"devDependencies": {
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.0",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.3.0",
    "sonar-scanner": "^3.1.0",
  }

lcov.info 文件位于 src/coverage/myproject/lcov.info 下

我运行了npm run sonar,我可以看到sonarqube 中的覆盖率为0.0 %

请帮我解决问题

【问题讨论】:

  • 为什么要排除所有规范文件?
  • 我认为 sonar.exclusions 仅用于代码质量,因为我在测试包含中包含了规范,所以它应该可以工作。
  • 更新 sonar.exclusions=**/node_modules/**,src/assets/**, **/*.e2e.ts, **/environments/**/*, **/*.routes.ts, **/main.ts,**/polyfills.ts 仍然看到相同的结果
  • 您确定要排除这样的文件吗?这不是将它们排除在一般声纳之外吗?也许这会有所帮助,其中规范文件仅被排除在其自身之外:community.sonarsource.com/t/setting-sonar-scanner-exclusions/…
  • 嗯,我不确定,可以将其更改为仅排除节点模块sonar.exclusions=**/node_modules/**,仍然没有任何变化

标签: angular typescript sonarqube code-coverage


【解决方案1】:

而不是

sonar.typescript.lcov.reportPaths=coverage/myproject/lcov.info

使用

sonar.javascript.lcov.reportPaths=coverage/myproject/lcov.info.

然后运行sonar-scannernpm run sonar。它会正常工作的。

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 2021-05-09
    • 1970-01-01
    • 2016-03-21
    • 2022-07-27
    • 2011-04-27
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多