2013-10-07 41 views
4

我使用py.test來運行一堆測試。該測試似乎通過,但過程永遠不會終止:py.test在顯示測試結果後掛起

=====測試環節開始=====

平臺的Win32 - Python的2.7.3 - pytest-2.3.4

收集179項

公共/測試/ test_bar.py ...............

公共/測試/ test_foo.py ...... 。

....

===== 159過去了,20跳過98.58秒=====

< - 提示從來沒有回來 - >

任何想法什麼會導致這種情況以及如何進行調試?

編輯

@ hpk42是正確的 - 這是一個非守護線程從未終止。

+1

您是否在測試中啓動了線程或服務器循環,並且不終止它們? – hpk42

+0

@ hpk42 - 寫這個答案,我可以接受:) – bavaza

回答

4

您的測試可能會啓動一個帶有服務器循環的線程。如果是這種情況,您可以使用thread.setDaemon(True)這標誌着線程「可以被拋棄」,並可能有助於通過Python關機。但理想情況下,您應該向您的線程/循環發出信號,告知它應該終止。