【译】Pytest使用帮助中文手册
作者:pytest官方
翻译:yixzm dream@yixzm.cn
版本:V1_20190508_1606
来源:pytest --help
用法: pytest [选项] [文件或文件夹] [文件或文件夹] [...]
示例:pytest --no-print-logs testcase_1.py testcase_2.py
选择用例执行位置的参数: [文件或文件夹]
注:
下文中提到的用例指需要执行的函数方法或类。 选项参数后的变量必须时Python能解析的语句,可使用or and等语法关键字。 命名翻译: EXPRESSION
关键字
MARKEXPR
标签
ROOTDIR
根目录
doctests
文档比对测试用例
hypothesis
用例库
常用选项:
参数
说明及示例
-k 关键字
只运行匹配到指定关键字的测试用例。关键字必须是Python能够解析的字符串。示例:
-k 'test_method or test_other' 匹配所有包含'test_method' or 'test_other'的用例;
-k 'not test_method' 匹配名字不包含'test_method'的用例。
其他关键字参考样例使用,或者直接使用用例名称。
-m 标签
只运行匹配到指定标签的测试用例。示例:
-m 'mark1 and not mark2'
--markers
展示标签(范围包括pytest内置、插件和每个项目)
-x, --exitfirst
出现错误或用例执行失败立即退出
--maxfail=指定次数
出错或用例执行失败指定次数后
--strict
标签没有定义则报错
-c 指定文件
从“指定文件”加载配置,而不是尝试找到一个隐式配置文件
--continue-on-collection-errors
即使发生收集错误,也强制执行测试。
--rootdir=根目录
定义测试的根目录,可以定义为相对路径:'root_dir', './root_dir', 'root_dir/another_dir/';绝对路径: '/home/user/root_dir';使用环境变量: '$HOME/root_dir'。
--fixtures, --funcargs
查看可用插件,按名称排序
--fixtures-per-test
查看每个用例关联的插件
--import-mode={前置,追加}
以 前置/追加 的方式引入测试模块,默认前置
--pdb
出现错误或键盘输入中断时,启动Python调试器
--pdbcls=模块名:类名
出现错误时启动自定义Python调试器,例如:
--pdbcls=IPython.terminal.debugger:TerminalPdb
--trace
用例成功运行则立刻中断
--capture=方式
每个用例的捕获方法: one of fd|sys|no.(存疑)
-s
--capture=no时手动获取
--runxfail
用例失败依然执行
--lf, --last-failed
仅重新运行上次运行失败的测试(如果没有失败则运行全部)
--ff, --failed-first
运行全部用例,但优先执行上次失败用例。执行过程中会重置。
--nf, --new-first
优先执行新文件,然后执行顺序按修改时间排序。
--cache-show
显示缓存内容,不执行收集或测试
--cache-clear
在测试运行开始时删除所有缓存内容。
--lfnf={all,none}, --last-failed-no-failures={all,none}
如果上次运行没有用例失败或者没有在缓存中找到失败信息,则更改用例状态
--sw, --stepwise
测试失败时退出并从上次失败的测试继续下一次
--stepwise-skip
忽略第一个失败的测试,但在下一个测试时停止不及格试验
报告:
参数
说明及示例
-v, --verbose
增加详细描述
-q, --quiet
减少详细描述
--verbosity=VERBOSE
设置详细描述等级
-r 选项字符
按字符指定显示额外的测试摘要信息:
(f)失败,(e)错误,(s)跳过,(x)失败,(x)通过,
(p)通过,(p)通过输出,(a)除pp外的所有。
警告始终显示,除非设置了禁用警告
--disable-warnings
禁用pytest的警告
-l, --showlocals
在回溯中显示局部变量(默认情况下禁用)。
--tb=style
回溯打印模式(自动/长/短/行/本机/否)
--show-capture={no,stdout,stderr,log,all}
控制失败用例的stdout/stderr/log显示方式。默认值为“all”(默认输出、错误输出和日志全部显示)。
--full-trace
不剪切任何回溯(默认为剪切)
--color=color
终端信息彩色输出(是/否/自动)
--durations=N
显示N个测试持续时间最长的用例(测试最慢),默认全部显示。
--pastebin=mode
向bpaste.net (pastebin服务)发送失败所有信息。
--junit-xml=path
在指定路径创建JUnit XML样式的报告文件
--junit-prefix=str
在JUnit XML输出中为类名加前缀
--result-log=path
指定结果输出路径(不建议使用自定义路径)
收集:
参数
说明及示例
--collect-only
收集用例,但不执行测试
--pyargs
尝试将所有参数解释为python包。
--ignore=path
收集期间忽略路径(允许多个)
--deselect=nodeid_prefix
在收集期间取消选择项(允许多次)。
--confcutdir=dir
仅加载与指定目录相关的conftest.py
--noconftest
不要加载任何conftest.py文件。
--keep-duplicates
保留重复的测试。
--collect-in-virtualenv
不要忽略本地virtualenv目录中的用例
--doctest-modules
在所有.py模块中运行doctests
--doctest-report={none,cdiff,ndiff,udiff,only_first_failure}
为文档比对测试用例失败时的比较信息选择其他输出格式
--doctest-glob=pat
文档比对测试用例文件匹配模式,默认:test*.txt
--doctest-ignore-import-errors
忽略文档比对测试用例中的文档导入错误
--doctest-continue-on-failure
对于给定的文档比对测试用例,在第一次失败后继续运行
测试会话调试和配置:
参数
说明及示例
--basetemp=dir
当前测试运行的临时根目录。(警告:如果这个目录已存在,将删除再新建)
--version
显示pytest lib版本和导入信息。
-h, --help
显示帮助信息和配置信息
-p name
预加载指定插件(允许多个)。要避免加载插件,请使用“no:”前缀,例如“no:doctest”。
--trace-config
跟踪conftest.py文件定义的注意事项。
--debug
将内部跟踪调试信息存储在“pytestdebug.log”中。
-o [ini选项], --override-ini=[ini选项]
使用“option=value”样式覆盖ini选项,例如“-o xfail\u strict=true-o cache\u dir=cache”。
--assert=模式
控制断言调试工具。plain“不执行断言调试。”rewrite'(默认值)在导入时重写测试模块中的assert语句,以提供assert表达式信息。
--setup-only
仅设置测试固定配置,不执行测试用例。
--setup-show
执行测试用例时显示测试固定配置
--setup-plan
显示将执行哪些测试固定配置和测试用例,但不实际执行任何操作。
告警:
参数
说明及示例
-W [PYTHON警告], --pythonwarnings=[PYTHON警告]
设置要报告的警告,请参见python本身的-w选项。
日志:
参数
说明及示例
--no-print-logs
禁止打印失败测试用例的日志内容
--log-level=日志级别
设置日志模块的日志级别
--log-format=日志格式
设置日志模块的日志格式
--log-date-format=日期格式
设置日志模块的日期格式
--log-cli-level=命令行级别
设置命令行界面的级别
--log-cli-format=命令行格式
设置日志模块的在命令行输出的日志格式
--log-cli-date-format=日期格式
设置日志模块的在命令行输出的日期格式
--log-file=日志文件
指定日志写入的文件路径
--log-file-level=日志文件级别
日志文件的日志级别
--log-file-format=日志文件格式
日志模块写入文件的日志格式
--log-file-date-format=日期格式
日志模块写入文件的日期格式
用例库(Hypothesis):
参数
说明及示例
--hypothesis-profile=用例库配置文件
加载已注册的用例库配置文件
--hypothesis-verbosity={quiet,normal,verbose,debug}
用明确定义的变量覆盖配置文件
--hypothesis-show-statistics
打印统计信息时配置
--hypothesis-seed=用例库种子
这一一个所有用例库测试用例都使用的种子
自定义选项:
参数
说明及示例
--lsof
如果lsof命令可用则执行磁盘检查(lsof命令)
--runpytest={inprocess,subprocess}
使用“inprocess”或“subprocess”(python-m main)方法在测试中运行pytest子运行
[pytest]配置文件选项(第一个找到的pytest.ini|tox.ini|setup.cfg文件):
配置选项
说明
markers (行列表)
测试用例函数的标签
empty_parameter_set_mark
空参数集的默认标记(字符串)
norecursedirs (参数)
目录模式避免递归
testpaths (参数)
没有文件或目录时要搜索测试用例的目录,即默认用例目录
console_output_style
控制台输出风格:经典或附加程序(字符串)
usefixtures (参数)
项目使用的默认测试基线列表
python_files (参数)
python测试模块disco的glob样式文件模式
python_classes (参数)
python测试类discover的前缀或全局名称
python_functions (参数)
python测试函数和方法模块的前缀或全局名称
xfail_strict (bool)
xfail markers whe的严格参数默认值
junit_suite_name (字符串)
JUnit 报告的测试用例集名称
junit_logging (字符串)
将捕获的日志消息中的其中一条写入JUnit报告
junit_duration_report (字符串)
报告持续时间:total或call
junit_family (字符串)
发送XML格式的提纲信息:legacy或xunit1或xunit2
doctest_optionflags (参数)
文档比对测试的选项标记
doctest_encoding (字符串)
文档比对测试使用的文件编码格式
cache_dir (字符串)
缓存文件夹路径
filterwarnings (行列表)
每行指定一个警告模式。
log_print (bool)
默认值,是否打印日志
log_level (字符串)
默认值,日志级别
log_format (字符串)
默认值,日志格式
log_level (字符串)
默认值,日志级别
log_format (字符串)
默认值,日志格式
log_date_format (字符串)
默认值,日期格式
log_cli (bool)
启用测试过程中的日志显示功能
log_cli_level (字符串)
默认值,命令行界面显示的日志级别
log_cli_format (字符串)
默认值,命令行界面默认格式
log_cli_date_format (字符串)
默认值,命令行界面默认日期格式
log_file (字符串)
默认值,日志文件
log_file_level (字符串)
默认值,日志文件级别
log_file_format (字符串)
默认值,日志文件格式
log_file_date_format (字符串)
默认值,日志文件日期格式
addopts (参数)
额外的命令行选项
minversion (字符串)
最低要求的Pytest版本
pytester_example_dir (字符串)
获取pytest用例示例脚本的目录
环境变量:
环境变量
说明
PYTEST_ADDOPTS
额外的命令行选项
PYTEST_PLUGINS
启动时加载的插件,使用逗号分隔
PYTEST_DISABLE_PLUGIN_AUTOLOAD
设置为禁用插件自动加载
PYTEST_DEBUG
设置为启用Pytest内部的调试跟踪
查看可用标记类型:pytest --markers
查看可用的测试基线类型:pytest --fixtures
(shown according to specified file_ordir or current dir if not specified; fixtures with leading '' are only shown with the '-v' option
(如果未指定,则根据指定的 file_ordir 或当前目录显示;带有“”的标签使用“-V”选项显示)