Python timeout decorator для модульного тестирования в Windows - PullRequest
1 голос
/ 22 марта 2012

Я хочу иметь простой способ проверить, возвращается ли конкретный метод в отведенное время.

Таймаут-декоратор выглядит наиболее удобным способом сделать это, но, к сожалению, он не будет работать в Windows.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Найдено это решение на основе потоков, но, как уже отмечалось здесь , в Python обычно нет способа уничтожить поток, поэтому даже после истечения времени ожидания потока он продолжает работать.,Тем не менее, вы можете использовать this для фактического завершения потока, если предположить, что он не связан в C-land.

К сожалению, не готовый рецепт, но похоже, чтозапчасти вам нужны.

0 голосов
/ 22 марта 2012

Я не понимаю, почему Timeout Decorator не работает на Windows?

Если это постоянно, и не только для отладки, вы можете использовать для цикла 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...