1

当我从包含 .gcno 和 .gcda 文件的文件夹中执行 gcovr 文件时,会生成 coverage.xml 文件。

文件夹位置 - /Users//….. /x86_64/

Gcovr 位置 - /Users//….. /x86_64/gcovr

当前位置 - /Users//….. /x86_64/

命令 - python gcovr –x > coverage.xml

覆盖率文件包含代码覆盖率报告。

但是,如果我从远程位置调用相同的可执行文件 Ex。

当前位置 - /用户/

Gcovr 位置 - /Users//….. /x86_64/gcovr

命令 - python /Users//….. /x86_64/gcovr –r /Users//….. /x86_64/ –x > coverage.xml

此外,当我在远程位置有 gcovr 并将其调用为我的覆盖文件的根文件夹时,情况也是如此。

当前位置 - /用户/

Gcovr 位置 - /Users//gcovr

命令 - python /Users//gcovr –r /Users//….. /x86_64/ –x > coverage.xml

覆盖率文件不包含覆盖率报告。看起来像这样

<?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>

任何帮助是极大的赞赏。

4

3 回答 3

2

Looking at my gcovr lines, which work both on master and slave, I'm always executing from the build directory and pointing at the coverage/object directory in the command line. This seemed to be necessary for the source lines to be found.

于 2013-07-19T10:27:04.150 回答
0

可能这个问题将帮助您解决问题。

GCOVR 在 MAC 中给出空结果的百分比为零

于 2016-08-12T12:38:14.977 回答
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 打开远程文件,但始终发现它们是正确的。

于 2017-11-03T09:34:25.673 回答