gpt4 book ai didi

python - 在 Python 中运行单元测试时如何临时隐藏 stdout 或 stderr

转载 作者:太空狗 更新时间:2023-10-29 17:52:22 26 4
gpt4 key购买 nike

我有一个错误的第三方 python 模块,它在导入时输出到 stdout 或 stderr,这破坏了我的单元测试的输出。

如何临时重定向 stdout 以隐藏其输出。

限于 Python 2.5 语法 :)

更新,我忘了提到 sys.stdoutsys.__stderr__ 方法在这种情况下不起作用。据我所知,这个有问题的模块正在使用 native 代码。

最佳答案

您还可以使用 mock让您在导入模块时为您修补 sys.stdoutsys.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

其中 bad_module 是在导入时打印到 sys.stdoutsys.stderr 的第三方模块。

关于python - 在 Python 中运行单元测试时如何临时隐藏 stdout 或 stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com