目录识别
通过pytest.ini配置文件配置
文件识别
用例识别
pytest也可以执行unittest框架写的用例和方法
运行方式
-k 字符串表达式: 只运行与给定字符串表达式匹配的测试用例,示例:-k "add":匹配所有名称中包含add的用例('add or div' 'TestClass')
-m mark标签名:只运行被标记的测试用例
-s:显示标准输出
-v:显示详细报告
-q:显示简介报告
-x:用例失败时立即停止测试
--maxfail=n: 失败n次后停止运行测试
--lf(--last-failed): 仅执行上次失败的用例(有失败的用例或者没找到缓存文件,默认是运行所有的用例)
--lfnf=[all,none]: 与--if同时使用, =all 表示找不到用例或缓存文件时执行所有用例,
=none 表示找不到用例或者缓存文件时不执行测试用例。
示例:pytest --lf --lfnf=none
--ff(--failed-first): 先执行失败的用例,再执行其它用例
--nf(--new-first): 首先从新文件或新修改的用例开始运行测试
--sw(--stepwise): 在测试失败时退出,且下一次在测试失败的用例开始测试
--stepwise-skip :忽略第一个失败的测试,在第二次测试失败时退出
--keep-duplicates : 不断重复的测试
--durations=n :显示执行最慢的n条用例
-strict: 禁止使用未在配置文件(pytest.ini)注册的 mark 标记
-c file: 从file加载配置文件
--collect-only:只收集用例
--junitxml=./result.xml:生成执行结果文件
--setup-show:回溯fixture的执行过程
--cache-clear :运行前清除pytest缓存
更多的用法使用pytest —help查看帮助文档
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
positional arguments:
file_or_dir
通用:
-k EXPRESSION 只运行与给定子字符串表达式匹配的测试用例。表达式是一个 python 可计算表达式,
其中所有名称都与测试名称及其父类进行子字符串匹配。
例如:-k 'test_method or test_other'匹配所有名称包含'test _ method'
或'test_other'的测试函数和类的测试方法,而-k 'not test_method'匹配那些
不包含的测试函数和类的测试方法。-k 'not test_method and not test_other'
匹配不包含'test_method'和'test_other'的测试函数和类的测试方法。
此外,关键字匹配的类和函数包含额外的名称在他们的额外关键字匹配集,
以及函数的名称直接分配给他们。匹配不区分大小写。
-m MARKEXPR 只运行匹配给定标记的测试函数和类。
例如: -m 'mark1 and not mark2'.
--markers 显示标记(内置的、插件的和每个项目的)。
-x, --exitfirst 在第一个错误或测试失败时立即退出。
--fixtures,--funcargs 显示可用的fixture,按插件外观排序(带'_'的fixture仅以“-v”显示)
--fixtures-per-test 显示每个测试用例的fixture
--pdb 在出现错误或键盘中断时启动交互式Python调试器。
--pdbcls=modulename:classname
在出现错误时启动自定义交互式Python调试器。
例如:--pdbcls=IPython.terminal.debugger:TerminalPdb
--trace 运行每个测试时立即中断。
--capture=method 每个用例捕获信息的方法: fd(文件描述符,默认)|sys(系统标准的错误输出)|no(显示打印信息)|tee-sys.
-s 等价于--capture=no,显示打印信息
--runxfail 强制运行xfail标记的test
--lf, --last-failed 只重新运行在上次运行中失败的测试(如果没有失败,则重新运行所有测试)
--ff, --failed-first 运行所有的测试,但是先运行上一次运行失败的测试。
这可能会导致测试的重新排序,因此导致重复fixture中的setup/teardown。
--nf, --new-first 先从新文件开始测试,然后剩下的测试按照文件时间排序。
--cache-show=[CACHESHOW]
显示缓存内容,不执行收集或测试。可选参数:glob(默认值:“*”)。
--cache-clear 在测试运行开始时删除所有缓存内容。
--lfnf={
all,none}, --last-failed-no-failures={
all,none}
与--lf同时使用, =all 表示找不到用例或缓存文件时执行所有用例,
=none 表示找不到用例或者缓存文件时不执行测试用例。
示例:pytest --lf --lfnf=none
--sw, --stepwise 在测试失败时退出,且下一次在测试失败的用例开始测试。
--sw-skip, --stepwise-skip
忽略第一个失败的测试,但在下一个失败的测试中停止
--allure-severities=SEVERITIES_SET
以逗号分隔的严重性名称列表。
将只运行具有这些严重性的测试用例。
严重等级名称有: blocker, critical, normal, minor, trivial.
--allure-epics=EPICS_SET
以逗号分隔的episc(史诗)名字列表。
运行至少具有一个指定epics标签的测试。
--allure-features=FEATURES_SET
以逗号分隔的feature名称列表。
运行至少具有一个指定feature标签的测试。
--allure-stories=STORIES_SET
以逗号分隔的story名称列表。
运行至少具有一个指定story标签的测试。
--allure-ids=IDS_SET 以逗号分隔的IDS列表。
运行至少具有一个指定ids标签的测试。
--allure-link-pattern=LINK_TYPE:LINK_PATTERN
链接类型的Url模式。 在测试中允许短链接,比如'issue-1'。
文本将通过str.format()被格式化为完整的网址。
报告:
--durations=N 显示N个最慢的用例,每个用例运行的时间 (N=0 显示每个用例运行的时间).
--durations-min=N 包含在最慢列表中的最小持续时间(以秒为单位)。默认值为0.005s
-v, --verbose 输出详细信息
--no-header 禁用(不显示)标题
--no-summary 禁用(不显示)摘要
-q, --quiet 输出简要信息
--verbosity=VERBOSE 设置信息显示等级. 默认是0.
-r chars 显示由chars指定的额外测试摘要信息: (f)ailed, (E)rror, (s)kipped, (x)failed,
(X)passed, (p)assed, (P)assed with output, (a)ll except passed (p/P), or (A)ll. (w)arnings are
enabled by default (see --disable-warnings), 'N' can be used to reset the list. (default: 'fE').
--disable-warnings, --disable-pytest-warnings
禁用警告摘要
-l, --showlocals 在 tracebacks 中显示局部变量,默认不显示
--tb=style traceback 打印模式 (auto/long/short/line/native/no).
--show-capture={
no,stdout,stderr,log,all}
控制在失败的测试中如何显示捕获错误信息,捕获方式有:stdout/stderr/log。默认值为“all”。
--full-trace 不截取 traceback,默认会截断
--color=color 彩色终端输出(yes/no/auto).
--code-highlight={
yes,no}
是否应突出显示代码 (仅当 --color 被启用时有作用)
--pastebin=mode 发送 failed