Gcc 如何合并覆盖率报告?

Gcc 如何合并覆盖率报告?,gcc,gcov,lcov,gcovr,Gcc,Gcov,Lcov,Gcovr,我有一个C程序,我用-fprofile arcs-ftest覆盖标志编译它。然后我在5个不同的输入上运行这个程序,这将覆盖.gcda文件并给我一个组合报告。但我想拥有单个测试的覆盖率报告并将其存储在一个文件夹中,当我在该文件夹上运行任何覆盖率工具时,我会得到每个测试的报告以及一个组合报告。有什么方法可以做到这一点吗?从4.1版开始,Gcovr没有合并功能来自多次运行的覆盖率数据()。您可以在每次测试运行后运行gcovr以获取单个报告,但不可能生成组合报告。类似地,gcov也没有这样的功能 取而代

我有一个C程序,我用-fprofile arcs-ftest覆盖标志编译它。然后我在5个不同的输入上运行这个程序,这将覆盖.gcda文件并给我一个组合报告。但我想拥有单个测试的覆盖率报告并将其存储在一个文件夹中,当我在该文件夹上运行任何覆盖率工具时,我会得到每个测试的报告以及一个组合报告。有什么方法可以做到这一点吗?

从4.1版开始,Gcovr没有合并功能来自多次运行的覆盖率数据()。您可以在每次测试运行后运行gcovr以获取单个报告,但不可能生成组合报告。类似地,gcov也没有这样的功能


取而代之的是,考虑使用<代码> LCOV 工具及其<代码>——添加TraceFiels选项是否可行:在每次测试之后,您都可以运行LCOV以生成LCOV TraceFILE(您可以将其转换成GEnHTML的HTML报告)。之后,您可以将跟踪文件合并到一个组合报告中。无法将lcov的跟踪文件与gcovr一起使用。

谢谢您的回答。我试过使用lcov,但如果我有数百个测试用例,那么我需要单独添加每个tracefile,这并不方便。我在考虑是否应该使用一些工具,如TestWell CTC++或RapiCover。@Vatsal Re“我需要单独添加每个跟踪文件”:您可以编写一个脚本来运行测试并添加跟踪文件。关于“我是否应该使用一些工具”:像lcov、gcov和gcovr这样的开源工具大多是业余爱好者在空闲时间开发的。由于缺乏发展资源,它们可能非常有限。(披露:我是gcovr的维护者。)付费工具很可能提供更方便的功能,但我不熟悉它们,并且怀疑它们可能会变得相当昂贵。感谢@amon的帮助。我将编写脚本来运行测试并添加跟踪文件,因为这似乎是一个方便且便宜的选择。感谢您维护gcovr,这是一个很棒的工具。