前言
平日我们无论在debug还是查看某些源码时,里面或多或少会出现下图中方框中的注释。
我们可以把这些示例代码在Python的交互式环境下输入并执行,结果与文档中的示例代码显示的一致。这就是本文中的主角——doctest
,doctest
中文名字叫做文档测试
。一句话来解释就是:
doctest
通过运行嵌入在文档中的示例代码片段并验证是否产生预期的结果来测试源代码。
它的工作原理是解析帮助文档以找到示例代码,运行之,然后将输出结果与预期值进行比较。
如何使用
使用方法很简单,在你编写的函数里面使用交互式会话创建示例,然后把示例复制粘贴到模块的文档字符串中。以下面的代码为列。
def add(a,b):
"""
:param a:
:param b:
:return:
>>> add(3,7)
10
>>> add(-100,306)
206
"""
return a+b
要运行测试用例,通过 -m
选项把 doctest
作为主程序。通常在测试运行时是不会产生输出结果的。
因此下面的示例包含了 -v
选项使输出结果更加详细。
- 测试的样例都通过的情况
- 测试的样例存在问题(将代码中的206改为306)
doctest的一个好处就是,可以验验证一下我们自己写的某个函数片段会不会存在问题,类似于你在写力扣的时候,自己想样例,来验证自己的程序是否正确。以上只是简单的说明与使用,更加复杂的功能请参考下面的文献。