Я использую py.test для тестирования некоторых моих модулей, которые содержат довольно много записей в stdlib.Я, конечно, хотел бы, чтобы протоколирование регистрировалось в stdout, который захватывается py.test, чтобы я получал все соответствующие сообщения регистрации, если тест не пройден.
Проблема заключается в том, что модуль журналирования в конечном итоге пытается записывать сообщения в объект 'stdout', предоставленный py.test после , когда этот объект был удален py.test.То есть я получаю:
Traceback (most recent call last):
File "/usr/lib/python2.6/atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "/usr/lib/python2.6/logging/__init__.py", line 1508, in shutdown
h.flush()
File "/usr/lib/python2.6/logging/__init__.py", line 754, in flush
self.stream.flush()
ValueError: I/O operation on closed file
Если я отключаю захват с помощью -s
, у меня не возникает никаких проблем, но, конечно, это делает тестовый вывод нечитаемым с ненужной регистрацией.
Может кто-нибудь сказать мне, как правильно интегрировать ведение журнала stdlib с py.test?
(я пытался посмотреть этот , где, похоже, он должен работать без проблем, так чтомне мало помогло)