新闻中心

python中doctest模块如何使用?

2025-11-22
浏览次数:
返回列表
doctest模块通过检查文档字符串中的交互式示例测试代码,运行并验证输出是否一致。1. 在函数或模块的文档字符串中写入类似Python交互的示例;2. 使用doctest.testmod()在程序内运行测试,添加verbose=True可查看详细结果;3. 可测试异常情况,用...跳过traceback中易变内容;4. 支持从独立文本文件如test.txt加载测试用例,通过doctest.testfile()执行;5. 输出需完全匹配,注意浮点精度、空格和换行,可用#doctest: +ELLIPSIS等控制比对行为;6. 文档中空行用表示;7. doctest适用于简单示例和文档验证,复杂场景建议结合unittest或pytest使用。

python中doctest模块如何使用?

doctest模块通过检查文档字符串中的交互式Python示例来测试代码是否按预期运行。它查找类似于Python解释器会话的文本,然后实际运行这些代码并验证输出是否一致。

基本用法

在函数或模块的文档字符串中写入Python交互示例:

def add(a, b): """ 返回两个数的和。
>>> add(2, 3)
5
>>> add(-1, 1)
0
"""
return a + b

dmSOBC SHOP网店系统 dmSOBC SHOP网店系统

dmSOBC SHOP网店系统由北京时代胜腾信息技术有限公司(http://www.webzhan.com)历时6个月开发完成,本着简单实用的理念,商城在功能上摒弃了外在装饰的一些辅助功能,尽可能的精简各项模块开发,做到有用的才开发,网店V1.0.0版本开发完成后得到了很多用户的使用并获得了好评,公司立即对网店进行升级,其中包括修正客户提出的一些意见和建议,现对广大用户提供免费试用版本,如您在使用

dmSOBC SHOP网店系统 0 查看详情 dmSOBC SHOP网店系统

在文件末尾添加以下代码以运行测试:

if __name__ == "__main__": import doctest doctest.testmod()

运行该Python文件,如果所有示例输出正确,不会有任何输出;加上verbose=True可看到详细结果:

doctest.testmod(verbose=True)

测试异常情况

可以测试函数是否会引发特定异常:

def divide(a, b): """ 除法运算,b为0时抛出异常。
>>> divide(4, 2)
2.0
>>> divide(1, 0)
Traceback (most recent call last):
    ...
ZeroDivisionError: division by zero
"""
return a / b

使用...表示异常 traceback 中可能变化的部分,避免因行号不同导致测试失败。

从独立文件运行测试

也可以将测试写在纯文本文件中:

# test.txt >>> from your_module import add >>> add(3, 4) 7

用以下方式加载并运行:

doctest.testfile("test.txt")

常见注意事项

注意输出必须完全匹配,包括类型、空格和换行。例如:

  • 浮点数精度要一致,可使用#doctest: +ELLIPSIS忽略部分细节
  • 集合、字典的顺序不固定,可用#doctest: +IGNORE_EXCEPTION_DETAIL等选项控制比对方式
  • 在文档字符串中加入空行需用<blankline></blankline>占位

基本上就这些。doctest适合简单直观的示例测试,尤其是写文档时附带验证功能。复杂场景建议搭配unittest或pytest。

以上就是python中doctest模块如何使用?的详细内容,更多请关注其它相关文章!


# 比对  # 淘宝关键词竞价排名规则  # 如何用门户网站推广产品  # 白山seo公司优选24火星  # 游戏推广视频大片素材网站  # 江西快速营销推广  # 南城企业推广网站  # 天津网站建设手机app  # 栾城区软文网站推广培训  # 安徽seo网站排名优化诚信企业  # seo优化和推广是什么  # python  # 文本文件  # 源代码  # 如何将  # 命令行  # 转换为  # 行号  # 如何使用  # 文档  # 网店  # ai 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  蛙漫移动版在线看 蛙漫手机浏览器直达入口  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  zookeeper 都有哪些功能?  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍  Linux如何排查内存不足OOME问题_LinuxOOM分析教程  《刺客信条:影》PS5 Pro和Switch 2画面对比  Angular Material 垂直步进器:实现底部到顶部排序的教程  J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析  J*a里如何使用forEach遍历Map_Map遍历方法说明  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧  Python大型XML文件高效流式解析教程  深入理解Promise链:如何在catch后中断then的执行  Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】  sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  荣耀Play7T运行卡顿解决_荣耀Play7T性能优化  Python实现多节点属性重叠度分析教程  拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法  Lar*el表单中优雅地处理“返回”按钮以规避验证:最佳实践指南  抓大鹅无需下载版 抓大鹅秒玩版入口  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  随机参数递归函数的基准调用次数与时间复杂度探究  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  AI泡沫首次被“刺破”:GPU十年都无法存活!  J*aScript打印功能_j*ascript输出控制  文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】  学习通网页版快速入口 学习通官网网页版直接打开  如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension  qq音乐在线播放入口_qq音乐电脑版登录链接  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性  DLsite中文平台入口 DLsite官网内容在线查看  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  构建轻量级网站内部消息系统:Formspree 集成指南  圆通快递查询实时追踪 圆通物流包裹状态快速查看  AO3最新镜像入口 Archive of Our Own官方平台访问  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  UC浏览器网页版登录入口官网 电脑版网址入口  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  深入理解J*a合成构造器:何时以及为何阻止其生成 

搜索