2015-01-02 2 views
2

Я использую pytest для запуска моих проектов модульных тестов Python.py.test: дамп застрял в потоке фоновых потоков в конце тестов

По какой-то причине, после того, как была напечатана тестовая статистика, тест-бегун не существует. Я подозреваю, что это связано с тем, что некоторые тесты открывают фоновые потоки, а некоторые оборванные нити не очищаются должным образом при срыве. Поскольку это не происходит каждый раз, это затрудняет определение того, что именно происходит.

Я надеюсь найти способ сделать pytest, чтобы отобразить, какие потоки после него распечатываются, и прошли тесты. Некоторые идеи, которые я придумал?

  • Запуск пользовательского крюка после завершения тестов - поддерживает ли py.test любой из таких крючков?

  • Некоторый другой способ (пользовательское py.test обертывания скрипт)

Других альтернативные способами я думаю, было бы просто напечатать нить свалка в конце каждого рушить.

Python 3.4.

ответ

4

Попробуйте использовать плагин pytest-timeout ... после того, как произойдет таймаут, он выгрузит все потоки и выйдет из процесса.

Если вы хотите реализовать собственный код самостоятельно, взгляните на pytest hooks. Думаю, вы могли бы использовать крюк pytest_runtest_teardown для написания пользовательского кода разрыва.

Смежные вопросы