python的pytest模块:pytest命令行详解
一、官方文档
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命令行详解相关推荐
- GCC 命令行详解 -L -l
我们用gcc编译程序时,常常会用到"-I"(大写i),"-L"(大写l),"-l"(小写l)等参数,下面做个记录: GCC 命令行详解 -L ...
- python哪里下载import包-【Python实战】模块和包导入详解(import)
1.模块(module) 1.1 模块定义 通常模块为一个.py文件,其他可作为module的文件类型还有".pyo".".pyc".".pyd&qu ...
- python中argparse模块关于 parse_args() 函数详解(全)
目录 前言 1. 函数讲解 2. 基本用法 3. 实战讲解 前言 原理:命令行解析使用argparse包 作用:命令行传参赋值 可用在机器学习深度学习 或者 脚本运行等 了解这个函数需要了解其背后的原 ...
- 7Z解压缩包软件命令行详解
7Z命令行 7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za ...
- Python [9] optparse模块生成命令行帮助信息
起初,最先接触python命令行传参是sys模块的argv方法,此方法功能简单,稍微增加一些需求,就不难满足需要了 那么今天就和大家聊聊optparse模块来替换sys模块的argv方法 一.optp ...
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名 例子如下: localhost:spider zhaofan$ scrapy star ...
- windows winrar 指令_【转】winrar命令行详解
从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下: WinRAR - - 命令:WinRAR 运行的字符组合代表功能 开关:切换操作指定类型,压缩强度,压缩文件类型,等等的定义. 压 ...
- python中yaml模块的使用_详解Python yaml模块
一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...
- php cli 判断,php cli 命令行详解【转】
CLI PHP 的优点 多年以来,我一直都在应用不确定的工程师职责定义.我个人认为,工程师就是使用工具来实现与该工具最初开发目的无关的功能.虽然这种想法并不总是正确,但当您认真考虑它时,将发现大多数创 ...
最新文章
- Nginx 日志文件切割
- ANN:ML方法与概率图模型
- Android之解决NestedScrollView嵌套RecyclerView部分手机返回到这个页面Recyclerview顶部,而不是页面NestedScrollView顶部
- 轻松获取LAMP环境的配置参数
- Python-100例(5-6) 排序斐波那契数列
- python语法学习第六天--集合
- 韩城市财政局党委举办“信心比金子还重要”演讲赛-渤锐软件提供相关软件支持
- 火狐插件 Katalon Recorder 生成 python 等语言 代码
- docker 查看镜像版本_Docker 安装及入门介绍 - 荏苒经十载
- springboot-jpa-querydsl
- G950U破解电信4G正确姿势
- creo绘图属性模板_creo工程图模板_Creo工程图的优越性总结(仅供参考),来自网友与君共享...
- 感应(异步)电机磁场定向控制电流环PI控制参数设计
- 第五次作业—— 四则运算“软件”开发
- labelme为圆环状物体打标签【tips】
- 什么是微服务(通俗易懂)
- java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
- Gensim库的使用——Gensim库的核心概念介绍
- 「Mac」突然没声音,音量键不起作用——解决办法(大部分情况)
- 二字动词 复盘赋能_落地、赋能、共创、共建、复盘,互联网圈的漂亮词儿,你懂几个?...