在使用 lcov(用于 C++ 开发)对我的产品执行测试覆盖后,我想绘制一个矩阵以在测试名称和它所覆盖的文件之间建立对应关系。
我们的想法是快速查看 1 个测试文件所涵盖的代码。
例如:
xxxx |文件 1 |文件 2 |文件 3 |文件 4 | 文件 5 |
测试 1 | 是 | 否 | 是 | 是 | 是 |
测试 2 | 是 | 否 | 否 | 没有 | 否 |
测试 3 | 是 | 是 | 否 | 否 | 是 |
在我的项目中,我需要运行数千次测试来检查数千个文件的覆盖率,因此矩阵会很大。
不幸的是,GCOV 在设计上似乎不是这样工作的,因为我们将只有一组涵盖整个代码的 gcda 文件,而且看起来不可能确定哪个测试涵盖了代码的哪一部分。
我能想到的唯一解决方案是以下一个:
for current_test in all_tests do:
run 1 current_test
retrieve gcda -> .info file
extract from the .info file the name of covered code files
append the matrix with current_test / code filename
问题是它会非常长,因为这样做,1 次测试大约需要 5 分钟......我将花费数周时间等待......
任何想法都会受到欢迎。
非常感谢你的帮助。问候,托马斯