pytest支持自定义标记,可以将项目划分多个模块,然后按照指定模块执行
mark标记
demo test_m.py
只运行web标记的测,在cmd运行的时候加-m web,指定参数值web
pytest -v -m web/直接在编辑器使用["-s", "test_server.py", "-m=web]
如果不想执行标记web的用例,就使用pytest -v -m “not web”
-v 指定函数节点id
如想要运行某个.py模块下类的一个用例,如TestClass里面的test_method用例,每个test_开头的用例,函数的明细就是用例的节点id,指定节点id运行用-v 参数
pytest -v test_m.py::TestClass::test_method
也可以运行整个class
>pytest -v test_m.py::TestClass
也可以运行多个节点,多个节点之间用空格隔开
pytest -v test_server.py::TestClass test_server.py::test_send_http
-k匹配用例名称
可以使用-k命令运行指定在匹配用例名称的表达式
pytest -v -k http
也可以排除某些用例
pytest -k “not send_http” -v
同时也可以选择匹配多个
pytest -k “http or quick” -v
pytest.main()的使用
pytest在运行用例的时候,一般会使用命令行去执行,但也可以像unittest框架一样,在该项目的根目录下写一个run_all.py的文件,运行该文件即可
pytest.main()
pytest.main(args,plugins) args:传一个list对象,list里面是多个命令行的参数 plugins 传一个list对象,在list里面初始化的时候注册的插件
如果不带任何参数,那么在执行的效果与cms直接运行pytest命令一样,默认运行当前目录及子目录的所有文件夹的测试用例
带参数运行
在运行的时候&