偶然找到一個名叫 unittest
的套件,也就是單元測試用的,畢竟總不能一個一個給程式做測試。
unittest
是原本就裝在 python 裡面的,所以無須另外下載。
現在直接先看一個小程式。
1 | import unittest |
接著在底下輸入。
1 | python -m unittest test.py |
會出現以下
這邊我沒有給他一個venv,沒有直接開一個虛擬環境,如果要開的話請輸入
1 | python3 -m venv [資料夾] |
windows:
1 | [資料夾]\Scripts\activate |
macOS/Linux:
1 | source myenv/bin/activate |
再來回到 assert
這個單詞,這個字在pathon之中被譯為斷言
,用來確認滿足是否符合表達式的條件,如無則直接觸發異常,不會執行到後面的程式碼。
上面的函式只是簡單地進行相加的步驟,所以應該可以很簡單的看出來沒有TypeError
。
如果需要顯示命令列
1 | python -m unittest -h |
更多的細節則使用
1 | python -m unittest -v [檔名] |
在 unittest 的命名規範裡,test_
開頭的測試會被自動運行。
如果要跳過測試呢?
1 |
|
結果會呈現以下
還有跳過裝飾器的
1 |
裡頭的api還真的蠻多的,到目前的3.11來說坑已經不算少了,後面如果需要的話可以點擊這裡去做更多的查閱。
不過更多的,大家應該都是使用 pytest 或是 vscode 內建的方式,我個人是使用後者,畢竟對我來說比較方便一點。
這裡先提一下 pytest
,在網路上有看到官網的引導,那就隨意的撰寫一個小程式給他運行吧。
安裝
1 | pip install pytest |
接下來就隨便寫個幾行進去
1 | def test_passing(): |
運行
1 | pytest test_module.py -v |
結果
如果要跳過測試
1 |
當然還有條件
1 |
|
查閱資料