19. Pytest执行用例的多种方式
一、前言
我们在前面的内容中其实已经讲解了pytest用例的执行,本节课对主要针对执行用例的方式进行一个汇总。
二、学习目标
1.通过IDE运行
2.通过命令行运行
3.通过main函数运行
4.通过pytest.ini运行
三、知识点
1.【通过IDE运行】
-
步骤一:Pycharm运行方式配置
在使用IDE如Pycharm运行用例之前,需要修改一个配置,来指定pytest模式来执行项目:
-
步骤二:点击箭头运行
修改完配置后,测试用例前面会有绿色的箭头,点击箭头我们可以指定用例运行测试用例,也可以直接右键整个py文件运行全部用例:
2.【通过命令行运行】
-
语法:
#命令行中Terminal中输入 pytest 【运行参数】 【指定用例】 #如pytest -s -v test_demo.py
-
运行参数
pytest -s test_demo.py #显示代码中的print或日志打印 pytest -v test_demo.py #显示用例详情 pytest -q test_demo.py #简化显示,与-v相反 pytest --collect-only test_demo.py #检查哪些测试用例会被运行 pytest -k "not 02" test_demo.py #选择用例运行,可以用not,or pytest -x test_demo.py #遇到失败用例自动停止运行 pytest --maxfail=2 test_demo.py #达到最大失败数自动停止运行 pytest --tb=short test_demo.py #失败信息的显示方式,三个固定值short : 仅输出assert 的一行以及系统判定的内容;line : 只使用一行输出显示所有的错误信息;no : 屏蔽所有的回溯信息 pytest -m "markname" test_demo.py #指定标签名运行,配合前面讲的mark标签装饰器 pytest -n 3 test_demo.py #分布式运行,指定3个进程,配合前面讲的xdist插件 pytest --reruns 3 --reruns-delay 1 test_demo.py #失败重复运行3次,每次1s间隔,配合前面讲的pytest-rerunfailures插件 pytest --html=report.html --self-contained-html test_demo.py #输出测试报告,配合前面讲的pytest-html插件 pytest --alluredir ./result/ test_demo.py #输出allure报告数据到result目录,配合前面讲的allure-pytest插件
注:以上运行参数可以互相组合使用。
-
指定用例
pytest -s testsuit/ #指定文件夹下所有用例运行 pytest -s testsuit/test_demo.py #指定测试文件所有用例运行 pytest -s testsuit/test_demo.py::TestCase #指定测试类的所有用例运行,文件内用::连接 pytest -s testsuit/test_demo.py::TestCase::test_case_01 #指定单个测试用的所有用例运行
3.【通过main函数运行】
除了命令行运行,我们可以使用函数来调用执行测试用例。
-
语法:
pytest.main(args=None, plugins=None) #传参数列表,如['-s','test_demo.py']
-
参数:
args
为运行测试的一些参数,和命令行运行时的参数相同,在列表List
里以字符串str
的形式,多参数以 “,” 隔开,也可以传入测试case的路径。plugins
为插件参数,也是列表形式,是运行 pytest 时运行下载的插件的参数。 -
代码示例
pytest.main('-v','test_demo.py')
4.【通过pytest.ini运行】
最后一种也是最常用的一种方式,就是在 pytest.ini
文件中配置 pytest 的运行参数。
pytest.ini
是优先级最高的一种运行方式,可以改变pytest的默认运行方式。
可以使用 pytest -h
查看 pytest.ini
文件的参数。
下节课做详细介绍。