我大约一个月前开始使用 lcov
。覆盖率计数似乎不一致。第一次运行报告大约 75% 的行覆盖率,而第二次运行报告仅有 19% 的行覆盖率。两次运行都使用了相同的测试套件。在 lcov --remove
过程中出现以下警告。是否有建议?
lcov:警告:在跟踪文件 all.info 中发现负计数
这件事需要担心吗?
我大约一个月前开始使用 lcov
。覆盖率计数似乎不一致。第一次运行报告大约 75% 的行覆盖率,而第二次运行报告仅有 19% 的行覆盖率。两次运行都使用了相同的测试套件。在 lcov --remove
过程中出现以下警告。是否有建议?
lcov:警告:在跟踪文件 all.info 中发现负计数
这件事需要担心吗?
在 GitHub 上报告了已知的 问题。
将输出中所有的
-1
替换为0
(例如使用sed -i -e 's/,-1$/,0/g' <outputfile>
),可以使警告从lcov
和genhtml
输出中消失,同时仍然生成正确的覆盖报告。更重要的是(至少对我而言),将计数设置为
0
而不是-1
提交到codecov.io
,可以使结果被正确解析,并且可以通过codecov.io
查看覆盖信息。
Codecov 也可以处理此类值错误:
# Fix negative counts
$count = $2 < 0 ? 0 : $2;
if ($2 < 0)
{
$negative = 1;
}
跟随其他修复方法:
请查看此错误报告: https://github.com/psycofdj/coverxygen/issues/6
将输出中所有的-1替换为0(例如使用sed -i -e 's/,-1$/,0/g')可以消除lcov和genhtml输出中的警告,同时仍然生成正确的覆盖报告。
更重要的是(至少对我来说),将计数设置为0而不是-1提交到codecov.io会导致结果被正确解析,并且可以通过codecov.io获得覆盖信息。