如何在Windows上使用gtest获取代码覆盖率?

Ras*_*yak 18 c++ unit-testing code-coverage googletest visual-studio-2010

我正在使用gtestVisual Studio 2010在C++中测试我的代码.但我无法证明我已达到100%的代码覆盖率.为了确保我已经涵盖了100%的代码覆盖率,我想知道,有没有办法找出代码覆盖率gtest?因为我已经搜索了很多,但我没有找到任何可能的方法来通过gtest在Windows环境中使用来获得代码覆盖率结果.如果有可能请告诉我.

非常感谢..

小智 39

您可以尝试OpenCppCoverage:https://github.com/OpenCppCoverage/OpenCppCoverage.

它是开源的,专为Visual Studio C++设计,适用于Google Test.我已成功用于中型项目(约500 000行代码).

希望有所帮助.

免责声明:我是该工具的作者.


Arn*_*rtz 5

C++ 中的代码覆盖率不能由测试框架单独处理,因为覆盖率分析工具必须知道代码的整个范围(而测试框架没有)并且它必须以某种方式检测被测代码以监控其中的各个部分的代码得到执行。

我曾经和你有同样的愿望,想在 MSVC 中测量我的测试覆盖率。这就是我学到的:
MSVC 附带了一些用于这些仪器的命令行工具,谷歌搜索一下就会让你找到一两篇关于如何使用它们的 msdn 博客文章。坦率地说,它不是很方便和易于使用。如果您寻找第三方工具,您可能找不到任何免费工具。我发现的任何工具都是企业工具,许可费用在几百美元到一千多美元之间,所以如果你不是一家公司,这不是一个真正的选择。