专栏首页python3Python模块——doctest

Python模块——doctest

doctest在docstring的部分加入测试代码,以一种简单的方式进行测试。

示例代码:

#dtest.py
import doctest
 
def add(x, y):
    """
    >>> add(1, 2)
    3
    """
    return x + y

def main():
    pass
 
if __name__ == '__main__':
    main()

运行python -m doctest -v dtest.py 

如果doctest通过,不会有任何输出。可以加-v参数来查看测试细节。

注意的地方

1.">>>"与测试代码之间有个空格。

2.期望的测试结果与docstring之间要有一个空行。

"""
>>> add(1, 2)
3
a docstring   #这个会被认为是测试输出的一部分
"""

应该写成这样

"""
>>> add(1, 2)
3
 
a docstring
"""

作用

官方文档提到的应用情景:

1.通过验证例子(doctest)检查模块的docstring是最新的。

有时候会出现代码已经改变但docstring没有更新的情况,在docstring中加入doctest可以尽量避免这种情况的发生。

2.回归测试

我的理解是当测试未通过的时候,可以把用例写在docstring里,可以方便的进行回归测试。

3.作为包或库的教程示例

一个可以执行的示例比大段的说明性文字更直观有效

相比于unittest模块,doctest功能比较简单,可以很轻松的拿来用,是大型测试框架的有机补充。

参考

[1] http://docs.python.org/release/2.6.8/library/doctest.html

[2] http://www.doughellmann.com/PyMOTW/doctest/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python3+opencv+tkint

    其中所使用到的训练参数数据下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades

    py3study
  • python绘图示例

    更多参考用python的matplotlib包绘制热度图,pyHeatMap:使用Python绘制热图的库。

    py3study
  • 启用 VIM 中的 Python 自动补

     此时, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及对应的 docstring.

    py3study
  • 如何破除对测试人员的偏见

    我从事测试工作六年有余,开始不懂测试,后来去了某大型互联网公司做专项测试,一番锤炼之后,自认为知道了测试的精髓,然而其实只是管中窥豹,后来跳槽,周围人大部分是...

    cctester
  • 记录yarn被攻击的解决办法

    目前如果在腾讯云服务器上部署hadoop框架开启yarn时可能会被黑客攻击(8088yarn计算端口)。 我已经踩雷,出现的结果就是我的用户下的所有文件都被删...

    gzq大数据
  • 技术派:谁说API网关只能集成REST APIs?

    魏新宇
  • Mysql写入频繁,怎么破?

    Peter谭金杰
  • Vue中的$set的使用

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去; 当我们去看vue文档的时候,会发...

    李文杨
  • python算法与数据结构-常用查找算法一(37)

      搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈...

    Se7eN_HOU
  • 沈向洋出任董事长李笛任CEO,「微软」小冰变身「中国」小冰

    今日,微软宣布将旗下人工智能小冰业务分拆为独立公司,并委任沈向洋博士为新公司董事长,李笛为首席执行官,陈湛为日本分部总经理。新公司将继续使用中国小冰及日本 Ri...

    新智元

扫码关注云+社区

领取腾讯云代金券