首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声纳不使用lcov文件

声纳不使用lcov文件
EN

Stack Overflow用户
提问于 2014-01-04 12:34:48
回答 1查看 1.4K关注 0票数 2

我有一个Jenkins作业,它使用javascript项目的"Invoke独立Sonar分析“。

我认为它在以下参数下运行得很好:

代码语言:javascript
复制
  sonar.sources=src
  sonar.language=js

  sonar.dynamicAnalysis=reuseReports
  sonar.javascript.jstestdriver.coveragefile=target/test-coverage/jscover.lcov
  sonar.javascript.lcov.reportPath=target/test-coverage/jscover.lcov

但是我注意到在Sonar中报告的数字与lcov文件中的数字不匹配。

当我登录到Sonar时,我看到代码覆盖率为30%。

但是当我检查lcov文件时,我得到了完全不同的数字:$lcov --摘要目标/测试覆盖率/jscover.lcov.行.:48.1%的函数.:41.7%的分支.:没有找到数据

事实上,当我查看jscover.html报告文件时,总覆盖率为48%。声纳报告说是30%。

深入到各个文件中,Sonar的结果也与lcov文件中的结果不匹配。

例如:仅通过查看特定的文件/src/js/model/Call.js,lcov就表示它的代码覆盖率为97%。但是Sonar显示: 49.0%的单元测试线覆盖率:97.0%(97/100)分支覆盖率:0.0% (0/98)

这就好像Sonar正在使用分支覆盖和行覆盖率统计来获得最终代码覆盖率为49.0%的结果。

你知道我做错了什么吗?你知道为什么Sonar不使用lcov文件的覆盖结果吗?是不是因为该科的覆盖面没有数据?

谢谢你对此的洞察力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 15:38:30

代码覆盖率由SonarQube重新计算。SonarQube只从报表中检索某一行是否由单元测试覆盖。示例:

  • DA: 10 ,0 =>,这意味着第10行没有包括在内
  • DA: 20 ,1 =>,这意味着第20行被覆盖了
  • 达: 30,5 =>,这意味着第30行被覆盖了

然后SonarQube重新计算代码覆盖率:

  • 覆盖线数/(覆盖线数+裸露线数)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20921058

复制
相关文章

相似问题

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