返回: Pytest权威教程

配置选项(Configuration Options)

这里是一个可以在被写入内置的配置选项的列表pytest.ini,tox.inisetup.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

发行实际意味着:pytesttest_hello.py

pytest --maxfail=2 -rf test_hello.py

默认是不添加选项。

cache_dir

设置存储缓存插件内容的目录。默认目录是.pytest_cache在rootdir中。

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只在从根目录执行时查找testingdoc目录中的测试。

usefixtures

将应用于所有测试函数的Fixture方法列表;这在语义上与将@pytest.mark.usefixtures标记应用于所有测试函数相同。

[pytest]
usefixtures =
clean_db

xfail_strict

如果设置为True,则标记为@pytest.mark.xfail实际成功的测试将默认为测试套件失败。有关更多信息,请参阅strict参数。

[pytest]
xfail_strict = True

Pytest权威教程21-API参考-07-配置选项(Configuration Options)的更多相关文章

  1. Pytest权威教程21-API参考-03-夹具(Fixtures)

    目录 夹具(Fixtures) @ pytest.fixture config.cache的 capsys capsysbinary capfd capfdbinary doctest_namespa ...

  2. Pytest权威教程21-API参考-04-钩子(Hooks)

    目录 钩子(Hooks) 引导时的Hook方法 初始化时的Hook方法 测试运行时的Hook方法 收集用例时的Hook方法 生成测试结果时的Hook方法 调试/交互Hook方法 返回: Pytest权 ...

  3. Pytest权威教程(官方教程翻译)

    Pytest权威教程01-安装及入门 Pytest权威教程02-Pytest 使用及调用方法 Pytest权威教程03-原有TestSuite的执行方法 Pytest权威教程04-断言的编写和报告 P ...

  4. Pytest权威教程21-API参考-05-对象(Objects)

    目录 对象(Objects) CallInfo Class Collector Config ExceptionInfo FixtureDef FSCollector Function Item Ma ...

  5. Pytest权威教程21-API参考-01-函数(Functions)

    目录 函数(Functions) pytest.approx pytest.fail pytest.skip pytest.importorskip pytest.xfail pytest.exit ...

  6. Pytest权威教程21-API参考-02-标记(Marks)

    目录 标记(Marks) pytest.mark.filterwarnings pytest.mark.parametrize pytest.mark.skip pytest.mark.skipif ...

  7. Pytest权威教程21-API参考-06-变量及异常

    目录 特殊变量(Special Variables) collect_ignore collect_ignore_glob pytest_plugins pytest_mark PYTEST_DONT ...

  8. Pytest权威教程10-捕获警告信息

    目录 捕获警告信息 @pytest.mark.filterwarnings 禁用警告摘要 完全禁用警告捕获 弃用警告和待命记录警告 确保代码触发弃用警告 用警告函数断言警告 录制警告 自定义失败消息 ...

  9. Pytest权威教程12-跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例

    目录 跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例 Skip跳过用例 xFail:将测试函数标记为预期失败 Skip/xFail参数设置 返回: Pytest权威教程 跳过(Sk ...

随机推荐

  1. java之hibernate之基于主键的单向一对一关联映射

    这篇讲 基于主键的单向一对一关联映射 1.依然考察人和身份证的一对一关系,如果采用主键关联,那么其表结构应该为: 2.类结构 Person.java public class Person imple ...

  2. node.js开发 1-概述

    https://www.cnblogs.com/gaoya666/p/9071288.html Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.c ...

  3. MySQL的ERROR 1205错误分析

    一.错误发生及原因猜测 1.错误发生 在删除 t_user 表的一条数据时,Navicat 发生长时间的无响应,然后弹出一个对话框,提示:ERROR 1205: Lock wait timeout e ...

  4. 易百教程人工智能python修正-人工智能数据准备-预处理数据

    预处理数据 在我们的日常生活中,需要处理大量数据,但这些数据是原始数据. 为了提供数据作为机器学习算法的输入,需要将其转换为有意义的数据. 这就是数据预处理进入图像的地方. 换言之,可以说在将数据提供 ...

  5. 第二章:jQuery初探

    一.引入jQuery XXXX.js文件 <script>标签 1.版本选择 当前jQuery有两个分支 1.x 支持ie6.7.8 jquery-1.11.2.js:未经过压缩,适合同学 ...

  6. 学习笔记之MongoDB

    MongoDB - Wikipedia MongoDB is a cross-platform document-oriented database program. Classified as a  ...

  7. js编写日历的思路

    首先写出一个日历我们需要考虑以下2个问题: 每个月的总天数 每个月的第一天周几 这里提供了一个判断平年闰年2月份天数的方法: function leapYear(year) { return (yea ...

  8. js把文字中的空格替换为横线

    问题描述 把一个字符串里的所有空格转换为横线 var str = "hello word"; var params=str.replace(/\ /g, "-" ...

  9. sqlserver存储过程里传字段、传字符串,并返回DataTable、字符串,存储过程调用存储过程。

    经常需要查一些信息,  想写视图来返回数据以提高效率,但是用试视图不能传参,只好想到改存储过程.记录一下语法,方便以后做项目时候想不起来了用. 1:传字段返回datatable 2: 传字段回一串字符 ...

  10. SpringMVC框架笔记01_SpringMVC的使用案例和架构组件_SpringMVC和Mybatis整合_接收参数

    目录 第1章:SpringMVC简介 1.1 什么是SpringMVC 1.2 SpringMVC的处理流程 第2章:SpringMVC入门程序 2.1 场景描述 2.2 步骤分析 2.3 步骤一:创 ...