在py.test运行期间调试内存使用情况

时间:2015-03-12 12:31:44

标签: python unit-testing memory-leaks pytest

如果单独运行,我们有测试通过。但是如果我们运行所有测试,py.test会因为没有内存而失败。

我的问题:如何在每次测试之前和之后显示py.test进程的内存使用情况?

这样我们就能找到有内存泄漏的测试。

也欢迎其他解决方案。

我们在linux上运行Python 2.7。

解决了内存问题的根源:Django更改了Queryset迭代以加载所有实例。就我而言,数百万:-)见:https://docs.djangoproject.com/en/1.6/releases/1.6/#queryset-iteration

但我仍然对一般性问题感兴趣。

1 个答案:

答案 0 :(得分:2)

pytest-xdist插件为您提供--boxed选项,其中每个测试都在自己的子流程中运行。

您可以解决测试问题,也可以跟踪资源使用情况(不确定atm)。

最后,它很可能是你的测试的交互,而不是单独的一个测试,它会堆积内存。您可以使用-k选择器或pytest-random插件的标记--random来验证我的推测。

https://pypi.python.org/pypi/pytest-xdist

https://pypi.python.org/pypi/pytest-random