Платформа UnitTest - Обработка сигналов

Более эффективная обработка control-C во время тестового запуска обеспечивается параметром командной строки -c / - catch для unittest, а также catchbreakпараметр. Если включено поведение перехвата перерыва, control-C позволит завершить текущий тест, а затем тестовый прогон завершится и сообщит обо всех результатах. Второй control-c вызовет KeyboardInterrupt обычным способом.

Если обработчик unittest вызывается, но обработчик signal.SIGINT не установлен, он вызывает обработчик по умолчанию. Обычно это будет ожидаемым поведением кода, который заменяет установленный обработчик и делегирует ему полномочия. Для отдельных тестов, требующих отключения обработки control-c unittest, можно использовать декоратор removeHandler ().

Следующие служебные функции включают функциональность обработки control-c в рамках тестовой среды:

unittest.installHandler ()

Установите обработчик control-c. Когдаsignal.SIGINT получены все зарегистрированные результаты с вызовом TestResult.stop ().

unittest.registerResult (результат)

Зарегистрируйте TestResultобъект для обработки control-c. При регистрации результата сохраняется слабая ссылка на него, поэтому это не препятствует сборке мусора.

unittest.removeResult (результат)

Удалить зарегистрированный результат. После удаления результата TestResult.stop () больше не будет вызываться для этого объекта результата в ответ на control-c.

unittest.removeHandler (функция = Нет)

При вызове без аргументов эта функция удаляет обработчик control-c, если он был установлен. Эту функцию также можно использовать в качестве декоратора теста для временного удаления обработчика во время выполнения теста.

GUI Test Runner

Модуль unittest устанавливается для интерактивного обнаружения и запуска тестов. Эта утилита, скрипт Python inittestgui.py, использует модуль Tkinter, который является портом Python для набора графических инструментов TK. Это дает простой в использовании графический интерфейс для обнаружения и запуска тестов.

Python unittestgui.py

Нажмите кнопку "Обнаружить тесты". Появится небольшое диалоговое окно, в котором вы можете выбрать каталог и модули, из которых будет запускаться тест.

Наконец, нажмите кнопку «Пуск». Тесты будут обнаружены по выбранному пути и именам модулей, и на панели результатов будут отображаться результаты.

Чтобы просмотреть детали отдельного теста, выберите и нажмите тест в поле результатов -

Если вы не нашли эту утилиту в установке Python, вы можете получить ее на странице проекта. http://pyunit.sourceforge.net/.

Аналогичная утилита на основе инструментария wxpython также доступна там.