lcov / genhtml可以显示从未执行过的文件吗?

时间:2017-05-26 13:42:13

标签: gcc code-coverage lcov

如何让lcovgenhtml显示未链接/加载的文件?我正在使用它来显示测试覆盖率,我希望看到每个源文件都出现在HTML报告中,即使它的覆盖率为零。这样我就可以使用lcov来识别缺少测试的源文件。缺少的源文件具有为其创建的.gcno文件,但不是.gcda文件。

1 个答案:

答案 0 :(得分:5)

如果要查看所有文件,则必须使用-i选项创建基线覆盖率数据文件。 捕获数据后,您必须使用-a选项将两个文件组合在一起。

lcov手册页(https://linux.die.net/man/1/lcov)中有一个例子:

  

捕获初始零覆盖数据。

     

在包含.bb的目录中使用-c和此选项运行lcov,   运行任何测试用例之前的.bbg或.gcno文件。结果是   “基线”覆盖率数据文件,每个包含零覆盖率   仪表线。将此数据文件(使用lcov -a)与   测试运行后捕获的覆盖率数据文件,以确保   即使不是全部来源,所涵盖的总行数百分比也是正确的   代码文件在测试期间加载。

     

捕获测试用例数据时的建议过程:

     
      
  1. 创建基线覆盖率数据文件

         

    lcov -c -i -d appdir -o app_base.info

  2.   
  3. 执行测试

         

    APPDIR /测试

  4.   
  5. 创建测试覆盖率数据文件

         

    lcov -c -d appdir -o app_test.info

  6.   
  7. 组合基线和测试覆盖率数据

         

    lcov -a app_base.info -a app_test.info -o app_total.info

  8.   

然后,您必须使用app_total.info作为genhtml的源。