我有一个错误的第三方 python 模块,在导入时输出到 stdout 或 stderr,这破坏了我的单元测试的输出。
如何临时重定向stdout
以隐藏其输出。
限制为 Python 2.5 语法:)
Update,我忘记说了sys.stdout
and sys.__stderr__
方法在这种情况下不起作用。据我所知,这个错误模块正在使用本机代码。
您还可以使用mock让你打补丁sys.stdout
and sys.stderr
导入模块时为您提供。使用此策略的测试模块的示例是:
import os
devnull = open(os.devnull, 'w')
from mock import patch
with patch('sys.stdout', devnull):
with patch('sys.stderr', devnull):
import bad_module
# Test cases writen here
where bad_module
是打印到的第三方模块sys.stdout
and sys.stderr
什么时候导入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)