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

待續。。

Exit mobile version