默认情况下pytest
会测试所有的函数,但是有些时候我们只想测试指定的函数,这就需要用到mark
@pytest.mark.finished
@pytest.mark.unfinished
@pytest.mark.skip 跳过
import pytest
@pytest.mark.finished
def test1_fun():
assert 1 == 1
@pytest.mark.unfinished
def test2_fun():
assert 1 == 1
默认两个方法都测试
PS D:\code\test> pytest test.py
platform win32 -- Python 3.6.5, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
rootdir: D:\code\test, inifile:
plugins: remotedata-0.2.1, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
collected 2 items
test.py .. [100%]
========================== 2 passed in 0.04 seconds ===========================
只测试finished
PS D:\code\test> pytest -m finished test.py
============================= test session starts =============================
platform win32 -- Python 3.6.5, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
rootdir: D:\code\test, inifile:
plugins: remotedata-0.2.1, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
collected 2 items / 1 deselected
test.py . [100%]
=================== 1 passed, 1 deselected in 0.05 seconds ====================
只测试unfinished
PS D:\code\test> pytest -m finished test.py
============================= test session starts =============================
platform win32 -- Python 3.6.5, pytest-3.5.1, py-1.5.3, pluggy-0.6.0
rootdir: D:\code\test, inifile:
plugins: remotedata-0.2.1, openfiles-0.3.0, doctestplus-0.1.3, arraydiff-0.2
collected 2 items / 1 deselected
test.py . [100%]
=================== 1 passed, 1 deselected in 0.05 seconds ====================
skip
直接跳过
@pytest.mark.skipif(conn.__version__ < '0.2.0',
reason='not supported until v0.2.0')
def test_api():
pass
python test.py
https://learning-pytest.readthedocs.io/zh/latest/doc/test-function/skip.html