You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行doc-tests且不产生打印输出,兼容测试运行器

如何静默运行doctest且不干扰sys.stdout

不用修改全局sys.stdout,直接给doctest.testmod()指定自定义输出流就能解决问题,完全兼容你的测试运行器套件。

具体做法:

  • 用io.StringIO()创建一个空的内存流,把doctest的输出定向到这里,不会在控制台显示
  • 调用testmod时传入out参数,指定为这个流的write方法,再加上verbose=False确保无额外输出

示例代码:

import doctest
import io
import some_module

# 创建空的内存流,接收doctest输出
silent_stream = io.StringIO()

# 运行测试,全程无打印输出
failed, run = doctest.testmod(
    some_module,
    optionflags=doctest.ELLIPSIS,
    out=silent_stream.write,
    verbose=False
)

这种方法不会改动全局的sys.stdout,测试运行器该往JSON写内容完全不受影响,同时你还能正常拿到失败测试数和总运行数。

内容的提问来源于stack exchange,提问作者ginjaemocoes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:07:04