Skip to content

Pytest 配置文件


简介

pytest.ini 是 Pytest 测试框架的配置文件,它允许自定义和配置测试运行的各种设置和行为。

通过编辑 pytest.ini 文件,可以指定测试目录、选择测试报告格式、配置 Fixture 和插件等。

这个文件通常位于测试项目的根目录或测试模块的目录中。


Pytest 配置文件的优点

  1. 集中管理:通过使用 pytest.ini 配置文件,可以将测试框架的配置信息集中管理在一个文件中。这样,所有的配置选项可以在一个地方进行设置和修改,使得配置更加方便和统一。

  2. 易于维护:将配置信息放在 pytest.ini 文件中可以使得配置和测试代码相分离,使项目结构更加清晰。这样,测试代码可以更专注于具体的测试功能,而配置信息的修改不会直接影响测试代码,因此更容易进行维护和更新。

  3. 可重用性:配置文件可以被多个测试文件共享,使得相同的配置可以在各个测试模块中重复使用。这样,当测试项目的配置需要修改时,可以在 pytest.ini 文件中进行一次修改即可,无需在每个测试文件中手动修改配置。

  4. 配置选项的灵活性:pytest.ini 配置文件允许设置多个配置选项,如输出报告的格式、测试用例的匹配规则、测试覆盖率的配置等。通过配置文件,可以灵活地定制和调整测试框架的行为,以满足不同项目的需求。


Pytest 配置文件的使用

改变运行规则

可以通过配置文件或命令行选项来改变 Pytest 的运行规则。

[pytest]
;执行check_开头和 test_开头的所有的文件,后面一定要加*
python_files = check_* test_*
;执行所有的以Test和Check开头的类
python_classes = Test*  Check*
;执行所有以test_和check_开头的方法
python_functions= test_* check_*

注意:windows 系统需要把中文注释去掉。


添加默认参数

可以通过在 Pytest 配置文件中添加默认参数来改变 Pytest 的默认行为。这些默认参数将应用于每次运行测试,而无需在命令行上指定它们。

addopts 是 Pytest 配置文件中的一个选项,用于添加额外的命令行参数。

例如,如果想要默认启用详细的输出 (-v) 和缓存清理 (--cache-clear)。

[pytest]
addopts = -v --cache-clear

指定/忽略执行目录

可以使用 Pytest 配置文件来指定执行测试的目录或者排除某些目录。

[pytest]
;设置执行的路径
testpaths = bilibili baidu
;忽略某些文件夹/目录
norecursedirs = result logs datas test_demo*

日志

可以配置日志以记录测试运行期间的事件和信息。这对于调试和问题排查非常有用。要在 Pytest 中配置日志,需要使用 Python 的标准logging 模块。确保项目中已经导入了 logging 模块。

[pytest]
;日志开关 true false
log_cli = true
;日志级别
log_cli_level = info
;打印详细日志,相当于命令行加 -vs
addopts = --capture=no
;日志格式
log_cli_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志时间格式
log_cli_date_format = %Y-%m-%d %H:%M:%S
;日志文件位置
log_file = ./log/test.log
;日志文件等级
log_file_level = info
;日志文件格式
log_file_format = %(asctime)s [%(levelname)s] %(message)s (%(filename)s:%(lineno)s)
;日志文件日期格式
log_file_date_format = %Y-%m-%d %H:%M:%S

Fixture

可以在 Pytest 配置文件或测试模块中定义 fixture,并将其用于测试函数。

[pytest]
;使用 'setup' 自动应用于所有测试函数,无需显式引用
autousefixtures = setup

总结

  • Pytest 配置文件的优点。
  • Pytest 配置文件的使用。