我想運行一些使用pytest-cov
和coveralls.io的Cython代碼的覆蓋率分析。我得儘可能下面的鏈接的幫助下建設有啓用跟蹤的擴展模塊,並運行分析:如何使用覆蓋分析與Cython
http://docs.cython.org/src/tutorial/profiling_tutorial.html
http://blog.behnel.de/posts/coverage-analysis-for-cython-modules.html
但是,我得到的一些結果我無法解釋。看起來代碼中的許多行都顯示爲未運行,儘管其中的代碼是正確的。由於某些行看起來不錯,結果並不一致。
示例報告:https://coveralls.io/files/1871744040
我不知道如果我打電話給做錯事,如果這是一個錯誤,或者如果我只是沒有解釋結果的正確。
在上面的例子中,get_cost
方法似乎行,但是對於上述的性質的方法__set__
不叫,儘管內已被調用的函數的線。
更新:似乎問題是與Cython類。如果班級的定義爲def
而不是cdef
,問題就會消失。我想現在還沒有完全支持。
此方法是否以.c而不是.pyx表示覆蓋範圍? – Snorfalorpagus
@Snorfalorpagus作爲一種替代方案,以防在cython追蹤中出現問題。如果使用兩種覆蓋方法,應該可以確定是否按照預期方式進行了網絡跟蹤。在這種情況下編寫錯誤報告可能會很好。 –