pytest 的常见参数:
- -m :只运行被标记的测试用例;
- -k:只运行与给定字符串表达式匹配的测试用例;
- -s :显示标准输出,例如print()的语句;
- -v :显示详细报告;
- -q :显示简洁报告;
- -x :用例失败时立即停止测试;
- -c file :从 file 加载配置文件;
- -l (--showlocals) :用例失败信息回溯时显示局部变量及其值;
- -rsxX :报告(r)测试用例被跳过(s)、预计失败(x)、预计失败但实际通过(X)的原因;
- -strict:禁止使用未在配置文件(pytest.ini)注册的 mark 标记;
- --maxfail=n :失败n后停止运行测试;
- --lf (--last-failed) :仅执行上次失败的用例; 注意:如果没有失败的用例或者没找到缓存文件,默认是运行所有的用例!
- --lfnf =[all, none] :与 --lf 同时使用,=all 代表找不到用例或缓存文件时执行所有用例,=none 代表找不到用 例或缓存文件时不执行测试用例;
- --ff (--failed-first) :先执行失败的用例,再执行其他用例;
- --nf (--new-first) :首先从新文件或新修改的用例开始运行测试;
- --sw (--stepwise) :在测试失败时退出,且下一次在测试失败的用例开始测试;
- --stepwise-skip :忽略第一个失败的测试,在第二次测试失败时退出;
- --keep-duplicates : 不断重复的测试;
- --durations=n :显示执行最慢的n条用例; 注意:除非添加参数 -vv,默认情况下,否则pytest不会显示<0.01s的测试时间;
- --fixtures :显示所有可用的 fixture;
- --tb=style :堆栈回溯信息打印模式 (auto/long/short/line/native/no]);
- --setup-show :显示fixture执行步骤;
- --cache-show=[CACHESHOW] :显示缓存内容,不执行收集或测试;
- --cache-clear :运行前清除pytest缓存;
- --continue-on-collection-errors:即使发生收集(收集用例阶段)错误,也强制执行测试;
- --rootdir=ROOTDIR :定义测试的根目录;
-
--color=color :终端输出的颜色(yes/no/auto);
-
--collect-only :只收集用例,不执行;
-
--assert=MODE : “plain”不执行任何断言调试,“rewrite”重写测试模块中的assert语句,以提供assert表达式信息;
pytest 的常用插件:
- 用例失败后自动重新运行:pytest-rerunfailures,使用方法:
- 安装插件:pip install pytest-rerunfailures
- pytest test_x.py --reruns=n (失败后重运行的次数)
- 重复运行测试:pytest-repeat,使用方法:
- 安装插件:pip install pytest-repeat
- pytest test_x.py --count=n (重复运行的次数)
- 多线程执行测试任务:pytest-xdist,使用方法:
- 安装插件:pip install pytest-xdist
- pytest test_x.py -n [N, auto] (N:指定并发的进程数,auto:自动检测cpu数量)
- 为测试设置时间限制:pytest-timeout,使用方法:
- 安装插件:pip install pytest-timeout
- pytest test_x.py --timeout=n (时间限制,单位:秒)
- 用例失败时立刻显示错误的堆栈回溯信息:pytest-instafail,使用方法:
- 安装插件:pip install pytest-instafail
- pytest test_x.py --instafail
- 显示色彩和进度条(也能显示错误的堆栈信息):pytest-sugar,使用方法:
- 安装插件即可生效:pip install pytest-sugar
- 借助浏览器完成自动化测试:pytest-selenium,可以启动一个浏览器,打开网址,运行web应用,填充表单等等;