doctest的另一個(gè)簡(jiǎn)單應(yīng)用是在文本文件中測(cè)試交互式示例。這可以通過(guò)以下testfile()功能完成:
import doctest
doctest.testfile("example.txt")
該短腳本執(zhí)行并驗(yàn)證文件中包含的任何交互式Python示例example.txt。文件內(nèi)容被視為一個(gè)巨大的文檔字符串; 該文件不需要包含Python程序!例如,也許example.txt包含這個(gè):
The ``example`` module
======================
Using ``factorial``
-------------------
This is an example text file in reStructuredText format. First import
``factorial`` from the ``example`` module:
>>> from example import factorial
Now use it:
>>> factorial(6)
120
運(yùn)行doctest.testfile("example.txt")然后在這個(gè)文檔中找到錯(cuò)誤:
File "./example.txt", line 14, in example.txt
Failed example:
factorial(6)
Expected:
120
Got:
720
與testmod()一樣,testfile()除非例子失敗,否則不會(huì)顯示任何內(nèi)容。如果一個(gè)例子失敗了,那么失敗的例子和失敗的原因?qū)⒈淮蛴〉綐?biāo)準(zhǔn)輸出中,格式為testmod()。
默認(rèn)情況下,testfile()查找調(diào)用模塊目錄中的文件。有關(guān)可用于指示其在其他位置查找文件的可選參數(shù)的說(shuō)明,請(qǐng)參見(jiàn)Basic API一節(jié)。
就像testmod(),testfile()可以通過(guò)-v命令行開(kāi)關(guān)或可選的關(guān)鍵字參數(shù)verbose來(lái)設(shè)置詳細(xì)程度。
自Python 2.6以來(lái),還有一個(gè)用于運(yùn)行的命令行快捷方式testfile()。您可以指示Python解釋器直接從標(biāo)準(zhǔn)庫(kù)運(yùn)行doctest模塊,并在命令行上傳遞文件名:
python -m doctest -v example.txt
因?yàn)槲募⒉灰源私Y(jié)束.py,因此doctest推斷它必須與其一起運(yùn)行testfile(),而不是testmod()。
有關(guān)更多信息testfile(),請(qǐng)參閱基本API一節(jié)。
更多建議: