一岩喷、命名要求
- 模塊(py文件)一般以test_開頭
- pytest的測試集(類)必須以Test_開頭
- 用例(方法,可以單獨定義儒旬,不在類中)必須以test_開頭
也可以以_test結(jié)尾
二囊拜、運行程序pytest
1.在終端運行
-
在需要運行的py文件中右擊空白處,如下圖雹嗦,點擊open in terminal
右擊菜單列表 -
輸入pytest py文件全稱
image.png
image.png
1.1在終端運行的方法
- pytest 文件名.py
- pytest 文件名.py::類名
- pytest 文件名.py::類名::方法名
前面可以加參數(shù)
1.2在終端運行的基本參數(shù)
參數(shù)名 | 含義 |
---|---|
不帶參數(shù)執(zhí)行 | pytest,將會讀取當前路徑下所有符合規(guī)則的文件,類合是,方法了罪,函數(shù)全部執(zhí)行 |
-v | 打印詳細運行的日志信息,方便定位問題 |
-s | 可以在控制臺輸出結(jié)果聪全,當代碼中有用到print語句輸出信息時泊藕,不加這個參數(shù)的話,控制臺是不會顯示print的內(nèi)容的 |
-k | 使用該參數(shù)可以指定運行滿足要求的用例(在當前目錄下查看所有test開頭的py文件中是否有符合要求的) |
k 參數(shù)使用詳情:不能在pytest.main中加k參數(shù)
- pytest -k "類名"
- pytest -k "方法名"
- pytest -k "類名 and not 方法名"
主代碼
運行結(jié)果
2.在py文件中運行
打開【file】——【settings】难礼,看下圖設(shè)置pytest與Unittest運行方法
設(shè)置pytest運行環(huán)境
三娃圆、斷言
pytest可以直接使用Python內(nèi)置斷言assert
- assert * is *
- assert * == *
- assert * in *
其實就assert加表達式,表達式正確就通過蛾茉,否則失敗
四讼呢、html報告
1.安裝pytest-html
pip install pytest-html
2.使用
import pytest
if __name__ == '__main__':
#運行全部
pytest.main(['-s', '-v', '--html=report.html'])
#可以運行指定運行單個py,或者谦炬,單個類悦屏,或者單個方法,如下:
#pytest.main(['-s', '-v', 'test_pytest.py::Test_suit::test_case1','--html=report.html'])
結(jié)果
3.注意
- 生成html的文件必須要要和主文件分開做一個py文件
- 這種方法我在終端不能生成html