新聞中心
之前看過文檔測試的小伙伴,已經(jīng)了解到了它的妙用。doctest屬于python文檔測試中的模塊,有兩種使用方式。今天就doctest嵌入源碼,小編為大家進(jìn)行詳細(xì)講解。

創(chuàng)新互聯(lián)建站為客戶提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、成都手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。
下面的代碼只有一個(gè)函數(shù),里面嵌入了兩個(gè)doctest測試用例,文件名為naruto.py:
'''
這個(gè)例子展示如何在源碼中嵌入doctest用例。
'>>>' 開頭的行就是doctest測試用例。
不帶 '>>>' 的行就是測試用例的輸出。
如果實(shí)際運(yùn)行的結(jié)果與期望的結(jié)果不一致,就標(biāo)記為測試失敗。
'''
def multiply(a, b):
"""
>>> multiply(4, 3)
12
>>> multiply('a', 3)
'aaa'
"""
return a * b
if __name__=='__main__':
import doctest
doctest.testmod(verbose=True)有兩個(gè)地方可以放doctest測試用例,一個(gè)位置是模塊的最開頭,另一個(gè)位置是函數(shù)聲明語句的下一行(就像上面的例子這樣)。除此之外的其它地方不能放,放了也不會(huì)執(zhí)行。
verbose參數(shù),如果設(shè)置為True則在執(zhí)行測試的時(shí)候會(huì)輸出詳細(xì)信息。默認(rèn)是False,表示運(yùn)行測試時(shí),只有失敗的用例會(huì)輸出詳細(xì)信息,成功的測試用例不會(huì)輸出任何信息。
將上面提到的文件放在D盤(或者其他你覺得方便的目錄),打開cmd命令行,切換到naruto.py所在的目錄(我的在D盤),輸入下面代碼:
python naruto.py
輸出結(jié)果為:
Trying:
multiply(4, 3)
Expecting:
12
ok
Trying:
multiply('a', 3)
Expecting:
'aaa'
ok
1 items had no tests:
__main__
1 items passed all tests:
2 tests in __main__.multiply
2 tests in 2 items.
2 passed and 0 failed.
Test passed.上面啟動(dòng)測試的方式是在__main__函數(shù)中調(diào)用了doctest.testmod()方法。
如果__main__函數(shù)有其他用途,不方便調(diào)用doctest.testmod()方法,那么可以用另外一種執(zhí)行測試的方法,在cmd中輸入:
$ python -m doctest naurto.py $ python -m doctest -v naruto.py
以上就是python中doctest嵌入源碼的方法。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
分享題目:創(chuàng)新互聯(lián)Python教程:python中doctest如何嵌入源碼?
文章出自:http://www.dlmjj.cn/article/djocpoh.html


咨詢
建站咨詢
