首页 > 解决方案 > gcov/lcov - 如何从覆盖数据中排除除一个目录之外的所有目录

问题描述

我正在使用 gcov/lcov 为我的 C++ 项目创建代码覆盖率报告,并且我试图从覆盖率报告中删除除某个目录中的文件之外的所有文件(即我不希望各种文件夹中的不同依赖项显示在报告)。

但是我想自动而不是手动执行此操作。我尝试了以下方法:

lcov -r coverage.total '!(<path>)' -o coverage.info

但随后又lcov回来了Deleted 0 files。我也尝试过!(<path>)'[^path]*'这些略有不同,但似乎没有任何效果。我可以手动删除不需要的文件夹,例如以下确实有效:
lcov -r coverage.total '/usr/libs/*' '/usr/mylibs/*' -o coverage.info

所以我的问题是,我怎样才能lcov排除除特定目录之外的所有目录?

附言

附言

这不是这个问题的重复。我在询问一种仅在报告中包含特定目录中的文件的自动化方法。(例如当前目录)我知道这个--remove论点,但这不是一个自动化的解决方案。

非常感谢您的帮助!

标签: bashshellglobgcovlcov

解决方案


推荐阅读