麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python 測試框架doctest

2019-11-11 05:42:00
字體:
來源:轉載
供稿:網友
摘要: 這里將從(pythontesting.net)陸續編譯四篇 Python 測試框架的簡介,分別為:doctest、unittest、nose 和 pytest。本篇為第一篇:doctest               

doctest 是一個 Python 發行版自帶的標準模塊。本篇將分別對使用 doctest 的兩種方式——嵌入到源代碼中和做成獨立文件做基本介紹。<br />

doctest 的概念模型


在 Python 的官方文檔中,對 doctest 的介紹是這樣的:

doctest 模塊會搜索那些看起來像交互式會話的 Python 代碼片段,然后嘗試執行并驗證結果

即使從沒接觸過 doctest,我們也可以從這個名字中窺到一絲端倪。“它看起來就像代碼里的文檔字符串(docstring)一樣” 如果你這么想的話,就已經對了一半了。

doctest 的編寫過程就仿佛你真的在一個交互式 shell(比如 idle)中導入了要測試的模塊,然后開始一條條地測試模塊里的函數一樣。實際上有很多人也是這么做的,他們寫好一個模塊后,就在 shell 里挨個測試函數,最后把 shell 會話復制粘貼成 doctest 用例。<br />

舉個例子


下面使用的例子是一個只有一個函數的模塊,其中簽入了兩個 doctest 的測試用例。

unnecessary_math.py:

lang:python"""這里也可以寫"""def multiply(a,b): """ >>> multiply(2,3) 6 >>> multiply('baka~',3) 'baka~baka~baka~' """ return a*bif __name__ == '__main__': import doctest doctest.testmod(verbose=True)

注意測試代碼的位置,前面說過 doctest 的測試用例就像文檔字符串一樣,這句話的內涵在于:測試用例的位置必須放在整個模塊文件的開頭,或者緊接著對象聲明語句的下一行。也就是可以被__doc__ 這個屬性引用到的地方。并非像普通注釋一樣寫在哪里都可以。另:verbose 參數用于控制是否輸出詳細信息,默認為False,如果不寫,那么運行時不會輸出任何東西,除非測試 fail。

示例的運行輸出為:

Trying: multiply(2,3)Expecting: 6okTrying: multiply('baka~',3)Expecting: 'baka~baka~baka~'ok1 items had no tests: __main__1 items passed all tests: 2 tests in __main__.multiply2 tests in 2 items.2 passed and 0 failed.Test passed.

上例中啟動測試的方式是在 __main__ 函數里調用了 doctest.testmod() 函數。這對于純容器型模塊文件來說是一個好辦法——正常使用時只做導入用,直接運行文件則進行測試。而對于__main__ 函數另有他用的情況,則還可以通過命令行來啟動測試:

$ python -m doctest unnecessary_math.py$ python -m doctest -v unnecessary_math.py

這里 -m 表示引用一個模塊,-v 等價于 verbose=True。運行輸出與上面基本一樣。<br />

獨立文件模式


如果不想(或不能)把測試用例寫進源代碼里,則還可以使用一個獨立的文本文件來保存測試用例。

lang:python可選的一些解釋性內容...>>> from test import multiply>>> multiply(2,3)6>>> multiply('baka~',3)'baka~baka~baka~'

幾乎同樣的格式。運行方法可以分為在 Python shell 里運行或者在系統 shell 里運行:

lang:python>>> import doctest>>> doctest.testfile('example.txt')

bash/cmd.exe:

$ python -m doctest -v example.txt
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻豆视频在线播放 | 92看片淫黄大片欧美看国产片 | 一级黄色毛片免费 | 久草在线观看福利 | 91精品国产综合久久久动漫日韩 | 看个毛片 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 精品久久一区二区 | 黄视频网站免费观看 | 特级无码毛片免费视频尤物 | 久久久久久免费 | 成人福利在线 | 国产精品一区网站 | 男男羞羞视频网站国产 | 91久久精品一二三区 | 免费毛片电影 | 全黄性性激高免费视频 | 国产乱一区二区三区视频 | 国产亚洲精品成人a | 羞羞的视频免费在线观看 | 国产91精品欧美 | 在线播放亚洲视频 | 色综合狠狠 | 91精品国产刺激国语对白 | 成年免费大片黄在线观看岛国 | 一区二区免费网站 | 成人午夜视频在线观看 | 精品一区二区三区在线观看国产 | 国产精品刺激对白麻豆99 | 久久国产精品影视 | 亚洲第一激情 | 曰韩在线视频 | 毛片在线视频观看 | 欧美日韩在线中文 | 在线视频观看成人 | 97中文字幕第一一一页 | 久久亚洲线观看视频 | 91精品最新国内在线播放 | 成人精品aaaa网站 | 久久久www视频 | 国产一有一级毛片视频 |