当前位置: 移动技术网 > IT编程>软件设计>架构 > 12.pytest_mark标记测试用例

12.pytest_mark标记测试用例

2020年07月17日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网