2

我正在尝试获取每个测试用例的覆盖率信息(以及总覆盖率)。但是由于.gcda每次程序运行时都会合并文件,除非文件被删除/移动,否则这是不可能的。

.gcda为每个新的测试用例执行删除文件的问题是我必须再次重复整个过程才能获得所有测试用例的覆盖率信息。如果我有 2000 个测试用例,我必须运行我的程序 4000 次。

至于移动.gcda文件,我必须合并所有.gcda文件。是否可以将多个 gcda 文件与 Gcov(或 Gcovr,因为我将它用于 XML 输出)合并?

显然lcov 具有合并功能,但 AFAIK 它不支持 xml 输出。

4

1 回答 1

0

gcov可以在以下帮助下合并两次运行的覆盖率数据gcov-tool

$ gcov-tool merge dir1 dir2

(默认情况下,结果将存储在merged_profile文件夹中)。

一个问题gcov-tool是它一次只能应用于两个目录(而您似乎有数千个目录)。您可以使用gcov-tool-many包装器来解决此问题。

于 2022-01-09T06:22:03.600 回答