pytest,有沒有興趣了解一下
- 2019 年 10 月 6 日
- 筆記
pytest是Python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。
它的優點:
簡單的單元測試
複雜的功能測試
可以跳過你想跳過的那部分測試
可以擴展
………………
那首先來安裝一下吧!
pip install -U pytest
那麼pip將會自動幫你安裝
當然如果你裝好了,它也會提示你已經裝了
可以查看一下Version:
下面我們就可以動手來試試咯。
執行測試的時候,我們只需要在測試文件test_sample所在的目錄下,運行py.test即可。pytest會在當前的目錄下,尋找以test開頭的文件(即測試文件),找到測試文件之後,進入到測試文件中尋找test_開頭的測試函數並執行。
創建一個測試文件test1.py
def fun(x):
return x+1
def test_fun():
assert fun(2)==2
之後就可以運行測試啦,終端輸入py.test即可查看程式的具體情況。
當需要編寫多個測試樣例的時候,我們可以將其放到一個測試類當中
我們可以通過執行測試文件的方法,執行上面的測試:py.test -q testdemo.py
編寫測試樣例的時候我們可能要注意以下幾點:
測試文件以test開頭
測試類以Test開頭,並且不能帶有 __init__ 方法
測試函數以test_開頭
斷言使用assert
執行pytest測試樣例的時候,我們是如何執行的呢?
最簡單的,只要終端處於當前執行py測試文件的目錄:
py.test
如果是在某個模組里運行pytest的話:
py.test test1.py
指定某個路徑去運行:
py.test somepath
只去運行某個字元表達式裡面的東西:
py.test -k stringexpression
最後一點,如何去生成測試報告:
pytest可以方便的生成測試報告,可以生成HTML的測試報告,或者xml格式的報告等等。
那我們現在來看看:
生成txt格式的報告:
py.test –resultlog=report.txt
生成xml格式的報告:
py.test –junitxml=path/log.xml
生成html格式的報告:(需要安裝一下pip install -U pytest-html)
py.test test_report.py –html=C:UsersDesktoplog.html
待續。。