【问题标题】:Lcov inconsistent coverageLcov 覆盖范围不一致
【发布时间】:2014-10-24 12:07:52
【问题描述】:

大约一个月前,我开始使用lcov。覆盖计数似乎不一致。第一次运行报告的线路覆盖率约为 75%,而第二次运行报告的线路覆盖率仅为 19%。两次运行都使用了一些测试套件。我在lcov --remove 期间看到以下警告。有什么建议吗?

lcov:警告:在跟踪文件 all.info 中发现负数

这有什么好担心的吗?

【问题讨论】:

  • 同样的事情发生在我身上。一个工作脚本突然开始给我“负数”。
  • 如何运行lcov,文件夹和文件校验和有区别吗? @paercebal 你认为用赏金和可能不再回答问题的 OP 重新打开这样的遗留线程是个好主意吗(最后一次看到 2016 年 4 月 11 日)?
  • @DanFromGermany:你是对的。我们的问题可能与 Vinnie Falco 的问题相同,但与 OP 并不完全相同。我将问题恢复到原来的状态。在我们这边,我们会做进一步的研究,并会发布一个完整的问题,包括命令行、日志和信息,并考虑您的评论。

标签: code-coverage lcov


【解决方案1】:

GitHub 上报告了相同的已知 issue

将输出中的所有-1 计数替换为0(例如使用sed -i -e 's/,-1$/,0/g' <outputfile>)会导致警告从lcovgenhtml 输出中消失,同时仍会生成正确的覆盖率报告。

更重要的是(至少对我而言),将计数设置为0 而不是-1 的文件提交到codecov.io 会导致结果被正确解析并且覆盖信息可通过codecov.io 获得。

Codecov也处理这种值错误:

# Fix negative counts
$count = $2 < 0 ? 0 : $2;
if ($2 < 0)
{
  $negative = 1;
}

进行其他一些修复:

【讨论】:

    【解决方案2】:

    查看此错误报告:https://github.com/psycofdj/coverxygen/issues/6

    将输出中的所有 -1 计数替换为 0(例如,使用 sed -i -e 's/,-1$/,0/g' )会导致警告从 lcov 和 genhtml 输出中消失,同时仍在生成正确的覆盖率报告。

    更重要的是(至少对我而言),将计数设置为 0 而不是 -1 的文件提交给 codecov.io 会导致结果被正确解析,并且覆盖率信息可通过 codecov.io 获得。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2015-04-26
      • 2019-11-05
      • 1970-01-01
      • 2013-09-17
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多