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=styletraceback打印模式,一般设置为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=ROOTDIRtests根目录,相对路径
collection–collect-only, –co收集用例,但不执行
–pyargs把所有参数解释为python包
–ignore=path忽略测试目录,使用英文逗号分割
–ignore-glob=pathpath匹配多个不需要收集的测试目录,使用英文逗号分割
–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=dirtest 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_LEVELcli日志等级(具体日志等级参考 logging 模块中的日志等级)
–log-cli-format=LOG_CLI_FORMATcli日志格式(具体日志格式参考 logging 模块中的日志格式)
–log-cli-date-format=LOG_CLI_DATE_FORMATcli日志日期格式(具体日志格式参考 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或整数