如何过滤 llvm-cov 代码覆盖率报告中的文件?

How to filter files in llvm-cov code coverage report?

来自llvm-cov docs

llvm-cov show [options] -instr-profile PROFILE BIN [-object BIN,...] [[-object BIN]] [SOURCES]

The llvm-cov show command shows line by line coverage of the binaries BIN,... using the profile data PROFILE. It can optionally be filtered to only show the coverage for the files listed in SOURCES.

我正在使用以下命令:

xcrun llvm-cov show -instr-profile "${PROFDATA}" "${BINARY}" codecov_source_files > Coverage.report

其中 codecov_source_files 是包含此行的文件:

*Router.swift

所以基本上我想要的是只包含后缀为 Router.swift

的文件的报告

但是我得到了一个 Coverage.report,其中包含项目中的所有 类。

我错过了什么?

措辞不当,但SOURCES实际上是一个文件名列表,而不是包含文件名列表的文件名。

它们需要是磁盘上实际源文件的路径。不幸的是,它不支持通配符或正则表达式。

编辑:通过阅读源代码,我发现您还可以将目录列为 SOURCES 并且它将递归到它们中。还有一个未记录的选项 -dump-collected-paths 打印 SOURCES 匹配的文件。