欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

12.pytest_mark标记测试用例

程序员文章站 2022-06-19 10:14:09
pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行。一个大项目自动化用例时,可以划分多个模块,也可以使用标记功能,标明哪些是模块1用例,哪些是模块2的,运行代码时候指定mark名称运行就可以mark标记1.以下用例,标记test_send_http()为webtestmport pytest@pytest.mark.webtestdef test_01(): pass # perform some webtest test for your...

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

本文地址:https://blog.csdn.net/qq_34400745/article/details/107369760

相关标签: Pytest