【软件自动化测试】pytest.ini 配置文件

一、pytest.ini 常见配置节

pytest.ini文件中,方括号[]内的命名并不是完全固定的,但有一定的约定和限制。这些命名通常用于定义不同的配置节,每个节包含了一组相关的配置项。以下是一些常见的配置节及其用途:

  • [pytest]:这是默认的节,用于设置全局的Pytest选项和配置,如命令行参数、测试文件路径、markers定义等。
  • [markers]:用于定义自定义的markers,这些markers可以在测试用例中使用,以进行更细粒度的测试选择和分类。
  • [hook]:用于定义Pytest的钩子(hooks),这些钩子是在测试执行的特定时刻自动调用的函数。
  • [setup]:用于配置测试会话的设置选项,如全局的setupteardown函数。
  • [env]:用于定义环境变量,这些变量可以在测试代码中通过os.environ访问。
  • [python]:用于设置Python选项,如模块搜索路径、Python路径等。
  • [logging]:用于配置日志记录选项。
  • [html]:用于配置HTML报告的生成选项。
  • [junit]:用于配置JUnit兼容的XML报告的生成选项。
  • [testpaths]:用于指定测试文件的搜索路径。

除了这些常见的节,你还可以定义自定义节来组织特定的配置项。自定义节的命名通常遵循以下规则:

  • 节名应该以[]包围,且不允许有空格。
  • 节名可以包含字母、数字、下划线和短横线,但不以数字开头。
  • 节名应该具有描述性,以便于理解其用途。

自定义节通常与插件相关联,插件可以定义自己的配置节来读取特定的配置项。例如,如果你使用了pytest-xdist插件,它可能提供了[pytest-xdist]节来配置并行测试执行的相关选项。

总之,pytest.ini文件中的节命名不是完全固定的,但应该遵循一定的约定和最佳实践,以确保配置的清晰性和一致性。


二、pytest.ini 配置框架参考

pytest.ini文件中,你可以定义多个节来组织不同类型的配置,以便更好地管理和维护你的测试环境。以下是一个包含多个常见配置项的pytest.ini文件示例:

[pytest]
# 添加默认的命令行选项
addopts = -v -s --html=report.html --self-contained-html

# 指定测试文件和目录的收集规则
testpaths =
    ./tests

# 定义Pytest的markers,用于标记特定的测试用例
markers =
    smoke: marks tests as part of the smoke test suite
    slow: marks tests as slow (deselect with '-m "not slow"')

# 配置环境变量
env =
    API_URL=https://api.example.com
    DATABASE_URI=sqlite:///test.db

# 设置Python的模块搜索路径
python_paths =
    ./src
    ./lib

# 配置日志记录级别和格式
log_cli = true
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)s] %(message)s

# 配置测试前的全局设置和测试后的全局清理
[setup]
addopts = --setup-show

# 配置测试函数执行前后的钩子函数
[hook]
setup = my_package.hooks.setup_hook
teardown = my_package.hooks.teardown_hook

# 配置插件选项
[pytest11]
load_timeout = 5

# 配置fixture的使用方式
[fixture]
autouse = True

# 配置测试报告生成的详细级别
[html]
junit_suite_name = 'My Test Suite'
title = 'My Project Test Report'

在这个示例中,我们定义了以下内容:

  • [pytest]节:设置了默认的命令行选项,如详细模式(-v)、显示输出(-s)、生成HTML报告(--html=report.html)等。
  • testpaths:指定了Pytest应该搜索测试用例的目录。
  • markers:定义了自定义的标记,可以在测试用例中使用。
  • env:设置了环境变量,这些变量可以在测试代码中使用。
  • python_paths:添加了额外的Python模块搜索路径。
  • log_cli:配置了日志记录的选项,如是否显示日志、日志级别和格式。
  • [setup]节:配置了全局设置的选项。
  • [hook]节:定义了测试执行前后的钩子函数。
  • [pytest11]节:配置了pytest11插件的选项。
  • [fixture]节:配置了fixture的自动使用选项。
  • [html]节:配置了HTML报告的详细选项,如JUnit套件名称和报告标题。

这个pytest.ini文件提供了一个全面的测试配置框架,可以根据你的项目需求进行调整和扩展。记得在修改配置文件后,重新运行你的测试套件以确保新的配置生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值