默认情况下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 ====================直接跳过
@pytest.mark.skipif(conn.__version__ < '0.2.0', reason='not supported until v0.2.0') def test_api(): pass python test.pyhttps://learning-pytest.readthedocs.io/zh/latest/doc/test-function/skip.html