我正在尝试使用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问题消失了.我想还没有完全支持.