用例编写规则、命令行执行用例、用例执行的先后顺序
用例编写规则:(按以下规则编写,否则pytest不会正常执行到用例)
文件名以 test_*.py 开头和 *_test.py 结尾的文件
函数 以test_开头
类 以Test开头,且不能包含 __init__ 方法
类里面的方法 以test_开头
所有的包 pakege 必项要有__init__.py 文件
断言必须使用assert(py的原生断言方法)
执行用例:(命令行)
查看帮助(可用参数): pytest -h (pytest --help)
执行某个目录下所有用例 : pytest (一般情况下都默认这样运行,默认查找所有符合的用例运行)
执行某个.py文件内用例: pytest xx.py
执行指定的文件内某个函数、方法: pytest test_demo.py::test_func 、pytest test_demo.py::TestClass::test_method (::表示某节点,可用来分隔使用,这样可以指定运行))
运行某个mark标记的用例: pytest -m login (运行所有被装饰器@pytest.mark.login修饰的用例,即只要用例前有这个装饰器标记的,都会被运行 )
运行用例遇到错误时立即停止: pytest -x test_demo.py(想不停止的话,就普通的运行就行:pytest)
运行用例达到指定错误数量时停止: pytest --maxfail=5(这表示用例运行达到5个错误时,会停止运行)
关闭信息: --tb=no
只输入assert的错误信息: --tb==short
用一行来展示错误信息: --tb=line (只显示错误的位置行数)
显示测试函数的执行速度: --duration=0
在编辑器pycharm内进行执行:(三种方式来执行:直接右键run,unittest,pytest)
随便写一个函数然后右键运行: 会出现:run 函数名
当脚本导入使用了unittest时,右键运行会出现: run 'Unittests in xxx'
那么:当脚本导入使用了pytest时,要想使用pytest去运行,就要先设置运行器了:
Setting--Tools--Python Integrated Tools--项目名称--Default test runner--选择py.test
然后鼠标选中,右键可见:run 'py.test in xxx'(这样就可以pytest方式进行运行脚本了)
用例执行的先后顺序:
如上:
执行后会按照脚本用例顺序执行(从上至下);
而不同于unittest(‘unittest中执行脚本用例时,根据用例的字母ASCII码的排序来执行,数字也按照数字从小到大来执行’)