LCOV从代码覆盖率分析中排除整个包

LCOV to exclude entire packages from code coverage analysis

本文关键字:排除 代码覆盖率 LCOV      更新时间:2023-10-16

我使用LCOV作为我的代码覆盖率的图形方法来告诉我我测试了多少代码,但是它包含了我不关心的代码文件夹,这使得我的覆盖率低于实际情况。

是否有一种方法可以排除整个目录,我可以忽略一堆我不关心的cpp文件?我知道--remove,但这似乎不适合这个目的。我想排除所有遵循以下模式的文件夹:

Src/general子系统/GA/除了Iterators

下面是我想忽略的目录

**Src/GeneralSubSystems/GA/Iterators**  I want to include this but exclude everything else
Src/GeneralSubSystems/GA/Converters 
Src/GeneralSubSystems/GA/Utils  
Src/GeneralSubSystems/GA/Models 
Src/GeneralSubSystems/GA/Collapse   
Src/GeneralSubSystems/GA/Interview  
Src/GeneralSubSystems/GA/Misc1  
Src/GeneralSubSystems/GA/Misc2
Src/GeneralSubSystems/GA/Misc3
Src/GeneralSubSystems/GA/Misc4
Src/GeneralSubSystems/GA/Misc5

下面是我当前的用法:

lcov --gcov-tool /usr/bin/gcov --capture --no-checksum --directory /jenkins/workspace/TCONVENGINE-INSTRUMENTED-BUILD/TCONV/Main/targs/Src --directory /jenkins/workspace/TCONVENGINE-INSTRUMENTED-BUILD/TCONV/Main/targs/Component --output-file ${WORKSPACE}/tps_coverage.info
lcov --remove ${WORKSPACE}/tconv_coverage.info '*/ThrdPrty/*' '*/Src/Low/*' '*/Src/TCCP-C/*' '*/Src/Tool/*' '*/zinAttInterviewDisassembler.*' '/usr/*' -o ${WORKSPACE}/tconv_coverage.info
genhtml --prefix /jenkins/workspace/TCONVENGINE-INSTRUMENTED-BUILD/TCONV/Main --title "TCONV Engine Coverage Analysis" --output-directory ${WORKSPACE}/lcov --num-spaces 3 ${WORKSPACE}/tps_coverage.info

任何帮助或协助将不胜感激,提前感谢大家

在删除列表*前添加两个反斜杠可能会有所帮助。例如:代替

'Src/GeneralSubSystems/GA/Utils/*'
使用

'Src/GeneralSubSystems/GA/Utils/\*'