pytest
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
positional arguments:
file_or_dir
general:
-k EXPRESSION Only run tests which match the given substring expression. An expression is a Python evaluatable
expression where all names are substring-matched against test names and their parent classes.
Example: -k 'test_method or test_other' matches all test 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. Additionally keywords are matched to classes and functions containing extra names in
their 'extra_keyword_matches' set, as well as functions which have names assigned directly to
them. The matching is case-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, --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.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 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.
Tests 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 feature names.
Run 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-label=LABELS_SET
List of labels to run in format label_name=value1,value2.
"Run tests that have at least one of the specified 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().
概述:
-k表达式仅运行与给定子字符串表达式匹配的测试。表达式是Python可评估的
表达式,其中所有名称都是与测试名称及其父类匹配的子字符串。
示例:-k“test_method或test_other”匹配其名称的所有测试函数和类
包含“test_method”或“test_other”,而-k“not test_method'匹配那些不匹配的
在其名称中包含“test_method”-k“not test_method and not test_other”将消除
匹配。此外,关键字与中包含额外名称的类和函数匹配
它们的“extra_keyword_matches”集合,以及名称直接分配给的函数
他们匹配不区分大小写。
-m MARKEXPR仅运行与给定标记表达式匹配的测试。例如:-m“mark1而不是mark2”。
--标记显示标记(内置、插件和每个项目的标记)。
-x、 --exitfirst出现第一个错误或测试失败时立即退出
--固定装置,--函数
显示可用的固定装置,按插件外观排序(仅显示带前导“_”的固定装置
带有“-v”)
--每个测试的夹具显示每个测试的固定装置
--pdb在出现错误或KeyboardInterrupt时启动交互式Python调试器
--pdbcls=模块名:类名
指定与--pdb一起使用的自定义交互式Python调试器。例如:
--pdbcls=IPython.terminal.debugger:TerminalPdb
--trace运行每个测试时立即中断
--capture=method每个测试捕获方法:fd|sys|no|tee-sys之一
-s的快捷方式--capture=no
--runxfail报告xfail测试的结果,就好像它们没有被标记一样
--lf,--last failed仅重新运行上次运行时失败的测试(如果没有失败,则全部重新运行)
--ff,--首先失败运行所有测试,但首先运行最后一次失败。这可能会重新安排测试,从而导致
重复的夹具设置/拆卸。
--nf,--new first首先从新文件运行测试,然后按文件mtime排序其余测试
--缓存显示=[CACHESHOW]
显示缓存内容,不执行收集或测试。可选参数:glob(默认值:“*”)。
--清除缓存在测试运行开始时删除所有缓存内容
--lfnf={all,none},--上次失败无故障={all,none}
在没有以前(已知)故障的情况下运行哪些测试
--sw,--测试失败时逐步退出,下次从上次失败的测试继续
--sw-skip,--逐步跳过
忽略第一个未通过的测试,但在下一个未通过测试时停止。隐含地启用--逐步执行。
--诱惑严重性=严重性_SET
严重性名称的逗号分隔列表。
将只运行具有这些严重性的测试。
可能的值有:阻断、关键、正常、次要、琐碎。
--诱惑史诗
用逗号分隔的史诗名字列表。
运行至少具有一个指定功能标签的测试。
--诱惑特征=特征_设置
以逗号分隔的功能名称列表。
运行至少具有一个指定功能标签的测试。
--诱惑故事=故事集
用逗号分隔的故事名称列表。
运行至少具有一个指定故事标签的测试。
--诱惑ID=ids_SET以逗号分隔的ID列表。
运行至少具有一个指定id标签的测试。
--诱惑标签=LABELS_SET
要以label_name=value1,value2格式运行的标签列表。
“运行至少具有一个指定标签的测试。
--诱惑链接模式=链接类型:链接
链接类型的Url模式。允许测试中的短链接,
比如“问题1”。文本将使用python格式化为完整url
str.format()。
Reporting:
--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: 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)
--no-showlocals Hide locals in tracebacks (negate --showlocals passed through addopts)
--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: 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). Default: yes.
--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-html
create a self-contained html file containing all necessary styles, scripts, and images - this
means that the report may not render or function where CSP restrictions are in place (see
https://developer.mozilla.org/docs/Web/Security/CSP)
--css=path append given css file content to report style file.
报告:
--持续时间=N显示N个最慢的设置/测试持续时间(全部为N=0)
--durations min=N包含在最慢列表中的最小持续时间(以秒为单位)。默认值:0.005。
-v、 --verbose增加冗长
--无标头禁用标头
--无摘要禁用摘要
-q、 --quiet减少冗长
--VERBOSE=VERBOSE设置详细程度。默认值:0。
-r chars显示chars指定的额外测试摘要信息:(f)失败,(E)错误,(s)跳过,(x)失败,
(X) 通过,(p)通过,(p)通过输出,(a)ll(除通过(p/p)外),或(a)ll。(w) 警告是
默认情况下启用(请参阅--disable warnings),'N'可用于重置列表。(默认值:'fE')。
--禁用警告,--禁用pytest警告
禁用警告摘要
-l、 --showlocals在回溯中显示局部(默认情况下禁用)
--no showlocals在回溯中隐藏locals(否定--showlocals通过addopts传递)
--tb=样式回溯打印模式(自动/长/短/行/本地/no)
--显示捕获={no,stdout,stderr,log,all}
控制捕获的stdout/stderr/log在失败的测试中的显示方式。默认值:all。
--完整跟踪不剪切任何回溯(默认为剪切)
--color=color彩色终端输出(是/否/自动)
--代码高亮显示={是,否}
是否应突出显示代码(仅当同时启用--color时)。默认值:是。
--pastebin=mode发送失败|所有信息到bpaste.net pastebin服务
--junit xml=path在给定路径创建junit xml样式的报告文件
--junit prefix=str为junit xml输出中的类名准备前缀
--html=path在给定的路径上创建html报告文件。
--自包含html
创建一个包含所有必要样式、脚本和图像的自包含html文件
意味着在存在CSP限制的情况下,报告可能无法呈现或发挥作用(请参见
https://developer.mozilla.org/docs/Web/Security/CSP)
--css=将给定的css文件内容附加到报表样式文件的路径。
pytest-warnings:
-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:
--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: 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:
--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. Default: 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:
--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 used by the logging module
--log-date-format=LOG_DATE_FORMAT
Log date format used by the logging module
--log-cli-level=LOG_CLI_LEVEL
CLI logging level
--log-cli-format=LOG_CLI_FORMAT
Log format used by the logging module
--log-cli-date-format=LOG_CLI_DATE_FORMAT
Log date format 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 used by the logging module
--log-file-date-format=LOG_FILE_DATE_FORMAT
Log date format 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.
--log-disable=LOGGER_DISABLE
Disable a logger by name. Can be passed multipe times.
reporting:
--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
Custom options:
--metadata=key value additional metadata.
--metadata-from-json=METADATA_FROM_JSON
additional metadata from a json string.
--metadata-from-json-file=METADATA_FROM_JSON_FILE
additional metadata from a json file.
[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg|pyproject.toml file found:
markers (linelist): Markers for test functions
empty_parameter_set_mark (string):
Default marker for empty parametersets
norecursedirs (args): Directory patterns to avoid for recursion
testpaths (args): Directories to search for tests when no files or directories are given on the command line
filterwarnings (linelist):
Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings.
usefixtures (args): List of default fixtures to be used with this project
python_files (args): Glob-style file patterns for Python test module discovery
python_classes (args):
Prefixes or glob names for Python test class discovery
python_functions (args):
Prefixes or glob names for Python test function and method discovery
disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):
Disable string escape non-ASCII characters, might cause unwanted side effects(use at your own
risk)
console_output_style (string):
Console output: "classic", or with additional progress information ("progress" (percentage) |
"count" | "progress-even-when-capture-no" (forces progress even when capture=no)
xfail_strict (bool): Default for the strict parameter of xfail markers when not given explicitly (default: False)
tmp_path_retention_count (string):
How many sessions should we keep the `tmp_path` directories, according to
`tmp_path_retention_policy`.
tmp_path_retention_policy (string):
Controls which directories created by the `tmp_path` fixture are kept around, based on test
outcome. (all/failed/none)
enable_assertion_pass_hook (bool):
Enables the pytest_assertion_pass hook. Make sure to delete any previously generated pyc cache
files.
junit_suite_name (string):
Test suite name for JUnit report
junit_logging (string):
Write captured log messages to JUnit report: one of no|log|system-out|system-err|out-err|all
junit_log_passing_tests (bool):
Capture log information for passing tests to JUnit report:
junit_duration_report (string):
Duration time to report: one of total|call
junit_family (string):
Emit XML for schema: one of legacy|xunit1|xunit2
doctest_optionflags (args):
Option flags for doctests
doctest_encoding (string):
Encoding used for doctest files
cache_dir (string): Cache directory path
log_level (string): Default value for --log-level
log_format (string): Default value for --log-format
log_date_format (string):
Default value for --log-date-format
log_cli (bool): Enable log display during test run (also known as "live logging")
log_cli_level (string):
Default value for --log-cli-level
log_cli_format (string):
Default value for --log-cli-format
log_cli_date_format (string):
Default value for --log-cli-date-format
log_file (string): Default value for --log-file
log_file_level (string):
Default value for --log-file-level
log_file_format (string):
Default value for --log-file-format
log_file_date_format (string):
Default value for --log-file-date-format
log_auto_indent (string):
Default value for --log-auto-indent
pythonpath (paths): Add paths to sys.path
faulthandler_timeout (string):
Dump the traceback of all threads if a test takes more than TIMEOUT seconds to finish
addopts (args): Extra command line options
minversion (string): Minimally required pytest version
required_plugins (args):
Plugins that must be present for pytest to run
render_collapsed (bool):
Open the report with all rows collapsed. Useful for very large reports
max_asset_filename_length (string):
set the maximum filename length for assets attached to the html report.
environment_table_redact_list (linelist):
A list of regexes corresponding to environment table variables whose values should be redacted
from the report
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
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
import pytest
import allure
import os
# pytest运行脚本生成测试报告原始数据,reports/allure是原始报告目录,生成的是json数据
# --clean-alluredir每次运行会清空上次生成的数据
pytest.main(['-s','../testcase/', '--alluredir=reports/allure', '--clean-alluredir'])
# 使用os模块执行allure命令把原始json数据生成html测试报告,使用generate命令生成HTML报告到新的./reports/allure_report目录
# --clean清除上次生成的报告
os.system("allure generate ./reports/allure -o ./reports/allure_report --clean")
# os.system("allure generate /Users/shimo/Downloads/test/lovetest/pytestcase/reports/allure -o /Users/shimo/Downloads/test/lovetest/pytestcase/reports/allure_report --clean")
# 打开浏览器展示html报告
os.system('allure open ./reports/allure_report')

浙公网安备 33010602011771号