如何在lcov / genhtml代码覆盖率输出中包含测试用例描述

时间:2012-10-03 21:34:22

标签: code-coverage testcase lcov

我正在使用lcov为C代码库生成代码覆盖率报告。我想将测试描述集成到最终输出中(使用lcov的gendesc实用程序。)

然而,我不知道如何做到这一点,关于gendesc的文档看起来相当稀疏(就好的旧谷歌已经能够告诉我。)

gendesc info at LTP描述了如何创建输入测试用例描述文件(如genhtml所预期的那样)。 genhtml info提供了--show-descriptions--description-file来输入此类测试用例描述文件。

但是,我不知道如何引用测试用例以便将它们包含在最终报告中。 genhtml将它们视为未使用的测试用例,从而使它们不受生成的html输出的影响。我可以使用--keep-descriptions,但这并不能告诉我运行了哪些测试用例(显然是因为我不知道如何从代码中引用测试描述。)

那么,我们如何告诉lcov / genhtml哪些测试在最终输出中运行?有什么想法吗?

1 个答案:

答案 0 :(得分:8)

要将测试用例名称与coverage数据相关联,请在使用lcov的--test-name选项收集coverage数据时指定该名称:

lcov --capture --directory project-dir --output-file coverage.info --test-name "test01"

然后继续您已经提到的步骤,即创建一个测试用例描述文件“tests.txt”:

test01
    Some test

将其转换为genhtml预期的格式:

gendesc tests.txt --output-filename tests.desc

最后将描述文件指定为genhtml:

genhtml coverage.info --output-directory out --description-file tests.desc --show-details