通常我们写一段临时的python脚本去实现一定的功能,是不会考虑对这段代码进行自动化的测试,因为后续不会对代码进行修改和持续的迭代。然而很多情况下我们编写项目的代码,必须考虑到产品迭代,以及代码修改后原有功能是否依然能正常运行等,这就需要对代码进行测试。
测试的方式很多,包括使用python常用的单元测试框架pytest和unittest等,作为测试驱动开发的工具。除了这些测试框架,python也提供了一种文档型的测试方式,在编写的注释中加入测试用例进行验证,这就是本文的主角,doctest。
注释内嵌脚本
先看一个简单的实例。编写脚本test.py。
def add(a, b):
"""
这是段有格式的注释.
>>> add(4, 3)
7
>>> add('a', 'b')
'ab'
>>> add(0, 6)
'7'
"""
return a + b
脚本定义一个add的函数实现相加,直接返回a和b相加的结果,注释语句才是这段代码精华部分。
‘>>>’开头的行调用函数,并传入测试参数,下一行不带’>>>’,显示的测试预期输出结果,如果函数运行的输出结果与这个结果一致,判断为这条用例执行成功,否则判断执行失败。
doctest在这个脚本中执行的方式有两种。
第一种是在脚本后面加上以下代码:
if __name__=='__main__':
import doctest
doctest.