Python中pytest框架二

282 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

测试用例运行不需要像python中的函数一样,需要调用,使用pytest进行搜索发现用例和加载用例执行,使用Pytest调用用例有两种方式

1、通过命令运行

使用pytest加指定的路径/测试模块或者测试模块加测试用例就可以

运行testcase目录下所有的用例,以test开头的py文件,所有test开头的函数或者方法

pytest casetest/

运行指定目录下的测试模块,多个文件或者路径以空格隔开

pytest casetest/test_add.py

运行单个测试函数

pytest casetest/test_add.py::test_add

运行测试类

pytest casetest/test_add.py::TestAdd

运行测试方法

pytest casetest/test_add.py::TestAdd::test_add

2、代码里调用

if __name__=='__main__':
    pytest.main(['test_add.py','-v'])

3、常用的执行参数

通过pytest命令,实现了非常灵活的执行控制,常用参数如下

-v:详细显示模式,如果不加-v,执行通过的用例只显示一个点

-q:安静模式,不显示环境信息

-rxX:显示跳过,期望失败和非期望成功的用例

-s:显示用例中的一些打印print的内容

-k:-k 表达式,表示运行名称包含执行表达式的用例,其中表达式支持and or not等,eg: pytest -k “test_1 and test_2”

-m: -m 标签,标签支持 and or not,表示运行执行标签的用例, eg:pytest -m “apitest and maoyantest”

-x/--exitfrist:表示遇到失败后停止,首次失败后退出,可以确定那条用例失败 eg:pytest casetest/test_add.py -x 表示执行用例时,有失败用例后直接停止,不继续执行

-maxfails=n:表示失败n次数后退出,eg:-maxfails=3,表示3次失败后退出

--lf/--last-failed:表示执行上次失败的用例

--ff/--failed-frist:表示先执行上次失败的用例,再执行成功的用例

--collect-only:表示先只收集用例,不执行

--durations=N:表示显示执行最慢的N条用例,--durations=4,显示执行最慢的4条用例

--fixtures:表示显示所有可用的Fixture函数