12.pytest_mark标记测试用例
程序员文章站
2022-03-10 17:40:02
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"])
运行:
- 只运行用
webtest
标记的测试,cmd运行的时候,加个-m 参数,指定参数值webtest
pytest -v -m webtest
- 如果
不想执行标记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