我使用gcov库来测量我的代码覆盖率,并希望生成用户友好的覆盖率报告。我发现了lcov工具,但它与Windows环境不兼容(主要是因为路径解析方式的不同)。是否有人知道关于Windows的lcov移植版本?
似乎在Windows上让它工作相当容易(我认为甚至可以通过几个创意批处理/Perl脚本来模仿Unix shell命令的行为来解决),而且这个工具非常有用,所以我想可能已经有人做过了。
虽然可能比较麻烦,但是在cygwin下lcov似乎可以工作。你可能也会对这个问题如何测量CppUnit测试覆盖率(在win32和Unix上)?及其答案感兴趣。Visual Studio似乎提供了代码覆盖率报告。
还有一个 LCOV 的 Windows 版本 https://github.com/valbok/lcov,并且附带了如何使用它的说明。
我们在使用 LCOV 的原生版或其他版本时遇到了一些问题。例如从这里http://simply-embedded.blogspot.com/2014/07/code-coverage-html-reports-using-lcov.html。
我们的流程大致如下:
使用 ARM QNX GCC 编译器在 Windows 上构建项目,收集 gcno 文件。
将二进制文件和配置文件复制到 QNX 下的目标系统中,并运行它们,收集 gcda 文件。
运行 LCOV(在 Windows 或 Linux 上),创建报告。
如果使用原生版本的 LCOV,则由于 Windows 和 Linux 路径混乱以及 LCOV 脚本中的一些错误,报告将会出现问题。 我们不得不稍微修改脚本,以避免出现重复目录、斜杠、损坏的路径等问题。
这里有一篇文章在这里,作者是Fred Grott,向我们展示了如何使用Chocolatey软件包管理器在Windows上安装lcov。
有一个由Donald MacQueen在http://www.macqueen.us/lcov.html下完成的Windows版本,但我还没有测试过。
我已经制作了自己的版本,您可以在此处找到:
http://simply-embedded.blogspot.com/2014/07/code-coverage-html-reports-using-lcov.html
这是在LCOV的1.11版本上完成的。