pytest-таймаут е плъгин за py.test които ще прекрати тестовете след изтичане на определено време & Nbsp;. При това вие ще получите купчина сметището на всички теми, работещи в момента. Това е полезно, когато например текущи тестове по непрекъсната интеграция (CI) сървър.
<Силен> Usage
Инсталирайте чрез:
PIP инсталирате pytest-таймаут
и след това се даде възможност на плъгина, или от командния ред:
py.test -p таймаут
или още по-добре от вътрешността на модула за изпитване или conftest.py:
pytest_plugins = 'пауза'
Можете да промените времето за изчакване при използване на --timeout параметър, който определя времето за изчакване в секунди.
<Силен> Как работи
Този плъгин работи по един от двата начина. Ако системата подкрепя SIGALRM сигнал за тревога ще бъде насрочено когато започне тестове и отменя, когато го завършва. Ако алармата изтича по време на изпитването манипулатор сигнал ще използвате pytest.fail () за прекъсване на теста, след като са изхвърлени стека на други теми, работещи за STDERR.
Ако системата не поддържа SIGALRM или е бил използван за --nosigalrm опция след таймер темите ще се използва вместо. Още веднъж, ако този таймер не е отменена преди изтичането му, че ще зареже топчето всички теми, да STDERR преди прекратяване на целия процес py.test използване os._exit (1).
Недостатъкът на метода е, че SIGALRM сигнал се използва от рамката за изпитване. Ако този сигнал се използва от кода, който се изпитва, ще трябва да използвате --nosigalrm опция. Ограничаването на нишката на таймера обаче е допълнителното време за създаване на конци за всеки изпълнен тест и факта, че след един таймаут на целия процес е спрян и няма други тестове се изпълняват.
Какво е Новият в тази версия:.
- Добавен променлива PYTEST_TIMEOUT среда като начин за определяне на паузата (затваря брой # 2)
- Повече гъвкава аргумент маркер разбор:. Сега можете да се определи методът се използва позиционна аргумент
- Приставката се сега активирана по подразбиране. Там вече не е необходимо да се уточни таймаут = 0 в конфигурационния файл или в командния ред, просто така, че маркер ще работи.
Какво ново във версия 0.2:
- Добави маркер, за да променяте времето за изчакване, като се използваpytest .timeout (N) синтаксис, благодарение на Laurant Brack за първоначалния код.
- Позволи маркера на изчакване, за да изберете метода на изчакване, използвайки аргумента на метод дума.
- Преименуване на --nosigalrm опцията да --method = конци да пригоден за бъдещето, подкрепа за eventlet и gevent. Благодарение на Ronny Pfannschmidt за намека.
- Добави таймаут и timeout_method продукти за конфигурационния файл, така че можете да активирате и настроите плъгина използване на INI файла. Благодарение на Холгер Krekel и Ronny Pfannschmidt за съветите.
- Изпробван (и фиксирани) за Python 2.6, 2.7 и 3.2.
<силни> Изисквания :
- Python
- py.test
Коментари не е намерена