1. 程式人生 > 其它 >python中doctest文件測試

python中doctest文件測試

doctest

doctest為python自帶一個測試模組,他會搜尋模組中看起來像是互動式會話的程式碼片段,然後執行並驗證結果;

使用方式1:

1、測試用例的位置必須放在整個模組檔案的開頭,或者緊接著物件宣告語句的下一行。也就是可以被__doc__這個屬性引用到的地方。並非像普通註釋一樣寫在哪裡都可以。

2、verbose引數用於控制是否輸出詳細資訊,預設為False,如果不寫,那麼執行時不會輸出任何東西,除非測試 fail。

3、啟動測試的方式是在__main__函式裡呼叫了doctest.testmod()函式。

舉例:

#coding : UTF-8
import doctest
def multiply(v1,v2):
"""
>>> multiply(10,8)
80
>>> multiply("zhangsan,",5)
'zhangsan,zhangsan,zhangsan,zhangsan,zhangsan,'
"""
return v1 * v2
def main():
doctest.testmod(verbose=True)
if __name__ == "__main__":
main()

C:\Users\USER\AppData\Local\Programs\Python\Python38\python.exe "D:/Python 3.8/pycharm/mysql/pytest.py"
Trying:
multiply(10,8)
Expecting:
80
ok
Trying:
multiply("zhangsan,",5)
Expecting:
'zhangsan,zhangsan,zhangsan,zhangsan,zhangsan,'
ok
2 items had no tests:
__main__
__main__.main
1 items passed all tests:
2 tests in __main__.multiply
2 tests in 3 items.
2 passed and 0 failed.
Test passed.

Process finished with exit code 0

使用方式二:
在沒有main函式的情況下,可以使用命令列來啟動測試;
python -m doctest test_doctest.py
使用方式三:
把測試用例寫到一個獨立檔案中,如下:
testfile.txt
>>> from test import multiply
>>> multiply(2,3)
6
>>> multiply('aaa',2)
'aaaaaa'

執行方式如下:
import doctest

doctest.testfile('testfile.txt')
學而不思則罔,思而不學則殆