2
  1. 我创建了简单的 hello word cpp 应用程序。
  2. 通过传递 gcc --coverage 标志编译它
  3. 执行了可执行文件
  4. 通过调用生成的覆盖率
    lcov --directory . --capture --output-file ic.info
  5. 通过 genhtml 生成基于 html 的报告
    genhtml -o html/ ic.info

现在的问题。无论我运行多少次可执行文件,我总是得到相同的结果,即相同的行和函数覆盖率。它是否应该增加每次执行的行覆盖率?我有什么问题吗?

如果lcov只为一次执行生成覆盖率,那么我如何为我已经完成的所有执行生成覆盖率?

4

1 回答 1

2

我猜你误解了覆盖结果是如何产生的。lcov如您的问题所述,未生成覆盖范围。它仅处理运行程序时生成的覆盖结果(问题中的第 3 步)。

因此,当多次执行程序(第 3 步)时,您的行执行时间会增加(不需要覆盖范围)。要查看这一点,您可以生成多个覆盖率报告(多次执行步骤 3,4 和 5)。在第 5 步生成的报告中,您将看到代码中行的执行时间增加了。

于 2011-10-28T09:47:55.447 回答