Doctest 通过解析文档字符串(docstring)中的交互式 Python 代码片段(以 >>>
开头)进行测试,验证代码输出是否与预期一致。测试用例直接嵌入代码中,实现“文档即测试”
核心语法:
def func():
"""示例文档字符串
>>> func() 预期输出
"""
pass
doctest非常有用,不但可以用来测试,还可以直接作为示例代码。通过某些文档生成工具,就可以自动把包含doctest的注释提取出来。用户看文档的时候,同时也看到了doctest。
练习
对函数fact(n)
编写doctest并执行:
def fact(n):'''Calculate 1*2*...*n>>> fact(1)1>>> fact(10)?>>> fact(-1)?'''if n < 1:raise ValueError()if n == 1:return 1return n * fact(n - 1)if __name__ == '__main__':import doctestdoctest.testmod()
这里呢所建文件夹不能是doctest.py,否则会因为自定义脚本与 Python 标准库重名导致报错