python学习之pytest测试框架【pytest命令】
【pytest命令】
pytest会在当前文件以及子目录下寻找测试文件,然后运行搜索的测试代码,pytest会递归遍历每一个目录及其子目录,只要你遵守pytest的命名规则(自动搜索素有待执行的测试用例)
1、命名规则如下几点如下:
测试文件应当命名为“test_*.py”或者“_test.py”结尾
测试函数、测试类方法应当命名为“test_”开头
测试类应当名为“Test”开头
2、在pytest中,测试函数可能返回多种结果,不只是通过或失败。如下:
PASSED(.):测试通过
FAILED(F):测试失败
SKIPED(s):测试未被执行,指定测试跳过执行
xfail(x):预期测试失败,并且确实失败
XPASS(X):预期测试失败,但实际上运行通过,不符合预期
ERROR(E):测试用例之外的代码触发的异常
当不指定文件直接pytest运行时,那么pytest会运行当前目录下的所有测试文件
如下:运行当前目录下的所有测试文件
如果在pytest中指定了需要测试的文件名或者目录,或者预先切换到需要运行的目录
如下:指定目录、指定测试文件及执行目录下的测试文件等操作
运行单个测试用例
如下:直接在指定文件后方添加::test_name
使用命令行选项
1、--collect-only选项,该选项的输出内容可以作为一种参照,展示当前目录下的全部测试用例
2、-k 选项允许你是用表达式指定希望运行的测试用例
3、-m 选项用于标记(marker)测试并分组,以便快速选中并运行
4、-x 选项只统计当前层级下的用例总数,并运行当前层级下的用例,遇到用例运行出错会全局停止执行
5、--maxfail=num 明确执行几次失败后停止(num代表次数)
6、--tb=no 关闭错误堆栈回溯,用例显示运行失败,失败的信息不展示了
7、--lf(--last-faied) 定位到最后一个失败的测试用例重新运行
8、--ff (--failed-first)选项与--last-failed选项的作用基本相同,不同之处在于--ff会运行完剩余的测试用例
9、-v(--verbose)选项输出的信息会更详细,最明显的是每一个测试用例都会显示名字和结果,而不再是一个点或字符
10、-q(--quiet)选项是简化输出信息
11、-l (--showlocals)选项是失败测试用例由于被堆栈追踪,所以局部变量及其值都会显示出来
12、--tb=style选项决定捕捉到失败时输出信息的显示方式,pytest会列举出失败信息,出现哪一行,是什么失败,怎么失败的,此过程我们称之为“信息回溯”
--tb=no选项是屏蔽全部回溯信息
--tb=line选项则告诉我们错误的位置
--tb=short选项显示的回溯信息比前两种模式更详细
--tb=long选项输出最为详细的信息回溯
--tb=native选项只输出python标准库的回溯信息,不显示额外信息
--tb=auto选项是默认选项,如果有多个测试用例失败,仅打印第一个和最后一个回溯信息(格式和long模式的一致)
13、--duration=N 选项是可以加快测试用例的节奏,它不关心测试时如何运行的,只统计测试过程中哪几个阶段是最慢的,它会显示最慢的N个阶段,耗时越长越靠前,如果--duration=0,则会将所有阶段按耗时从长到短排序后显示
14、--version选项是可以显示当前pytest版本及安装目录
15、-h(--help)选项
学习总结,仅供参考,如有疑义,欢迎找茬.....