pytest是Python比較流行的單元測試框架,能夠方便地編寫和運行測試用例。pytest支持各種標記來運行特定的測試用例,其中-m標記是最常用的標記之一。本文將從多個方面詳細介紹pytest -m標記的用法。
一、標記基本用法
1、pytest -m的基本語法如下:
pytest -m [標記名]
2、示例代碼:
import pytest
@pytest.mark.need_test
def test_login():
assert login()
@pytest.mark.skip(reason="not need")
def test_search():
assert search()
@pytest.mark.dependency(depends=["test_login"])
def test_add_cart():
assert add_cart()
3、上述代碼實現了三個測試用例,其中每個用例都使用了pytest.mark來打標記。need_test標記表示這個用例需要被測試,skip標記表示這個用例不需要測試,dependency標記表示這個用例依賴test_login用例執行後才能執行。
4、運行所有有標記為need_test的用例,可以執行如下命令:
pytest -m need_test
二、多標記組合使用
1、pytest -m標記支持多標記組合運行,只需要將多個標記名用and或or組合即可。
2、示例代碼:
import pytest
@pytest.mark.need_test
def test_login():
assert login()
@pytest.mark.slow
def test_buy_goods():
assert buy_goods()
@pytest.mark.dependency(depends=["test_login"])
@pytest.mark.slow
def test_add_cart():
assert add_cart()
3、可以通過以下命令,同時運行need_test和slow標記的測試用例:
pytest -m "need_test and slow"
三、全局標記與局部標記
1、pytest還支持全局標記和局部標記,全局標記可以在配置文件中設置,而局部標記只適用於當前目錄及其子目錄。
2、全局標記示例代碼:
#在pytest.ini中設置全局標記
[pytest]
markers =
need_test: test need to run
slow: test is slow
#test_sample.py使用全局標記
import pytest
@pytest.mark.need_test
def test_login():
assert login()
3、通過如下命令,運行示例代碼中標記為need_test的用例:
pytest test_sample.py -m need_test
4、局部標記示例代碼:
#conftest.py文件定義局部標記
import pytest
def pytest_collection_modifyitems(items):
for item in items:
if 'add_cart' in item.nodeid:
item.add_marker(pytest.mark.slow)
#test_sample.py使用局部標記
import pytest
def test_login():
assert login()
def test_add_cart():
assert add_cart()
5、運行示例代碼中局部標記為slow的用例,可以使用如下命令:
pytest -m slow
四、標記選擇器
1、pytest -m支持多個標記之間的選擇器,可以使用not、parentheses、and、or等選擇器。
2、示例代碼:
import pytest
@pytest.mark.need_test
def test_login():
assert login()
@pytest.mark.slow
def test_buy_goods():
assert buy_goods()
@pytest.mark.dependency(depends=["test_login"])
@pytest.mark.slow
def test_add_cart():
assert add_cart()
3、可以通過以下命令,先排除need_test標記的用例,再運行其他用例:
pytest -m "not need_test"
4、可以通過以下命令,同時運行mark1標記和mark2標記中的用例:
pytest -m "(mark1 and mark2)"
五、總結
本文圍繞着pytest -m標記的使用方式進行了介紹,包括標記基本使用、多標記組合使用、全局標記與局部標記、標記選擇器。
在實際工作中,合理利用pytest -m標記,能夠很好地提高測試用例的組織形式和可讀性,提高測試效率,減少測試成本。
原創文章,作者:IMIHV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/349419.html