doctest的另一個簡單應用是在文本文件中測試交互式示例。這可以通過以下testfile()功能完成:
import doctest
doctest.testfile("example.txt")
該短腳本執(zhí)行并驗證文件中包含的任何交互式Python示例example.txt。文件內(nèi)容被視為一個巨大的文檔字符串; 該文件不需要包含Python程序!例如,也許example.txt包含這個:
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
運行doctest.testfile("example.txt")然后在這個文檔中找到錯誤:
File "./example.txt", line 14, in example.txt
Failed example:
factorial(6)
Expected:
120
Got:
720
與testmod()一樣,testfile()除非例子失敗,否則不會顯示任何內(nèi)容。如果一個例子失敗了,那么失敗的例子和失敗的原因?qū)⒈淮蛴〉綐藴瘦敵鲋?,格式為testmod()。
默認情況下,testfile()查找調(diào)用模塊目錄中的文件。有關可用于指示其在其他位置查找文件的可選參數(shù)的說明,請參見Basic API一節(jié)。
就像testmod(),testfile()可以通過-v命令行開關或可選的關鍵字參數(shù)verbose來設置詳細程度。
自Python 2.6以來,還有一個用于運行的命令行快捷方式testfile()。您可以指示Python解釋器直接從標準庫運行doctest模塊,并在命令行上傳遞文件名:
python -m doctest -v example.txt
因為文件名并不以此結(jié)束.py,因此doctest推斷它必須與其一起運行testfile(),而不是testmod()。
有關更多信息testfile(),請參閱基本API一節(jié)。
更多建議: