我想知道是否有可能告诉lcov忽略源文件中的某些行,即。不要将它们报告为未访问的。我正在寻找可以放在代码中的解决方案,例如:
int some_method(char some_var, char some_other_var)
{
if(some_var == 'A')
{
if(some_other_var == 'B')
{
/* do some real stuff here */
}
else
{
LCOV_DO_NOT_REPORT_NEXT_LINE // **<-- this?? **
NOT_IMPLEMENTED("A*")
}
}
else
{
NOT_IMPLEMENTED("*")
}
必要的背景:
像上面那样的一大段代码正在一系列单元测试中进行测试,但由于这段代码仍在开发中,因此有很多NOT_IMPLEMENTED("A*")
个宏只是在屏幕上显示一条消息行号/文件名并退出应用程序。没有对未实现的分支进行测试,显然它们将在实现该功能时编写。
然而,lcov会报告这些NOT_IMPLEMENTED
行,并且在覆盖率报告中看起来非常难看(即:它们的红线比例很高)。
我要求的是可能的,还是我们应该忍受这个?
答案 0 :(得分:12)
您可以在源代码中使用以下内容作为评论。
来自http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php
- LCOV_EXCL_LINE
- 将排除包含此标记的行。
- LCOV_EXCL_START
- 标记排除部分的开头。当前行是本节的一部分。
- LCOV_EXCL_STOP
- 标记排除部分的结尾。当前行不属于本节的一部分。