python3 Doc 测试

引子

python doc test

现有python 脚本如下 fib.py

1
2
3
4
5
6
7
8
9
10
11
12
13
def fib(n):
"""
>>> fib(8)
13
>>> fib(9)
21
"""
pred,curr = 0,1
k = 2
while k<n :
pred,curr = curr,pred+curr
k = k+1
return curr

1
python3 -m doctest fib.py

这样就可以测试fib.py 里面的测试函数
fib(8) 是否等于 13
fib(9) 是否等于 21

如果不知道预期值,可以不填,会输出一个值,可以看看

如果测试通过 上面的命令不会有任何输出

如果想测试通过的时候,也有输出可以使用下面的-v

1
python3 -m doctest -v fib.py

这个非常方便

doctest 也可以换个方式调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def fib(n):
"""
>>> fib(8)
13
>>> fib(9)
21
"""
pred,curr = 0,1
k = 2
while k<n :
pred,curr = curr,pred+curr
k = k+1
return curr

if __name__ == '__main__':
import doctest
doctest.testmod(verbose=True)

相当于

1
python3 -m doctest -v fib.py

这种情况用在脚本需要导入其他模块的时候