doctest在docstring的部分加入測試代碼,以一種簡單的方式進行測試。html
示例代碼:python
#dtest.py import doctest def add(x, y): """ >>> add(1, 2) 3 """ return x + y def main(): pass if __name__ == '__main__': main()
運行python -m doctest -v dtest.py 框架
若是doctest經過,不會有任何輸出。能夠加-v參數來查看測試細節。ide
注意的地方測試
1.">>>"與測試代碼之間有個空格。htm
2.指望的測試結果與docstring之間要有一個空行。教程
""" >>> add(1, 2) 3 a docstring #這個會被認爲是測試輸出的一部分 """
應該寫成這樣文檔
""" >>> add(1, 2) 3 a docstring """
做用string
官方文檔提到的應用情景:it
1.經過驗證例子(doctest)檢查模塊的docstring是最新的。
有時候會出現代碼已經改變但docstring沒有更新的狀況,在docstring中加入doctest能夠儘可能避免這種狀況的發生。
2.迴歸測試
個人理解是當測試未經過的時候,能夠把用例寫在docstring裏,能夠方便的進行迴歸測試。
3.做爲包或庫的教程示例
一個能夠執行的示例比大段的說明性文字更直觀有效
相比於unittest模塊,doctest功能比較簡單,能夠很輕鬆的拿來用,是大型測試框架的有機補充。
參考
[1] http://docs.python.org/release/2.6.8/library/doctest.html
[2] http://www.doughellmann.com/PyMOTW/doctest/