1. 執(zhí)行方式
cmd執(zhí)行pytest用例有三種方法,以下三種方法都可以耍贾,一般推薦第一個(gè)
- pytest
- py.test
- python -m pytest
如果不帶參數(shù),在某個(gè)文件夾下執(zhí)行時(shí)吊趾,它會(huì)查找該文件夾下所有的符合條件的用例(查看用例設(shè)計(jì)原則)
2. 執(zhí)行規(guī)則
1.執(zhí)行某個(gè)目錄下所有的用例
pytest
文件名/
2.執(zhí)行某一個(gè)py文件下用例
pytest
腳本名稱.py
3.-k 按關(guān)鍵字匹配
pytest -k
“MyClass and not method”
4.按節(jié)點(diǎn)運(yùn)行
運(yùn)行.py模塊里面的某個(gè)函數(shù)
pytest test_mod.py::test_func
運(yùn)行.py模塊里面,測(cè)試類里面的某個(gè)方法
pytest test_mod.py::TestClass::test_method
5.標(biāo)記表達(dá)式
pytest -m slow
將運(yùn)行用@ pytest.mark.slow
裝飾器修飾的所有測(cè)試牲尺。
6.從包里面運(yùn)行
pytest —pyargs pkg.testing
這將導(dǎo)入pkg.testing
并使用其文件系統(tǒng)位置來(lái)查找和運(yùn)行測(cè)試。
- pytest -x( 遇到錯(cuò)誤時(shí)停止測(cè)試)
pytest -x test_class.py
從運(yùn)行結(jié)果可以看出烹骨,本來(lái)有3個(gè)用例缆瓣,第二個(gè)用例失敗后就沒(méi)繼續(xù)往下執(zhí)行了
D:\YOYO>pytest -x test_class.py
============================= test session starts =============================
platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0
rootdir: D:\YOYO, inifile:
collected 3 items
test_class.py .F
================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________
self = <YOYO.test_class.TestClass object at 0x0000000003A29780>
def test_two(self):
x = "hello"
> assert hasattr(x, 'check')
E AssertionError: assert False
E + where False = hasattr('hello', 'check')
test_class.py:11: AssertionError
===================== 1 failed, 1 passed in 0.05 seconds ======================
8.pytest -maxfail=num(當(dāng)用例錯(cuò)誤個(gè)數(shù)達(dá)到指定數(shù)量時(shí)喧枷,停止測(cè)試)
pytest —maxfail=1
3. pycharm配置pytest
以pytest方式運(yùn)行,需要改該工程設(shè)置默認(rèn)的運(yùn)行器:file->Setting->Tools->Python Integrated Tools->項(xiàng)目名稱->Default test runner->選擇pytes