当我从包含.gcno&的文件夹中执行gcovr文件时.gcda文件,正在生成coverage.xml文件。
文件夹位置 - / Users // ... .. / x86_64 /
Gcovr位置 - / Users // ... .. / x86_64 / gcovr
当前位置 - / Users // ... .. / x86_64 /
命令 - python gcovr -x> coverage.xml
coverage文件包含代码覆盖率报告。
但是,如果我从远程位置调用相同的可执行文件 实施例
当前位置 - / Users /
Gcovr位置 - / Users // ... .. / x86_64 / gcovr
命令 - python / Users // ... .. / x86_64 / gcovr -r / Users // ... .. / x86_64 / -x> coverage.xml
此外,当我在远程位置使用gcovr并将其调用为我的coverage文件的根文件夹时也是如此。
当前位置 - / Users /
Gcovr位置 - /用户// gcovr
命令 - python / Users // gcovr -r / Users // ... ../ x86_64 / -x> coverage.xml
coverage文件不包含coverage报告。看起来像这样
<?xml version="1.0" ?>
<!DOCTYPE coverage
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0.0" line-rate="0.0" timestamp="1365619556" version="gcovr 2.5- prerelease (r2823)">
<sources>
<source>
/Users/<username>/….. /x86_64/<Code Coverage Files>
</source>
</sources>
<packages/>
</coverage>
非常感谢任何帮助。
答案 0 :(得分:2)
查看我在主服务器和从服务器上工作的gcovr行,我总是从构建目录执行并指向命令行中的coverage / object目录。这似乎是找到源线所必需的。
答案 1 :(得分:0)
您是否使用以下选项进行编译? :-ftest-coverage -fprofile-arcs
您是否与以下选项相关联? :-fprofile-arcs
这是我排除多余文件的方法:
gcovr --xml -e ".*unit-test.*\.cpp" -e ".*unit-test.*\.h" -e ".*usr/include/.*" -e ".*jenkins.*" -o coverage.xml
总是发现远程文件正确,但我无法从Jenkins打开它们。
答案 2 :(得分:-1)
这个问题可能会帮助您解决问题。