Pytest doctest模組 文件測試

2022-07-03 06:06:10 字數 1828 閱讀 7213

doctest 模組尋找像python互動式**的文字,然後執行這些**來確保它們的確就像展示的那樣正確執行,類似於單元測試

doctest測試用例放在兩個地方:

1、函式或者方法下的注釋裡面

2、模組的開頭

它可以用來測試**,以測試該函式、類、類方法的功能是否正確。

在函式、類或方法的說明性文件中,以》作為開始的內容表示一行測試**,並且接下來的一行則明確該測試**的輸出結果。

1

#content of test_doctest.py

2def

something():

3"""

a doctest in a docstring

4>>> something()542

6"""

7return 4289

defnum(n):

10"""

11function:斐波那契數列

12>>> num(5)

13[0, 1, 1, 2, 3]

14"""

15 titles =

16 a =0

17 b = 1

18for i in

range(n):

1920 a, b = b, a+b

2122

return

titles

2324

25if

__name__ == '

__main__':

26import

doctest

27 doctest.testmod(verbose=true)

結果:

1 c:\users\administrator\pycharmprojects\untitled2\venv\scripts\python.exe c:/users/administrator/pycharmprojects/untitled2/forpytest/test_doctest.py

2trying:

3 num(5)

4expecting:

5 [0, 1, 1, 2, 3]6ok

7trying:

8something()

9expecting:

10 42

11ok

12 1items had no tests:

13__main__

14 2items passed all tests:

15 1 tests in

__main__

.num

16 1 tests in

__main__

.something

17 2 tests in 3items.

18 2 passed and

0 failed.

19test passed.

2021 process finished with exit code 0

在執行 doctest.testmod() 函式時,它會執行該模組中各成員說明性文件包含的測試**,並將執行結果和指定的結果做比對,如果一致,則什麼也不輸出;反之,則輸出以下提示資訊:

顯示在哪個原始檔的哪一行。

failed example,顯示是哪個測試用例出錯了。

expected,顯示程式期望的輸出結果。也就是在「>>>命令」的下一行給出的執行結果,它就是期望結果。

got,顯示程式實際執行產生的輸出結果。只有當實際執行產生的輸出結果與期望結果一致時,才表明該測試用例通過。

參考:官方文件:

部落格:

任務模組 報告模組 日誌模組

需求背景 報告模組 怎麼來處理這個報告的問題,報告是非常重要的一塊,1,可以看到每一次執行的情況,多少通過了,多少失敗了 2,可以看到執行的日誌,每一步的日誌,失敗了,我要知道失敗在 了,3,每次都要有報告 業務設計 1,任務列表,任務名稱,檢視任務詳情,報告列表,執行的功能,2,任務詳情,每乙個用...

模組之shutil模組模組詳解

shutil模組是高階的 檔案 資料夾 壓縮包 處理模組 shutil.copyfileobj fsrc,fdst length 將檔案內容拷貝到另乙個檔案中 shutil.copyfile src,dst 拷貝檔案 shutil.copymode src,dst 僅拷貝許可權。內容 組 使用者均不...

常用模組 time模組,datetime模組

print time.time print type time.time 1539594222.698943 時間戳是指從1970年1月1日到現在經歷秒數,返回乙個浮點數。print time.strftime y m d h m s p 需要規定格式 y年 m月 d日 h時 m分 s 分 p上午或...