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

lui*_*nal 4 code-coverage lcov testcase

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

但是,我不清楚如何做到这一点,并且关于gendesc的文档看起来相当稀疏(就好的旧谷歌能够告诉我的那样.)

LTPgendesc信息描述了如何创建输入测试用例描述文件(如genhtml所预期的那样).而GENHTML信息提供--show-descriptions,以及--description-file用于输入这样的测试案例描述文件.

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

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

小智 8

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

lcov --capture --directory project-dir --output-file coverage.info --test-name "test01"
Run Code Online (Sandbox Code Playgroud)

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

test01
    Some test
Run Code Online (Sandbox Code Playgroud)

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

gendesc tests.txt --output-filename tests.desc
Run Code Online (Sandbox Code Playgroud)

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

genhtml coverage.info --output-directory out --description-file tests.desc --show-details
Run Code Online (Sandbox Code Playgroud)