一、什么是 doctest?
Python 的 doctest 模块允许你把函数的使用示例直接写在函数的文档字符串(docstring)里,Python 会自动提取这些示例并执行,检查它们是否输出正确。
也就是检查你写在函数说明文档里的示例代码,看看运行结果是不是和你写的一样,不需要额外写测试程序。
二、例子
比如说写了一个函数dive,返回a除以b的值的模(去除小数部分)以及余数:
def dive(a,b):
return a//b,a%b
想测试这个函数就需要额外写输出,有时候比较麻烦,测试完还要删掉:
使用 doctest 就比较方便,写法如下所示:
def dive(a,b):
'''
>>> q,r= dive(2025,10)
>>> q
202
>>> r
5
>>> q,r=dive(222,10)
>>> q
22
>>> r
2
'''
return a//b,a%b
直接在控制台对相应的python文件进行文本测试:
python -m doctest -v daw.py
-m
的意思是“运行一个模块”,而不是直接运行一个 .py
文件。
-v
意思是“详细模式”,加上 -v
后,doctest 会输出每一个测试的详细过程。
说明函数通过了对应的例子。