py.test:在测试结束时转储卡住背景线程

时间:2015-01-02 02:23:31

标签: unit-testing python-3.x pytest

我正在使用pytest来运行我的项目Python单元测试。

出于某种原因,有时在打印测试统计数据后测试运行器不存在。我怀疑这是因为一些测试打开后台线程,并且一些悬挂线程在拆除时没有正确清理。由于每次都不会发生这种情况,因此很难确定究竟发生了什么。

我希望找到一种方法让pytest在打印失败并通过测试后显示哪些线程。我提出了一些想法?

  • 测试完成后运行自定义挂钩 - py.test是否支持任何此类挂钩?

  • 其他一些方法(自定义py.test包装脚本)

我认为其他替代方法只是在每次拆除结束时打印线程转储。

Python 3.4。

1 个答案:

答案 0 :(得分:4)

尝试使用pytest-timeout插件...发生超时后,它会转储所有线程并退出该进程。

如果您想自己实现自定义代码,请查看pytest hooks。我想你可以使用pytest_runtest_teardown钩子来编写自定义拆卸代码。