Pytest语法速查:运行参数

neevop 十二月 13, 2022

general options

options description usage
-k EXPRESSION only run tests which match the given substring expression. An expression is apython evaluatable expression where all names are substring-matched against testnames and their parent classes. Example: -k ’test_method or test_other’ matches alltest functions and classes whose name contains ’test_method’ or ’test_other’, while-k ’not test_method’ matches those that don’t contain ’test_method’ in their names.-k ’not test_method and not test_other’ will eliminate the matches. Additionallykeywords are matched to classes and functions containing extra names in their‘extra_keyword_matches’ set, as well as functions which have names assigneddirectly to them. The matching is case-insensitive.
-m MARKEXPR only run tests matching given mark expression. -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, –funcargs show 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 or KeyboardInterrupt.
–pdbcls=modulename:classname specify a custom interactive Python debugger for use with –pdb. –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 not marked
–lf, –last-failed rerun only the tests that failed at the last run (or all if none failed)
–ff, –failed-first run all tests, but run the last failures first.This may re-order tests and thus lead to repeated fixture setup/teardown.
–nf, –new-first run tests from new files first, then the rest of the tests 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 test next time
–sw-skip, –stepwise-skip ignore the first failing test but stop on the next failing test. implicitly enables –stepwise.
–allure-severities=SEVERITIES_SET Comma-separated list of severity names. only with these severities will be run. Possible values are: blocker, critical, normal, minor, trivial.
–allure-epics=EPICS_SET Comma-separated list of epic names.Run tests that have at least one of the specified feature labels.
–allure-features=FEATURES_SET Comma-separated list of epic names. tests that have at least one of the specified feature labels.
–allure-stories=STORIES_SET Comma-separated list of story names.Run tests that have at least one of the specified story labels.
–allure-ids=IDS_SET Comma-separated list of IDs.Run tests that have at least one of the specified id labels.
–allure-link-pattern=LINK_TYPE:LINK_PATTERN Url pattern for link type. Allows short links in test, like ‘issue-1’. Text will be formatted to full url with python str.format().
–count=COUNT Number of times to repeat each test
–repeat-scope={function,class,module,session} Scope for repeating tests

reporting options

options description usage
–durations=N show N slowest setup/test durations (N=0 for all).
–durations-min=N Minimal duration in seconds for inclusion in slowest list. 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-warnings disable 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 on failed 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 is also 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
–alluredir=DIR Generate Allure report in the specified directory (may not exist)
–clean-alluredir Clean alluredir folder if it exists
–allure-no-capture Do not attach pytest captured logging/stdout/stderr to report
–inversion=INVERSION Run tests not in testplan

pytest-warnings options

options description usage
-W PYTHONWARNINGS, –pythonwarnings=PYTHONWARNINGS set which warnings to report, see -W option of python itself.
–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 the configuration file raise errors.
–strict (deprecated) alias to –strict-markers.
-c file load configuration from file instead of trying to locate one of the implicit configuration files
–continue-on-collection-errors Force 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 with variables:$HOME/root_dir’.

collection options

options description usage
–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_prefix deselect 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-virtualenv Don’t ignore tests in a local virtualenv directory
–import-mode={prepend,append,importlib} prepend/append to sys.path when importing test modules and 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 doctest failure
–doctest-glob=pat doctests file matching pattern, default: test*.txt
–doctest-ignore-import-errors ignore doctest ImportErrors
–doctest-continue-on-failure for a given doctest, continue to run after the first failure

test session debugging and configuration

options description usage
–basetemp=dir base temporary directory for this test run.(warning: this directory is removed if it exists)
-V, –version display pytest version and information about plugins. When given twice, also display information about plugins.
-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=[DEBUG_FILE_NAME] store internal tracing debug information in this log file. This file is opened with ‘w’ and truncated as a result, care advised. Defaults to ‘pytestdebug.log’.
-o OVERRIDE_INI, –override-ini=OVERRIDE_INI override ini option with “option=value” style, e.g. -o xfail_strict=True -o cache_dir=cache.
–assert=MODE Control assertion debugging tools. ‘plain’ performs no assertion debugging. ‘rewrite’ (the default) rewrites assert statements in test modules on import to provide assert expression information.
–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’t execute anything.

logging options

options description usage
–log-level=LEVEL level of messages to catch/display. Not set by default, so it depends on the root/parent log handler’s effective level, where it is “WARNING” by default.
–log-format=LOG_FORMAT log format as used by the logging module.
–log-date-format=LOG_DATE_FORMAT log date format as used by the logging module.
–log-cli-level=LOG_CLI_LEVEL cli logging level.
–log-cli-format=LOG_CLI_FORMAT log 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_LEVEL log file logging level.
–log-file-format=LOG_FILE_FORMAT log format as used by the logging module.
–log-file-date-format=LOG_FILE_DATE_FORMAT log date format as used by the logging module.
–log-auto-indent=LOG_AUTO_INDENT Auto-indent multiline messages passed to the logging module. Accepts true/on, false/off or an integer.

environment variables

PYTEST_ADDOPTS extra command line options PYTEST_PLUGINS comma-separated plugins to load during startup PYTEST_DISABLE_PLUGIN_AUTOLOAD set to disable plugin auto-loading PYTEST_DEBUG set to enable debug tracing of pytest’s internals