目录:
安装及入门
使用和调用方法
原有TestSuite使用方法
断言的编写和报告
Pytest fixtures:清晰 模块化 易扩展
使用Marks标记测试用例
Monkeypatching/对模块和环境进行Mock
使用tmp目录和文件
捕获stdout及stderr输出
捕获警告信息
模块及测试文件中集成doctest测试
skip及xfail: 处理不能成功的测试用例
Fixture方法及测试用例的参数化
缓存: 使用跨执行状态
unittest.TestCase支持
运行Nose用例
经典xUnit风格的setup/teardown
安装和使用插件
插件编写
编写钩子(hook)方法
运行日志
API参考
方法(Functions)
标记(Marks)
钩子(Hooks)
装置(Fixtures)
对象(Objects)
特殊变量(Special Variables)
环境变量(Environment Variables)
配置选项(Configuration Options)
优质集成实践
片状测试
Pytest导入机制及sys.path/PYTHONPATH
配置选项
示例及自定义技巧
Bash自动补全设置
API参考-Configuration Options
配置选项(Configuration Options)
配置选项
这里是一个可以在被写入内置的配置选项的列表pytest.ini,tox.ini或setup.cfg 通常位于版本库的根文件。所有选项必须在一个[pytest]部分下([tool:pytest]对于setup.cfg文件)。
警告
的使用setup.cfg是不推荐,除非非常简单的用例。.cfg 文件使用不同的解析器pytest.ini,tox.ini这可能导致难以追踪问题。如果可能,建议使用后面的文件来保存pytest配置。
配置文件选项可以通过使用在命令行中覆盖,-o/--override也可以多次传递。预期的格式是name=value。例如:
pytest -o console_output_style=classic -o cache_dir=/tmp/mycache
addopts
将指定OPTS的命令行参数添加到命令行参数集中,就像它们已由用户指定一样。示例:如果你有此ini文件内容:
# content of pytest.ini
[pytest]
addopts = --maxfail=2 -rf # exit after 2 failures, report fail info
发行实际意味着:pytest test_hello.py
pytest --maxfail=2 -rf test_hello.py
默认是不添加选项。
cache_dir
设置存储缓存插件内容的目录。默认目录是 .pytest_cache在rootdir中创建的。目录可以是相对路径或绝对路径。如果设置相对路径,则相对于rootdir创建目录。另外,path可能包含将被扩展的环境变量。有关缓存插件的更多信息,请参阅缓存:使用跨testrun状态。
confcutdir
设置向上搜索conftest.py文件的目录。默认情况下,pytest将停止conftest.py从项目的pytest.ini/ tox.ini/ 向上搜索文件(setup.cfg如果有),或者直到文件系统根目录。
console_output_style
运行测试时设置控制台输出样式:
classic:经典的pytest输出。
progress:喜欢经典的pytest输出,但带有进度指示器。
count:像进度一样,但随着测试完成次数而不是百分比显示进度。
默认值为progress,但classic如果你愿意,或者新模式导致意外问题,你可以回退到:
# content of pytest.ini
[pytest]
console_output_style = classic
doctest_encoding
用于解码带有文档字符串的文本文件的默认编码。 看看pytest如何处理doctests。
doctest_optionflags
标准doctest模块中的一个或多个doctest标志名称。 看看pytest如何处理doctests。
empty_parameter_set_mark
允许在参数化中为空参数选择操作
skip 使用空参数跳过测试(默认)
xfail 使用空参数标记测试为xfail(run = False)
fail_at_collect 如果parametrize收集空参数集,则引发异常
# content of pytest.ini
[pytest]
empty_parameter_set_mark = xfail
注意
计划xfail在将来的版本中更改此选项的默认值,因为这被认为不易出错, 有关详细信息,请参阅#3155。
filterwarnings
设置应为匹配的警告采取的过滤器和操作的列表。默认情况下,测试会话期间发出的所有警告都将在测试会话结束时显示在摘要中。
# content of pytest.ini
[pytest]
filterwarnings =
error
ignore::DeprecationWarning
这告诉pytest忽略弃用警告并将所有其他警告变为错误。有关更多信息,请参阅警告捕获。
junit_family
版本4.2中的新功能。
配置生成的JUnit XML文件的格式。可能的选择是:
xunit1(或legacy):生成旧样式输出,与xunit 1.0格式兼容。这是默认值。
xunit2:生成xunit 2.0样式输出,
哪个应该与最新的Jenkins版本更兼容。
[pytest]
junit_family = xunit2
junit_suite_name
要设置根测试套件xml项的名称,可以junit_suite_name在配置文件中配置该选项:
[pytest]
junit_suite_name = my_suite
log_cli_date_format
设置一个time.strftime()兼容的字符串,该字符串将在格式化实时日志记录的日期时使用。
[pytest]
log_cli_date_format = %Y-%m-%d %H:%M:%S
有关更多信息,请参阅实时日志。
log_cli_format
设置logging用于格式化实时日志记录消息的兼容字符串。
[pytest]
log_cli_format = %(asctime)s %(levelname)s %(message)s
有关更多信息,请参阅实时日志。
log_cli_level
设置应为实时日志记录捕获的最小日志消息级别。可以使用整数值或级别的名称。
[pytest]
log_cli_level = INFO
有关更多信息,请参阅实时日志。
log_date_format
设置time.strftime()与日志记录捕获格式化日期时将使用的兼容字符串。
[pytest]
log_date_format = %Y-%m-%d %H:%M:%S
有关更多信息,请参阅日志记录。
log_file
pytest.ini除了活动的其他日志记录工具之外,还应设置相对于应写入日志消息的文件的文件名。
[pytest]
log_file = logs/pytest-logs.txt
有关更多信息,请参阅日志记录。
log_file_date_format
设置time.strftime()在格式化日志文件的日期时将使用的兼容字符串。
[pytest]
log_file_date_format = %Y-%m-%d %H:%M:%S
有关更多信息,请参阅日志记录。
log_file_format
设置一个logging兼容的字符串,用于格式化重定向到日志文件的日志消息。
[pytest]
log_file_format = %(asctime)s %(levelname)s %(message)s
有关更多信息,请参阅日志记录。
log_file_level
设置应为日志记录文件捕获的最小日志消息级别。可以使用整数值或级别的名称。
[pytest]
log_file_level = INFO
有关更多信息,请参阅日志记录。
log_format
设置logging用于格式化捕获的日志消息的兼容字符串。
[pytest]
log_format = %(asctime)s %(levelname)s %(message)s
有关更多信息,请参阅日志记录。
log_level
设置应记录捕获的最小日志消息级别。可以使用整数值或级别的名称。
[pytest]
log_level = INFO
有关更多信息,请参阅日志记录。
log_print
如果设置为False,将禁用显示失败测试的捕获日志消息。
[pytest]
log_print = False
有关更多信息,请参阅日志记录。
markers
使用--strict命令行参数时,只允许使用已知的标记(由代码核心pytest或某些插件定义)。你可以在此设置中列出其他标记,以将其添加到白名单。
你可以列出每行一个标记名称,从选项名称缩进。
[pytest]
markers =
slow
serial
minversion
指定运行测试所需的最小pytest版本。
# content of pytest.ini
[pytest]
minversion = 3.0 # will fail if we run with pytest-2.8
norecursedirs
设置目录basename模式以避免在递归测试发现时使用。各个(fnmatch样式)模式应用于目录的基本名称,以决定是否递归到目录。模式匹配字符:
* matches everything
? matches any single character
[seq] matches any character in seq
[!seq] matches any char not in seq
默认模式是。设置替换默认值。以下是如何避免某些目录的示例:'.*', 'build', 'dist','CVS', '_darcs', '{arch}', '*.egg', 'venv'``norecursedirs
[pytest]
norecursedirs = .svn _build tmp*
这将告诉pytest我们不要查看典型的subversion或sphinx-build目录或任何tmp前缀目录。
此外,pytest将尝试通过激活脚本的存在智能地识别和忽略virtualenv。除非‑‑collect‑in‑virtualenv给出,否则在测试收集期间不会考虑任何被视为虚拟环境根目录的目录。另请注意, norecursedirs优先于‑‑collect‑in‑virtualenv; 例如,如果你打算在virtualenv中使用匹配的基本目录运行测试 ,则除了使用该标志外, '.*'还必须覆盖。norecursedirs``‑‑collect‑in‑virtualenv
python_classes
一个或多个名称前缀或glob样式模式,用于确定考虑用于测试集合的类。通过在模式之间添加空格来搜索多个glob模式。默认情况下,pytest会将任何以前缀Test为前缀的类视为测试集合。以下是如何从以下结尾的类中收集测试的示例Suite:
[pytest]
python_classes = *Suite
请注意,unittest.TestCase无论此选项如何,始终都会收集派生类,因为unittest自己的集合框架用于收集这些测试。
python_files
一个或多个Glob样式的文件模式,用于确定哪些python文件被视为测试模块。通过在模式之间添加空格来搜索多个glob模式:
[pytest]
python_files = test_*.py check_*.py example_*.py
或者每行一个:
[pytest]
python_files =
test_*.py
check_*.py
example_*.py
默认情况下,匹配的文件test_*.py和*_test.py将被视为测试模块。
python_functions
一个或多个名称前缀或glob-patterns,用于确定哪些测试函数和方法被视为测试。通过在模式之间添加空格来搜索多个glob模式。默认情况下,pytest会将任何前缀test为函数的函数视为测试。以下是如何收集以下结尾的测试函数和方法的示例_test:
[pytest]
python_functions = *_test
请注意,这对生成在派生类上的方法没有影响,因为自己的集合框架用于收集这些测试。unittest .TestCase``unittest
有关更多详细示例,请参阅更改命名约定。
testpaths
当从rootdir目录执行pytest时,如果在命令行中没有给出特定的目录,文件或测试ID,则设置应搜索测试的目录列表。当所有项目测试都在一个已知位置以加速测试收集并避免意外接收不需要的测试时非常有用。
[pytest]
testpaths = testing doc
这告诉pytest只在 从根目录执行时查找testing和doc目录中的测试。
usefixtures
将应用于所有测试功能的灯具列表; 这在语义上与将@pytest.mark.usefixtures标记应用于所有测试函数相同。
[pytest]
usefixtures =
clean_db
xfail_strict
如果设置为True,则标记为@pytest.mark.xfail实际成功的测试将默认为测试套件失败。有关更多信息,请参阅strict参数。
[pytest]
xfail_strict = True```目录:
安装及入门
使用和调用方法
原有TestSuite使用方法
断言的编写和报告
Pytest fixtures:清晰 模块化 易扩展
使用Marks标记测试用例
Monkeypatching/对模块和环境进行Mock
使用tmp目录和文件
捕获stdout及stderr输出
捕获警告信息
模块及测试文件中集成doctest测试
skip及xfail: 处理不能成功的测试用例
Fixture方法及测试用例的参数化
缓存: 使用跨执行状态
unittest.TestCase支持
运行Nose用例
经典xUnit风格的setup/teardown
安装和使用插件
插件编写
编写钩子(hook)方法
运行日志
API参考
方法(Functions)
标记(Marks)
钩子(Hooks)
装置(Fixtures)
对象(Objects)
特殊变量(Special Variables)
环境变量(Environment Variables)
配置选项(Configuration Options)
优质集成实践
片状测试
Pytest导入机制及sys.path/PYTHONPATH
配置选项
示例及自定义技巧
Bash自动补全设置
API参考-Configuration Options
配置选项(Configuration Options)
配置选项
这里是一个可以在被写入内置的配置选项的列表pytest.ini,tox.ini或setup.cfg 通常位于版本库的根文件。所有选项必须在一个[pytest]部分下([tool:pytest]对于setup.cfg文件)。
警告
的使用setup.cfg是不推荐,除非非常简单的用例。.cfg 文件使用不同的解析器pytest.ini,tox.ini这可能导致难以追踪问题。如果可能,建议使用后面的文件来保存pytest配置。
配置文件选项可以通过使用在命令行中覆盖,-o/--override也可以多次传递。预期的格式是name=value。例如:
pytest -o console_output_style=classic -o cache_dir=/tmp/mycache
addopts
将指定OPTS的命令行参数添加到命令行参数集中,就像它们已由用户指定一样。示例:如果你有此ini文件内容:
# content of