我想要一種簡單的方法來測試特定方法是否會在分配的時間內返回。在Windows上進行單元測試的Python超時裝飾器
Timeout decorator看起來像這樣做的最方便的方式,但不幸的是它不會在Windows上工作。
我想要一種簡單的方法來測試特定方法是否會在分配的時間內返回。在Windows上進行單元測試的Python超時裝飾器
Timeout decorator看起來像這樣做的最方便的方式,但不幸的是它不會在Windows上工作。
我不明白爲什麼Timeout裝飾器不能在Windows上工作?
如果這是永久性的,而不僅僅是爲了調試目的,您可以在方法內部使用for else循環。
def methodName(timeout):
for i in range(timout):
if done_doing_task:
break
else: #will only be executed if we don't break out of the for loop
raise Exception('method methodName timed out')
如果您檢查['signal'](http://docs.python.org/library/signal.html)模塊的文檔,您會看到'signal.alarm()'(由超時裝飾器使用)被列爲純UNIX。 – kindall 2012-03-22 23:44:11