Tag: 代码覆盖率

Lcov:无法收集分支机构覆盖率统计数据

我使用lcov在我的项目中创建覆盖信息。 但我只能获得线路覆盖和function覆盖统计信息。 lcov version:1.10, gcov version:4.4.5 我使用的命令是: lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src -c -o /work/li/log/lcov-raw.info lcov -r /work/li/log/lcov-raw.info “*.ll” “*.yy” “*.yy.c” yaccpar “TAO161*” “/usr/include/*” “*/testsuite/*” -o /work/li/log/lcov.info 在这两个命令之后,我得到的结果是: Deleted 23 files Writing data to /work/li/log/lcov.info Summary coverage rate: lines……: 45.4% (65087 of 143496 lines) functions..: 46.1% (5575 of 12102 functions) **branches…: no data found** 所以没有分支覆盖结果。 […]

如何告诉lcov忽略源文件中的行

我想知道是否有可能告诉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("*") } 和必要的背景: 像上面那样的一大段代码正在一系列unit testing中进行测试,但由于这段代码仍在开发中,因此有很多NOT_IMPLEMENTED(“A*”)宏只是在屏幕上显示一条消息行号/文件名并退出应用程序。 没有对未实现的分支进行测试,显然它们将在实现该function时编写。 然而,lcov会报告这些NOT_IMPLEMENTED行,并且它们在覆盖率报告中看起来非常难看(即:它们的红线比例很高)。 是我要求的可能,或者我们应该忍受这个?