jch*_*chl 46 c++ code-coverage gcov
我正在使用gcov测量我的C++代码中的覆盖率.我希望得到100%的覆盖率,但是由于存在一些理论上无法触及的代码行(需要实现但从未调用过的方法,switch语句的默认分支等等)而受到阻碍).这些分支中的每一个都包含一个assert( false );语句,但是gcov仍然将它们标记为未命中.
我希望能够告诉gcov忽略这些分支.有没有办法给gcov这些信息 - 通过注释源代码或任何其他机制?
小智 37
请使用lcov.它隐藏了gcov的复杂性,产生了良好的输出,允许每次测试的详细输出,具有简单的文件过滤功能,以及 - 已经评论过的行的ta-taa - 行标记:
来自geninfo(1):
geninfo识别以下标记:
- LCOV_EXCL_LINE
- 包含此标记的行将被排除.
- LCOV_EXCL_START
- 标记排除部分的开头.当前行是本节的一部分.
- LCOV_EXCL_STOP
- 标记被排除部分的结尾.当前行不属于本节的一部分.