doctest 檢查Docstrings中的示例

2022-08-03 16:31 更新

開(kāi)始使用doctest的最簡(jiǎn)單的方法(但不一定是您繼續(xù)這樣做的方式)是結(jié)束每個(gè)模塊M:

if __name__ == "__main__":
    import doctest
    doctest.testmod()

然后doctest在模塊中檢查文檔字符串M。

將模塊作為腳本運(yùn)行會(huì)導(dǎo)致文檔字符串中的示例得到執(zhí)行和驗(yàn)證:

python M.py

這將不會(huì)顯示任何東西,除非一個(gè)例子失敗,在這種情況下,失敗的例子和失敗的原因被打印到標(biāo)準(zhǔn)輸出,并且輸出的最后一行是***Test Failed*** N failures.,其中N是數(shù)字失敗的例子。

改為使用開(kāi)關(guān)運(yùn)行-v:

python M.py -v

并且所有嘗試過(guò)的示例的詳細(xì)報(bào)告都會(huì)打印到標(biāo)準(zhǔn)輸出,并在最后列出各種摘要。

您可以通過(guò)傳遞verbose=True來(lái)強(qiáng)制詳細(xì)模式testmod(),或通過(guò)傳遞來(lái)禁止它verbose=False。在任何一種情況下,sys.argv都不會(huì)被檢查testmod()(如此通過(guò)-v或沒(méi)有影響)。

自Python 2.6以來(lái),還有一個(gè)用于運(yùn)行的命令行快捷方式testmod()。您可以指示Python解釋器直接從標(biāo)準(zhǔn)庫(kù)運(yùn)行doctest模塊,并在命令行上傳遞模塊名稱(chēng):

python -m doctest -v example.py

這將example.py作為獨(dú)立模塊導(dǎo)入并testmod()在其上運(yùn)行。請(qǐng)注意,如果文件是軟件包的一部分并從該軟件包導(dǎo)入其他子模塊,則可能無(wú)法正常工作。

有關(guān)更多信息testmod(),請(qǐng)參閱基本API一節(jié)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)