8

我正在使用 py.test 运行一堆测试。测试似乎通过了,但过程永远不会终止:

===== 测试会话开始 =====

平台 win32 -- Python 2.7.3 -- pytest-2.3.4

收集到 179 个项目

常见/测试/test_bar.py ......

常见/测试/test_foo.py .......

……

===== 159 通过,20 在 98.58 秒内跳过 =====

<-- 提示永远不会回来-->

有什么想法会导致这种情况以及如何调试?

编辑

@hpk42 是对的——它是一个永不终止的非守护线程。

4

1 回答 1

10

您的测试很可能会启动一个带有服务器循环的线程。如果是这种情况,您可以使用thread.setDaemon(True)which 将线程标记为“可以丢弃”,并可能有助于通过 Python 关闭。但是,理想情况下,您应该向您的线程/循环发出信号,表明它应该终止。

于 2013-10-10T09:17:52.623 回答