【发布时间】:2023-08-07 19:32:01
【问题描述】:
在一个项目中,我在三个不同的可执行文件上运行测试用例,并使用不同的选项进行编译。根据选项,是否采用某些代码路径。现在,我只使用一个可执行文件的覆盖率数据。
我正在使用 gcovr 生成一个 XML,然后由 Sonar 解析:
gcovr -x -b -r . --object-directory=debug/test > coverage_report.xml
我有三组 gcda 和 gcno 文件,但我不知道如何生成它们的全局报告。
有没有办法做到这一点?
【问题讨论】:
-
lcov 就是这样做的。因此,来自 lcov 项目的人可能会有所帮助。
-
@k0n3ru,lcov 以某种中间格式合并数据。
-
lcov 的问题是我没有 XML Cobertura 格式了。
-
@BaptisteWicht 可能的解决方法是,如果您的项目可以使用 lcov ,似乎有 lcov 到 cobertura xml 转换器。
-
当您说您使用不同的选项进行编译时:您是指不同的编译器选项(例如一次使用-o2,另一次使用-o3),还是定义不同的预处理器宏?或者甚至是别的什么?
标签: g++ code-coverage gcov gcovr