python 学习汇总31:doctest - 文档测试简述( tcy)

doctest - 文档测试:  2018/11/15  
用途:
扫描模块并验证程序文档中嵌入的测试。主要用来测试函数(在文档中)
测试的结构就像将一个典型的调用和结果切入并粘贴到文档字符串一样简单。

使用方式:
是嵌入到python源中
放到一个独立文件  
1.嵌入到python源中
位置:
函数开头和模块开头;上面能加一条注释说明函数或模块用途。

例程:

def add0(a, b):
"""
This is test add0.
>>> add0(4, 3)
7

"""
return a +b
if __name__=='__main__':
import doctest
doctest.testmod(verbose=True)#True显示详细信息
#缺省正确什么也不显示,错误则显示错误。  
输出:
C:\python37\python.exe C:/Users/Administrator/.PyCharmCE2018.2/config/scratches/multiply_tcy.py
Trying:
add0(4, 3)
Expecting:
7
ok
1 items had no tests:
__main__
1 items passed all tests:
1 tests in __main__.add0
1 tests in 2 items.
1 passed and 0 failed.
Test passed.

Process finished with exit code 0  
2.放到一个独立文件
步骤1:
写模块文件,并存放的当前工作目录下:c:\python37\lib\add0_module.py
#模块内容如下:
def add0(a, b):
"""
This is test add0.
>>> add0(4, 3)
7

"""
return a + b

if __name__=='__main__':
import doctest
doctest.testmod(verbose=True)  
步骤2:
    写文本执行文件*.txt(ANI编码),并存放的当前工作目录下:c:\python37\lib\test_add0.txt
#文档内容如下
This is test add0.
>>> from add0_module import add0
>>> add0(3,4)
7  
步骤3:
         dos环境下运行:
--- >cmd

C:\Users\Administrator> cd C:\python37\lib

c:\python37\Lib>python -m doctest -v test_add0.txt  
步骤4:
    运行结果显示 :
Trying:
from add0_module import add0
Expecting nothing
ok
Trying:
add0(3,4)
Expecting:
7
ok
1 items passed all tests:
2 tests in test_add0.txt
2 tests in 1 items.
2 passed and 0 failed.
Test passed.

c:\python37\Lib>  

3.类中测试

class Dict(dict):
"""
simple dict but also support access as x.y style.
>>> d1 = dict()
>>> d1['x'] = 100
>>> d1.x
100
>>> d1.y = 200
>>> d1['y']
200
>>> d2 = Dict(a=1, b=2, c='3')
>>> d2.c
'3'
>>> d2['empty']
Traceback(most recent call last):
...
KeyError: 'empty'
>>> d2.empty
Traceback(most recent call last):
...
AttributeError: 'Dict' object has no attribute 'empty'
"""
def __init__(self,**kwargs):
super(Dict,self).__init__(**kwargs)

def _getattr_(self,key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Dict' object has no attribute '%s'"%key)

def _setattr_(self,key,value):
self[key] = value

测试
if __name__=='_main_':
import doctest
doctest.testmod(verbose=True)

猜你喜欢

转载自blog.csdn.net/tcy23456/article/details/84077099