cover

Pytest参数介绍

分类 参数 作用
general -k 支持python的表达式,用于筛选指定标记/方法名的用例
-m 根据用例标签来筛选用例,设置标签可以使用 @pytest.mark.<标签名>
--markers 打印标签,包括内置的,插件的,还有自定义的
-x 第一个error或failed的test就退出
--fixtures 显示可用的fixture,包括内置和自己写的,如果fixture使用 "_"开头则需要使用-v才能显示此fixture
--fixtures-per-test 展示每条用例的fixture
--pdb 当用例出现错误或者被键盘中断后,启动pdb调试
--pdbcls=modulename:classname 启动自定义pdb debugger,一般用不到这个
--trace 执行测试用例时break,进入debugger
--capture=method 标准输出/标准错误输出/标准输入的默认捕获,fd:标准输入,标准错误输出都会捕获;sys:只有向Python的sys.stdout和sys.stderr的写入行为会被捕获,不执行对文件描述符的写入的捕获;no:对print语句内容捕获,等同于 -s
-s 显示print语句的内容
--runxfail 强制运行xfail标记的用例
--lf, --last-failed 重新执行上次测试执行失败的用例,如果没有失败的用例,则执行全部用例
--ff, --failed-first 优先跑上次失败的test,tests的顺序会被打乱
--nf, --new-first 优先跑新添加的tests,剩余的按文件mtime顺序
--cache-show=[CACHESHOW] 显示缓存,默认 * 显示所有缓存,可以带参数 pytest --cache-show=cache/nodeids
--cache-clear 在执行用例前,清理pytest缓存
--lfnf={all,none}, --last-failed-no-failures={all,none} 没有last-failed缓存数据,或上次没有失败时,执行全部用例
--sw, --stepwise 逐步运行,在失败时退出,下次运行时从失败的用例开始
--stepwise-skip 跳过第一个失败的test,如果再遇到失败就退出
reporting --durations=N 显示N个最慢的setup/test的耗时,N=0时,显示所有耗时
--durations-min=N 显示N个最小的setup/test的耗时
-v, --verbose 输出详细信息
--no-header 不显示pytest消息头,只展示用例信息
--no-summary 不显示用例执行完的summary info
-q, --quiet 静默模式,不输出任何内容
--verbosity=VERBOSE 信息显示等级,貌似没啥用
-r chars -r f:显示failed信息;-r E:显示error信息;-r s:显示skipped信息;-r x:显示xfailed信息;-r X:显示xpassed信息;-r p:显示passed信息;-r P:显示 passed with output信息; -r a/A:显示 all except passed信息;-r w:显示默认告警信息;-r N:重置list
--disable-warnings, --disable-pytest-warnings 禁用pytest告警,如未注册的标记等
-l, --showlocal 用例执行失败时,打印堆栈信息,默认被禁用
--tb=style traceback打印模式,一般设置为auto即可
--show-capture={no,stdout,stderr,log,all} 失败的用例如何显示,默认为all
--full-trace 不截取traceback,默认会截断
--color=color 是否显示彩色,yes:显示颜色;no:不显示颜色;auto:自动
--code-highlight={yes,no} 代码是否高亮显示,一般用不到
--pastebin=mode 没什么用的参数,我也不知道干嘛的
--junit-xml=path 在给定的path路径下生成junit-xml风格的测试报告
--junit-prefix=str 在junit-xml输出中的classnames添加前缀
pytest-warnings -W PYTHONWARNINGS, --pythonwarnings=PYTHONWARNINGS 设置报告哪些warnings
--maxfail=num 出现num个errors或者fails就退出测试
--strict-config 解析配置文件中pytest部分时,遇到warning就抛出error
--strict-markers, --strict 发现未知标记时,抛出error,
-c file 从指定配置文件加载配置,默认为pytes.ini
--continue-on-collection-errors 在收集用例时发生错误,也会继续执行用例
--rootdir=ROOTDIR tests根目录,相对路径
collection --collect-only, --co 收集用例,但不执行
--pyargs 把所有参数解释为python包
--ignore=path 忽略测试目录,使用英文逗号分割
--ignore-glob=path path匹配多个不需要收集的测试目录,使用英文逗号分割
--deselect=nodeid_prefix 通过node id prefix反选。可以多个,使用英文逗号分隔
--confcutdir=dir 只加载相对于dir目录的conftest.py文件
--noconftest 不加载conftest.py文件
--keep-duplicates 收集重复的test文件,默认只会收集1item,加参数后会收集2items
--collect-in-virtualenv 收集本地虚拟环境目录的tests
--import-mode={prepend,append,importlib} 包导入模式,一般用不到,参考:https://www.osgeo.cn/pytest/pythonpath.html?highlight=import%20mode
--doctest-modules 文档测试,没啥用
--doctest-report={none,cdiff,ndiff,udiff,only_first_failure} 一样,也没啥用
--doctest-glob=pat 还是没啥用
--doctest-ignore-import-errors 文档测试时忽略导包错误,继续没什么用
--doctest-continue-on-failure 文档测试时出现失败继续测试,依然没什么用
test session debugging and configuration --basetemp=dir test run的base临时目录(如果存在会先删除)
-V, --version 输出pytest版本
-h, --help 打印pytest帮助信息
-p name 加载插件,一般不会控制此参数
--trace-config 查看本地安装好的第三方插件
--debug 保存debug信息到'pytestdebug.log'文件
-o OVERRIDE_INI, --override-ini=OVERRIDE_INI 覆盖ini文件配置
--assert=MODE 断言模式,默认rewrite
--setup-only 只加载fixture,不执行测试用例
--setup-show 在执行测试用例时,打印fixture步骤
--setup-plan 展示哪些用例和fixture将要被执行
logging --log-level=LEVEL 日志等级,默认 WARNING (具体日志等级参考 logging 模块中的日志等级)
--log-format=LOG_FORMAT 日志格式(具体日志格式参考 logging 模块中的日志格式)
--log-date-format=LOG_DATE_FORMA 日志日期格式(具体日志格式参考 logging 模块中的日志格式)
--log-cli-level=LOG_CLI_LEVEL cli日志等级(具体日志等级参考 logging 模块中的日志等级)
--log-cli-format=LOG_CLI_FORMAT cli日志格式(具体日志格式参考 logging 模块中的日志格式)
--log-cli-date-format=LOG_CLI_DATE_FORMAT cli日志日期格式(具体日志格式参考 logging 模块中的日志格式)
--log-file=LOG_FILE 日志文件路径
--log-file-level=LOG_FILE_LEVE 日志文件中的日志等级
--log-file-format=LOG_FILE_FORMAT 日志文件中的日志格式
--log-file-date-format=LOG_FILE_DATE_FORMAT 日志文件中的日志时间格式
--log-auto-indent=LOG_AUTO_INDENT 自动缩进传递给日志模块的多行消息。接受true | on、false | off或整数
博客已迁移至:https://linvaux.github.io/
加入