3

我们发现,对于我们自动拉入 Jenkins 的一些 Github 分支,gcovr 不会生成任何覆盖率信息。它声称未找到任何文件并返回 0% 的代码覆盖率。

其他分支工作正常。一旦我们将代码拉入 master,gcovr 就可以为相同的代码生成代码覆盖率文件。

4

1 回答 1

3

发生这种情况是因为 gcov 创建了包含整个路径的文件,例如#usr#include#boost#numeric#conversion#detail#converter.hpp.gcov. 如果分支名称是 Jenkins 的工作区路径的一部分,那么长的分支名称可能会使其中一些生成的文件名超出文件系统的最大文件名长度。

要解决此问题,请将 gcov 设置为散列文件名并分两次运行 gcovr:

gcovr -r `pwd` --gcov-executable="gcov -s `pwd` -x" -k
gcovr -r `pwd` --gcov-executable="gcov -s `pwd` -x" -g --html --html-details -o coverage/index.html
于 2017-10-29T12:08:53.397 回答