我想要一种简单的方法来测试特定方法是否会在分配的时间内返回。在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