Python模塊——doctest

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/

相關文章
相關標籤/搜索