pytest用例识别规则
pytest会从当前目录递归查找所有的test_.py或_test.py的文件(包含子文件夹),收集满足以下条件的函数或方法当作测试用例:
- 不在类定义中的以test_开头的函数或方法
- 在以Test开头的类中(不能包含init方法),以test_开头的方法
- pytest也支持unittest模式的用例定义
pytest 运行常用指令项
pytest –collect-only :搜集当前目录及下级目录的测试用例个数
pytest -k “KKK” :利用你的条件表达式来 过滤 测试用例的名字,得到希望运行的测试用例
pytest -m "first_case" :m 是marker的缩写,执行自己标记的first_case测试用例,标记测试用例在测试用例方法前面加上@pytest.mark.first_case,其中first_case 是装饰器用于标记的内容;
pytest -x :遇到断言失败就停止执行.
pytest –lf : lf 是 last failed 的缩写,直接过滤出最后一个fail 的测试用例,有利于快速查找失败的用例
pytest –ff :是 failed first,优先运行失败的case ,再把之前运行通过的也要运行
pytest --tb=style :失败输出信息的显示方式,style 方式常用如下3种:
- --tb=no: 屏蔽所有的回溯信息,只是显示哪个文件哪个case 失败,
- --tb=line :具体到哪个assert
- --tb=short: 具体到哪个参数,列举出更详细的失败信息.
pytest.fixture()
fixture是pytest的闪光点,在pytest中fixture的功能很多,本节主要介绍用fixture的参数化功能。
-
pytest.fixture()中传入的参数为list,用例执行时,遍历list中的值,每传入一次值,则相当于执行一次用例。