12.pytest_mark标记测试用例

本文介绍了如何在pytest中使用自定义标记来组织和筛选测试用例。通过标记,可以将大型项目的测试用例按模块划分,并根据标记名称选择性地运行特定模块的测试。内容涵盖如何指定函数节点ID、匹配用例名称以及在PyCharm中运行标记测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行。一个大项目自动化用例时,可以划分多个模块,
也可以使用标记功能,标明哪些是模块1用例,哪些是模块2的,运行代码时候指定mark名称运行就可以

mark标记

1.以下用例,标记test_send_http()webtest

mport pytest

@pytest.mark.webtest
def test_01():
    pass # perform some webtest test for your app

def test_02():
    pass

def test_03():
    pass

class TestClass:
    def test_method(self):
        pass

if __name__ == "__main__":
    pytest.main(["-s", "test_webtest.py", "-m=webtest"])

运行:

  1. 只运行用webtest标记的测试,cmd运行的时候,加个-m 参数,指定参数值webtest
pytest -v -m webtest
  1. 如果不想执行标记webtest的用例,那就用"not webtest"
pytest -v -m "not webtest"

-v 指定的函数节点id

如果想指定运行某个.py模块下,类里面的一个用例,如:TestClass里面test_method用例
每个test_开头(或_test结尾)的用例,函数(或方法)的名称就是用例的节点id,指定节点id运行用-v 参数

pytest -v test_webtest.py::TestClass::test_method
if __name__ == "__main__":
    pytest.main(["-v", "test_webtest.py::TestClass::test_method"])

当然也能选择运行整个class

pytest -v test_webtest.py::TestClass

能选择多个节点运行,多个节点中间空格隔开

 pytest -v test_webtest.py::TestClass test_webtest.py::test_01

pycharm运行参考

if __name__ == "__main__":
    pytest.main(["-v", "test_testweb.py::TestClass", "test_testweb.py::test_01"])

-k 匹配用例名称

可以使用-k命令行选项指定在匹配用例名称的表达式

pytest -v -k 01

也可以运行所有的测试,根据用例名称排除掉某些用例:

$ pytest -k "not test_01" -v

也可以同时选择匹配 多个测试用例

$ pytest -k "test_01 or test_02" -v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值