Lcov覆盖范围不一致

时间:2014-08-30 19:15:22

标签: code-coverage lcov

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

  

lcov:警告:在tracefile all.info

中找到负数

这有什么值得担心的吗?

2 个答案:

答案 0 :(得分:1)

在GitHub上报道了相同的issue

  

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

     

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

Codecov也处理这种值错误:

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

进行其他一些修复:

答案 1 :(得分:0)

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

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

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