Учебники

UnitTest Framework — Обработка сигналов

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

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

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

unittest.installHandler ()

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

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

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

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

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

unittest.removeHandler (function = None)

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

GUI Test Runner

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

Python unittestgui.py

Бегущий тест

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

Откройте тест

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

Панель результатов

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

Индивидуальные тестовые данные

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

Похоже, что утилита на основе wxpython toolkit также доступна там.