用例编写规则、命令行执行用例、用例执行的先后顺序

用例编写规则:(按以下规则编写,否则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码的排序来执行,数字也按照数字从小到大来执行’)

原文地址:https://www.cnblogs.com/QiKa/p/13234762.html