Windows下的Gcovr错误

时间:2013-10-10 13:14:18

标签: python c windows gcov gcovr

我正在尝试使用Gcovr生成一个C程序结果的HTML文件。 我已经安装了gcov(通过MinGW),Python,easy_stall和gcovr。 已将C:\MinGW\binC:\Python33C:\Python\Scripts添加到Windows PATH。

现在我遇到的问题(在Windows命令行中):

1。 gcovr命令

在使用c:\Python33\Scripts命令从python gcovr执行之前,无法从任何目录中找到/执行gcovr。

临时修复,将gcovr重命名为gcovr.py?但这听起来不是正确的解决方案。

2。执行gcovr

我打电话时没有结果:

c:\Python33\Scripts>python gcovr -r "d:\somepath\Debug"
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
------------------------------------------------------------------------------
TOTAL                                          0       0    --%
------------------------------------------------------------------------------

但是gcov给出了正确的结果。

D:\somepath\Debug>gcov some_file.gcda
File '../some_file.c'
Lines executed:21.43% of 14
Creating 'some_file.c.gcov'

我需要做些什么才能获得正确的结果?

4 个答案:

答案 0 :(得分:0)

尝试在没有-r选项的情况下运行相同的命令,即:

c:\Python33\Scripts>python gcovr "d:\somepath\Debug"

答案 1 :(得分:0)

我遇到了同样的问题。我确实用以下方法解决了这个问题。

转到项目的根(主)目录。

以表格格式生成输出, 在命令提示符下,命令在

中生成coverage

1)表格格式

     "python C:\Python27\Scripts\gcovr -r . --object-directory <path to *.gcno *.gcda file>"

2) XML格式

   "python C:\Python27\Scripts\gcovr -r . --object-directory <path to *.gcno *.gcda file> -x -o <desired_name.xml>"

3) HTML格式

   "python C:\Python27\Scripts\gcovr -r . --object-directory <path to *.gcno *.gcda file> –-html -o <desired_name.html>"

答案 2 :(得分:0)

这篇文章可能会解决您的问题。

GCOVR giving empty results zero percent in MAC

答案 3 :(得分:0)

有同样的问题。

问题是您的源文件不在&#34;以下&#34;根文件夹,默认情况下gcovr会过滤它。

如果你打电话

python gcovr -r "d:\somepath\Debug" --verbose

你会注意到这一行

Filtering coverage data for file ../some_file.c

一个简单的解决方法是添加过滤器选项:

python gcovr -r "d:\somepath\Debug" --verbose -f .*

来自gcovr帮助:

  

-f FILTER, - filter = FILTER                           仅保留与此常规数据匹配的数据文件                           表达

gcovr文档未提及的是,如果您不提供过滤器,它将使用根路径作为默认过滤器。

希望它会对某人有所帮助。