【发布时间】:2016-06-14 07:04:38
【问题描述】:
我正在尝试使用 pytest-cov 和 coveralls.io 对一些 Cython 代码运行覆盖率分析。我已经构建了启用跟踪的扩展模块,并在以下链接的帮助下运行了分析:
http://docs.cython.org/src/tutorial/profiling_tutorial.html
http://blog.behnel.de/posts/coverage-analysis-for-cython-modules.html
但是,我得到了一些我无法解释的结果。尽管代码中的代码正常,但代码中的许多 def/cdef/cpdef 行似乎都显示为未运行。结果甚至不一致,因为有些行看起来不错。
示例报告:https://coveralls.io/files/1871744040
我不知道我是否说错了什么,这是否是一个错误,或者我只是没有正确解释结果。
在上面的例子中,get_cost 方法看起来没问题,但是上面属性的 __set__ 方法没有被调用,尽管函数中的行已经被调用了。
更新:似乎问题出在 Cython 类上。如果该类是用def 而不是cdef 定义的,那么问题就消失了。我想目前还没有完全支持。
【问题讨论】:
-
为仍在研究此问题的人提供的更新:正在讨论的 Cython 问题是here。
标签: code-coverage cython