一、官方文档

How to invoke pytest — pytest documentationhttps://docs.pytest.org/en/latest/how-to/usage.html?highlight=durations

二、pytest命令行详解

1、查看命令帮助

$ pytest --helpusage: pydevconsole.py [options] [file_or_dir] [file_or_dir] [...]
positional arguments:file_or_dir
general:-k EXPRESSION         only run tests which match the given substringexpression. An expression is a python evaluatableexpression where all names are substring-matched againsttest names and their parent classes. Example: -k'test_method or test_other' matches all test functionsand classes whose name contains 'test_method' or'test_other', while -k 'not test_method' matches thosethat don't contain 'test_method' in their names. -k 'nottest_method and not test_other' will eliminate thematches. Additionally keywords are matched to classesand functions containing extra names in their'extra_keyword_matches' set, as well as functions whichhave names assigned directly to them. The matching iscase-insensitive.-m MARKEXPR           only run tests matching given mark expression.For example: -m 'mark1 and not mark2'.--markers             show markers (builtin, plugin and per-project ones).-x, --exitfirst       exit instantly on first error or failed test.--fixtures, --funcargsshow available fixtures, sorted by plugin appearance(fixtures with leading '_' are only shown with '-v')--fixtures-per-test   show fixtures per test--pdb                 start the interactive Python debugger on errors orKeyboardInterrupt.--pdbcls=modulename:classnamestart a custom interactive Python debugger on errors.For example:--pdbcls=IPython.terminal.debugger:TerminalPdb--trace               Immediately break when running each test.--capture=method      per-test capturing method: one of fd|sys|no|tee-sys.-s                    shortcut for --capture=no.--runxfail            report the results of xfail tests as if they were notmarked--lf, --last-failed   rerun only the tests that failed at the last run (or allif none failed)--ff, --failed-first  run all tests, but run the last failures first.This may re-order tests and thus lead to repeatedfixture setup/teardown.--nf, --new-first     run tests from new files first, then the rest of thetests sorted by file mtime--cache-show=[CACHESHOW]show cache contents, don't perform collection or tests.Optional argument: glob (default: '*').--cache-clear         remove all cache contents at start of test run.--lfnf={all,none}, --last-failed-no-failures={all,none}which tests to run with no previously (known) failures.--sw, --stepwise      exit on test failure and continue from last failing testnext time--sw-skip, --stepwise-skipignore the first failing test but stop on the nextfailing test
reporting:--durations=N         show N slowest setup/test durations (N=0 for all).--durations-min=N     Minimal duration in seconds for inclusion in slowestlist. Default 0.005-v, --verbose         increase verbosity.--no-header           disable header--no-summary          disable summary-q, --quiet           decrease verbosity.--verbosity=VERBOSE   set verbosity. Default is 0.-r chars              show extra test summary info as specified by 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-warningsdisable warnings summary-l, --showlocals      show locals in tracebacks (disabled by default).--tb=style            traceback print mode (auto/long/short/line/native/no).--show-capture={no,stdout,stderr,log,all}Controls how captured stdout/stderr/log is shown onfailed tests. Default is 'all'.--full-trace          don't cut any tracebacks (default is to cut).--color=color         color terminal output (yes/no/auto).--code-highlight={yes,no}Whether code should be highlighted (only if --color isalso enabled)--pastebin=mode       send failed|all info to bpaste.net pastebin service.--junit-xml=path      create junit-xml style report file at given path.--junit-prefix=str    prepend prefix to classnames in junit-xml output--html=path           create html report file at given path.--self-contained-htmlcreate a self-contained html file containing allnecessary styles, scripts, and images - this means thatthe report may not render or function where CSPrestrictions are in place (seehttps://developer.mozilla.org/docs/Web/Security/CSP)--css=path            append given css file content to report style file.
pytest-warnings:-W PYTHONWARNINGS, --pythonwarnings=PYTHONWARNINGSset which warnings to report, see -W option of pythonitself.--maxfail=num         exit after first num failures or errors.--strict-config       any warnings encountered while parsing the `pytest`section of the configuration file raise errors.--strict-markers      markers not registered in the `markers` section of theconfiguration file raise errors.--strict              (deprecated) alias to --strict-markers.-c file               load configuration from `file` instead of trying tolocate one of the implicit configuration files.--continue-on-collection-errorsForce test execution even if collection errors occur.--rootdir=ROOTDIR     Define root directory for tests. Can be relative path:'root_dir', './root_dir', 'root_dir/another_dir/';absolute path: '/home/user/root_dir'; path withvariables: '$HOME/root_dir'.
collection:--collect-only, --co  only collect tests, don't execute them.--pyargs              try to interpret all arguments as python packages.--ignore=path         ignore path during collection (multi-allowed).--ignore-glob=path    ignore path pattern during collection (multi-allowed).--deselect=nodeid_prefixdeselect item (via node id prefix) during collection(multi-allowed).--confcutdir=dir      only load conftest.py's relative to specified dir.--noconftest          Don't load any conftest.py files.--keep-duplicates     Keep duplicate tests.--collect-in-virtualenvDon't ignore tests in a local virtualenv directory--import-mode={prepend,append,importlib}prepend/append to sys.path when importing test modulesand conftest files, default is to prepend.--doctest-modules     run doctests in all .py modules--doctest-report={none,cdiff,ndiff,udiff,only_first_failure}choose another output format for diffs on doctestfailure--doctest-glob=pat    doctests file matching pattern, default: test*.txt--doctest-ignore-import-errorsignore doctest ImportErrors--doctest-continue-on-failurefor a given doctest, continue to run after the firstfailure
test session debugging and configuration:--basetemp=dir        base temporary directory for this test run.(warning:this directory is removed if it exists)-V, --version         display pytest version and information aboutplugins.When given twice, also display information aboutplugins.-h, --help            show help message and configuration info-p name               early-load given plugin module name or entry point(multi-allowed).To avoid loading of plugins, use the `no:` prefix, e.g.`no:doctest`.--trace-config        trace considerations of conftest.py files.--debug               store internal tracing debug information in'pytestdebug.log'.-o OVERRIDE_INI, --override-ini=OVERRIDE_INIoverride ini option with "option=value" style, e.g. `-oxfail_strict=True -o cache_dir=cache`.--assert=MODE         Control assertion debugging tools.'plain' performs no assertion debugging.'rewrite' (the default) rewrites assert statements intest modules on import to provide assert expressioninformation.--setup-only          only setup fixtures, do not execute tests.--setup-show          show setup of fixtures while executing tests.--setup-plan          show what fixtures and tests would be executed but don'texecute anything.
logging:--log-level=LEVEL     level of messages to catch/display.Not set by default, so it depends on the root/parent loghandler's effective level, where it is "WARNING" bydefault.--log-format=LOG_FORMATlog format as used by the logging module.--log-date-format=LOG_DATE_FORMATlog date format as used by the logging module.--log-cli-level=LOG_CLI_LEVELcli logging level.--log-cli-format=LOG_CLI_FORMATlog format as used by the logging module.--log-cli-date-format=LOG_CLI_DATE_FORMATlog date format as used by the logging module.--log-file=LOG_FILE   path to a file when logging will be written to.--log-file-level=LOG_FILE_LEVELlog file logging level.--log-file-format=LOG_FILE_FORMATlog format as used by the logging module.--log-file-date-format=LOG_FILE_DATE_FORMATlog date format as used by the logging module.--log-auto-indent=LOG_AUTO_INDENTAuto-indent multiline messages passed to the loggingmodule. Accepts true|on, false|off or an integer.
custom options:--metadata=key value  additional metadata.--metadata-from-json=METADATA_FROM_JSONadditional metadata from a json string.
[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:markers (linelist):   markers for test functionsempty_parameter_set_mark (string):default marker for empty parametersetsnorecursedirs (args): directory patterns to avoid for recursiontestpaths (args):     directories to search for tests when no files ordirectories are given in the command line.filterwarnings (linelist):Each line specifies a pattern forwarnings.filterwarnings. Processed after-W/--pythonwarnings.usefixtures (args):   list of default fixtures to be used with this projectpython_files (args):  glob-style file patterns for Python test modulediscoverypython_classes (args):prefixes or glob names for Python test class discoverypython_functions (args):prefixes or glob names for Python test function andmethod discoverydisable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):disable string escape non-ascii characters, might causeunwanted side effects(use at your own risk)console_output_style (string):console output: "classic", or with additional progressinformation ("progress" (percentage) | "count").xfail_strict (bool):  default for the strict parameter of xfail markers whennot given explicitly (default: False)enable_assertion_pass_hook (bool):Enables the pytest_assertion_pass hook.Make sure todelete any previously generated pyc cache files.junit_suite_name (string):Test suite name for JUnit reportjunit_logging (string):Write captured log messages to JUnit report: one ofno|log|system-out|system-err|out-err|alljunit_log_passing_tests (bool):Capture log information for passing tests to JUnitreport:junit_duration_report (string):Duration time to report: one of total|calljunit_family (string):Emit XML for schema: one of legacy|xunit1|xunit2doctest_optionflags (args):option flags for doctestsdoctest_encoding (string):encoding used for doctest filescache_dir (string):   cache directory path.log_level (string):   default value for --log-levellog_format (string):  default value for --log-formatlog_date_format (string):default value for --log-date-formatlog_cli (bool):       enable log display during test run (also known as "livelogging").log_cli_level (string):default value for --log-cli-levellog_cli_format (string):default value for --log-cli-formatlog_cli_date_format (string):default value for --log-cli-date-formatlog_file (string):    default value for --log-filelog_file_level (string):default value for --log-file-levellog_file_format (string):default value for --log-file-formatlog_file_date_format (string):default value for --log-file-date-formatlog_auto_indent (string):default value for --log-auto-indentfaulthandler_timeout (string):Dump the traceback of all threads if a test takes morethan TIMEOUT seconds to finish.addopts (args):       extra command line optionsminversion (string):  minimally required pytest versionrequired_plugins (args):plugins that must be present for pytest to runrender_collapsed (bool):Open the report with all rows collapsed. Useful for verylarge reportsmax_asset_filename_length (string):set the maximum filename length for assets attached tothe html report.
environment variables:PYTEST_ADDOPTS           extra command line optionsPYTEST_PLUGINS           comma-separated plugins to load during startupPYTEST_DISABLE_PLUGIN_AUTOLOAD set to disable plugin auto-loadingPYTEST_DEBUG             set to enable debug tracing of pytest's internals
to see available markers type: pytest --markers
to see available fixtures type: pytest --fixtures
(shown according to specified file_or_dir or current dir if not specified; fixtures with leading '_' are only shown with the '-v' option
<ExitCode.OK: 0>

2、选项详解

选项(options)是命令行程序后面以连字符 "-"(原始的Unix风格) 或 "--"(GNU风格) 开头的字符或字符串, 选项后面可加参数(argument). 参数是不带 "-" 前导符的.

标号 选项 作用
1 -k

1、只运行与给定子字符串表达式匹配的测试函数或测试类,匹配不区分大小写,例如:

(1)-k 'test_a or test_b'  :表示如果测试类或函数的名称包含这不区分大小写的两个字段(test_a、test_b、Test_A等等)的任意一个,将被运行,反之,不被运行。

(2)-k 'not test_method'  :表示如果脚本名称不包含该字段,将被运行,反之,不运行

(3)-k 'not test_a and not test_b'  : 这种方式将不生效,不要这样用

2 -m

1、只运行匹配给定标记表达式的测试,使用过程:

(1)首先需要注册标签(可新建pytest.ini并创建标签)

(2)测试类或函数在使用时,使用@pytest.mark.标签名装饰

(3)-m 'mark1 and not mark2'  :表示运行标签名为mark1和标签名不为mark2的测试用例

3 --markers 1、显示标记(内置、插件和每个项目的标记),没有参数
4

-x

--exitfirst

1、在第一次测试错误或失败时立即退出,没有参数
5

--fixtures 或

--funcargs

1、显示可用的测试套件,按插件外观排序(要显示以'_'开头的fixture,则需要与'-v'参数一起用),没有参数
6 --fixtures-per-test 1、每次测试显示测试套件
7 --pdb 1、启动交互式Python调试器,用于调试
8 --pdbcls

1、在错误时启动一个定制的交互式Python调试器,也是用于调试,例如:

--pdbcls = IPython.terminal.debugger: TerminalPdb

9 --trace 1、当运行测试时,每运行一次,则立即中断一次
10 --capture

1、每测试都捕获方法,可选参数fd|sys|no|tee-sys,例如:

--capture=no, 用于显示测试函数中print()函数输出

11 -s 1、等同于--capture=no, 用于显示测试函数中print()函数输出
12 --runxfail 1、使用xfail标记希望的测试用例失败,会运行此测试用例,但是在报告中会将其列在“预期失败”(XFAIL)或“意外传递”(XPASS)部分,即事先需要使用@pytest.mark.xfail装饰
13

--lf

--last-failed

1、仅运行上次失败的测试用例
14

--ff

--failed-first

1、先运行测试失败的测试用例,再运行原先成功的测试用例
15

--nf

--new-first

1、先运行新增文件的测试用例,在运行原来文件的测试用例
16 --cache-show

1、显示缓存内容,但不执行收集或测试,可选参数:glob(默认值:'*'),例如:

pytest --cache-show

17 --cache-clear 1、用于在测试用例开始之前清空cache的内容
18

--lfnf

--last-failed-no-failures

1、运行那些以前(已知)没有失败的测试,例如:

pytest --last-failed-no-failures={all,none}

19

--sw

--stepwise

1、在测试失败时退出,并从上次失败的测试继续
下次
20

--sw-skip

--stepwise-skip

1、忽略第一个失败的测试,但在第二个测试中停止
失败的测试
21 --durations

1、显示最慢的测试用例,例如

pytest --durations=10  ,表示显示10个最慢的测试用

22 --durations-min 1、以秒为单位显示最慢的测试用例,最小持续时间为0.005秒
23

-v

--verbose

1、长显示,让显示内容更丰富,与-q相反
24 --no-header 1、去掉页眉
25 --no-summary 1、去掉概要
26

-q

--quiet

1、短显示,让内容简短显示,与-v相反
27 --verbosity

1、设置显示,默认是0,例如

pytest  --verbosity=0

28 -r

1、显示由字符指定的额外测试摘要信息,例如:

-r f :表示展示失败

-r E :表示展示错误

-r s : 表示展示跳过

-r x  :表示展示期望失败

默认 -r fE

29

--disable-warnings

--disable-pytest-warnings

1、禁用警告总结,即warnings不展示,与 -r w 相反
30

-l

--showlocals

1、在回溯中显示本地变量(默认禁用)。
31 --tb

1、回溯打印模式,可选参数auto/long/short/line/native/no,例如:

--tb=no

32  --show-capture 1、控制如何显示捕获失败测试的stdout/stderr/log。默认是“所有”。
33 --full-trace 1、不要削减任何回溯(默认是削减)
34 --color 1、彩色终端输出
... ... ...(太多了,请查阅官方文档)

python的pytest模块:pytest命令行详解相关推荐

  1. GCC 命令行详解 -L -l

    我们用gcc编译程序时,常常会用到"-I"(大写i),"-L"(大写l),"-l"(小写l)等参数,下面做个记录: GCC 命令行详解 -L ...

  2. python哪里下载import包-【Python实战】模块和包导入详解(import)

    1.模块(module) 1.1 模块定义 通常模块为一个.py文件,其他可作为module的文件类型还有".pyo".".pyc".".pyd&qu ...

  3. python中argparse模块关于 parse_args() 函数详解(全)

    目录 前言 1. 函数讲解 2. 基本用法 3. 实战讲解 前言 原理:命令行解析使用argparse包 作用:命令行传参赋值 可用在机器学习深度学习 或者 脚本运行等 了解这个函数需要了解其背后的原 ...

  4. 7Z解压缩包软件命令行详解

    7Z命令行 7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za ...

  5. Python [9] optparse模块生成命令行帮助信息

    起初,最先接触python命令行传参是sys模块的argv方法,此方法功能简单,稍微增加一些需求,就不难满足需要了 那么今天就和大家聊聊optparse模块来替换sys模块的argv方法 一.optp ...

  6. Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名 例子如下: localhost:spider zhaofan$ scrapy star ...

  7. windows winrar 指令_【转】winrar命令行详解

    从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下: WinRAR  - - 命令:WinRAR 运行的字符组合代表功能 开关:切换操作指定类型,压缩强度,压缩文件类型,等等的定义. 压 ...

  8. python中yaml模块的使用_详解Python yaml模块

    一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...

  9. php cli 判断,php cli 命令行详解【转】

    CLI PHP 的优点 多年以来,我一直都在应用不确定的工程师职责定义.我个人认为,工程师就是使用工具来实现与该工具最初开发目的无关的功能.虽然这种想法并不总是正确,但当您认真考虑它时,将发现大多数创 ...

最新文章

  1. Nginx 日志文件切割
  2. ANN:ML方法与概率图模型
  3. Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部
  4. 轻松获取LAMP环境的配置参数
  5. Python-100例(5-6) 排序斐波那契数列
  6. python语法学习第六天--集合
  7. 韩城市财政局党委举办“信心比金子还重要”演讲赛-渤锐软件提供相关软件支持
  8. 火狐插件 Katalon Recorder 生成 python 等语言 代码
  9. docker 查看镜像版本_Docker 安装及入门介绍 - 荏苒经十载
  10. springboot-jpa-querydsl
  11. G950U破解电信4G正确姿势
  12. creo绘图属性模板_creo工程图模板_Creo工程图的优越性总结(仅供参考),来自网友与君共享...
  13. 感应(异步)电机磁场定向控制电流环PI控制参数设计
  14. 第五次作业—— 四则运算“软件”开发
  15. labelme为圆环状物体打标签【tips】
  16. 什么是微服务(通俗易懂)
  17. java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
  18. Gensim库的使用——Gensim库的核心概念介绍
  19. 「Mac」突然没声音,音量键不起作用——解决办法(大部分情况)
  20. 二字动词 复盘赋能_落地、赋能、共创、共建、复盘,互联网圈的漂亮词儿,你懂几个?...

热门文章

  1. Cocos2d-x Lua库函数剖析(二)cocos2d
  2. HttpRunner 3.x快速上手
  3. 宽带拨号上网时,Win10代理设置无效
  4. 赐你一本_.武林秘籍,Lodash常用的方法帮助你快速开发。
  5. 稳扎稳打JS——执行上下文
  6. 我想学单片机,但不知从何下手
  7. 拉伯证券|A股延续强势格局 北向资金开年以来净买入超1500亿元
  8. 前NASA气象学家洛夫洛克宣判地球死刑
  9. 磊科路由虚拟服务器设置,如何设置磊科无线路由器端口映射
  10. Postman参数化