2

当我运行 gcov 时,输出显示 87% 被覆盖...然后我想使用 gcovr,但它永远不会工作。我尝试从许多目录运行,有很多选项。在某些情况下,我得到了一些文件,但不是我想要查看的文件。

我的项目包含 3 个文件:

  • src\main.c
  • src\makefile
  • tst\test1.c
  • tst\test2.c
  • tst\makefile
  • tst\obj\all目标文件、gcno、gcda 存储在这里...
  • build\build.bat制作项目(windows)

我应该更改目录结构吗?如何查看我应该使用哪个版本的 gcov?我想查看 main.c 的覆盖率,但只获得 test1.c 和 test2.c 的覆盖率,而这些与覆盖率无关!!

在测试文件旁边,我在 C:\compiler 上包含了覆盖范围不需要的目录。

我试过 Python27:

python c:\python27\scripts\gcovr -g --object-directory=. -r ..\..\..\ --html --html-details -o program.html -v

我试过 Python36:

c:\python36\scripts\gcovr --use-gcov-files -v --object-dir=.

但永远不要覆盖我的被测设备。只有没有 gcovr 的 gcov 有效,所以文件必须正确。

4

2 回答 2

0

尝试添加 -f '' 选项。当我们从树中构建时,gcovr 中存在错误

于 2018-03-27T12:47:19.370 回答
0

我在 Windows 中运行 GCOVR 时发现了几个问题,特别是关于 \ 而不是 / 和使用冒号字符 : 在名称中,如 C:\file.c

当您使用 \ 时,它需要使用其中的 2 个 \ 并且在 gcovr 中的某处它会更改为 \\ 或 \\\ ...这并不顺利,在某些时候它会尝试通过减去来找到源文件的根2条路径。但它找不到这个,例如 \a\b\c\d 它不会在 \a\b\c\d 中找到。所以,看看:[github.com/barthhoukes/gcovr][1]

该解决方案仍然很脏,但它适用于我在 Windows 中的项目。我认为 gcovr 的人也在讨论这个问题。

您只需要文件:gcovr

于 2018-04-15T16:27:47.560 回答