Mik*_*ike 8 coverage.py pytest numba
我已经编写了一个python模块,@numba.jit为了提高速度,其中大部分都包装在装饰器中。我还为此模块编写了很多测试,并使用(在Travis-CI上)运行了该模块py.test。现在,我想看看这些测试的覆盖范围,使用pytest-cov,这仅仅是依赖于一个插件coverage(与整合所有这一切的希望工作服)。
不幸的是,似乎numba.jit在所有这些功能上使用都会使人们coverage认为这些功能从未使用过-就是这种情况。因此,我的测试基本上没有报告的报道。这并不是什么大的惊喜,因为numba正在获取该代码并对其进行编译,因此该代码本身实际上从未使用过。但是我希望有时会在python中看到一些神奇的东西...
有什么有用的方法可以将这两个出色的工具结合起来?如果失败,还有其他工具可以用来衡量numba的覆盖率吗?
[我做了一个最小的工作示例,在这里显示了区别。)
最好的办法是在覆盖率测量期间禁用numba JIT。这依赖于您信任Python代码和JIT版本代码之间的对应关系,但是无论如何您都需要信任它。
这并不是说这回答了问题,但我认为我应该宣传另一种可能有人感兴趣的方式。可能可以使用 来完成一些非常美丽的事情llvm-cov。据推测,这必须在 numba 中实现,并且必须对 llvm 代码进行检测,这需要在某处设置一些标志。但既然 numba 知道 python 代码行和 llvm 代码行之间的对应关系,那么肯定有比我更聪明的人可以实现的东西。
| 归档时间: |
|
| 查看次数: |
479 次 |
| 最近记录: |