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

Luc*_*ien 4 bash xcode code-coverage llvm-cov

来自llvm-cov 文档

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

llvm-cov show 命令使用配置文件数据 PROFILE 逐行显示二进制文件 BIN 的覆盖范围。可以选择对其进行过滤以仅显示 SOURCES 中列出的文件的覆盖范围。

我正在使用以下命令:

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

codecov_source_files带有这一行的文件在哪里:

*Router.swift

所以基本上我想要的是报告只包含带有后缀的文件: Router.swift

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

我错过了什么?

Tim*_*mmm 5

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

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

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

  • 您可能还想使用 `-output-dir=PATH` 而不是 `>coverage.html`。我不相信后者会为您提供每个文件的输出。 (2认同)