12

我想知道是否有可能告诉 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线,它们在覆盖率报告中看起来非常难看(即:它们的红线比例很高)。

我要求的是可能的,还是我们应该忍受这个?

4

1 回答 1

18

您可以将以下内容用作源代码中的注释。

来自http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php

  • LCOV_EXCL_LINE
    • 包含此标记的行将被排除。
  • LCOV_EXCL_START
    • 标记排除部分的开始。当前行是本节的一部分。
  • LCOV_EXCL_STOP
    • 标记排除部分的结束。当前行不属于本节。
于 2014-04-24T09:01:36.500 回答