pytest.ini 配置

章节目录:

    • 一、概述
    • 二、常用配置说明
      • [2.1 添加命令行选项](#2.1 添加命令行选项)
      • [2.2 查找测试文件路径](#2.2 查找测试文件路径)
      • [2.3 匹配指定的测试文件](#2.3 匹配指定的测试文件)
      • [2.4 匹配指定的测试类](#2.4 匹配指定的测试类)
      • [2.5 匹配指定的测试函数](#2.5 匹配指定的测试函数)
      • [2.6 自定义的测试标记](#2.6 自定义的测试标记)
      • [2.7 变更预期不一致用例的状态](#2.7 变更预期不一致用例的状态)
      • [2.8 设置运行过程中的命令行日志级别](#2.8 设置运行过程中的命令行日志级别)
      • [2.9 指定不需要递归搜索的目录](#2.9 指定不需要递归搜索的目录)
    • 三、结束语

一、概述

  • pytest.ini 文件是一个用于配置 pytest 测试运行器的配置文件。
  • 它可以用于指定各种 pytest 的行为和选项,以定制测试运行的方式。
  • 注意 :请确保在项目根目录下 创建并正确配置 pytest.ini 文件,并确保文件名为 pytest.ini,以使 pytest 能够正确读取并应用配置。

二、常用配置说明

2.1 添加命令行选项

  • addopts :该选项用于添加额外的命令行选项和标志,它可以代替重复性的命令输入(尤其是命令行参数过长时):
ini 复制代码
[pytest]

addopts = -v --cov=myproject --cov-report=html
  • 这个示例中,-v 表示输出详细的测试结果,--cov=myproject 表示使用代码覆盖率工具测量项目中的代码覆盖率,--cov-report=html 表示生成 HTML 格式的代码覆盖率报告。
  • 这样执行命令行的时候,就不需要每次都手动加上这些参数了。

2.2 查找测试文件路径

  • testpaths : 该选项用于指定 pytest 查找测试文件的路径。你可以在其中列出要搜索的目录或文件:
ini 复制代码
[pytest]

testpaths = tests
  • 这个示例中,表示测试文件位于项目根目录下的 tests 文件夹中。

2.3 匹配指定的测试文件

  • python_files : 该选项用于指定 pytest 应该查找的测试文件 的命名模式。你可以使用通配符或正则表达式来匹配特定的文件名:
ini 复制代码
[pytest]

python_files = test_*.py
  • 这个示例中,test_*.py 表示 pytest 应该查找以 test_ 开头的 Python 文件作为测试文件。

2.4 匹配指定的测试类

  • python_classes : 该选项用于指定 pytest 应该查找的测试类的命名模式。你可以使用通配符或正则表达式来匹配特定的类名:
ini 复制代码
[pytest]

python_classes = Test*
  • 这个示例中,Test* 表示 pytest 应该查找以 Test 开头的测试类。

2.5 匹配指定的测试函数

  • python_functions : 该选项用于指定 pytest 应该查找的测试函数的命名模式。你可以使用通配符或正则表达式来匹配特定的函数名:
ini 复制代码
[pytest]

python_functions = *_test
  • 这个示例中,*_test 表示 pytest 应该查找以 _test 结尾的测试函数。

2.6 自定义的测试标记

  • markers : 该选项用于定义自定义的测试标记。你可以通过标记标识特定类型的测试用例,然后使用 -m 选项来选择性地运行带有特定标记的测试用例。:
ini 复制代码
[pytest]

markers =
    mac: run on mac
    linux: run on linux
    windows: run on windows

2.7 变更预期不一致用例的状态

  • xfail_strict :xfail_strict 是一个布尔类型的配置项,默认为 False
  • 当 xfail_strict 设置为 True 时,表示严格处理预期失败的测试用例(通过 @pytest.mark.xfail 标记的用例)。
  • 如果一个预期失败的用例在运行时实际成功了,或者一个预期成功的用例在运行时实际失败了,将会被视为测试失败。
  • 设置 xfail_strict 为 False 时,预期失败的用例即使实际成功了,仍然会被视为通过。
ini 复制代码
[pytest]

xfail_strict = True
  • 上述配置将启用严格的预期失败处理,确保预期失败的用例在实际成功时被视为失败。

2.8 设置运行过程中的命令行日志级别

  • log_cli:log_cli 是一个字符串类型的配置项,用于设置 pytest 运行过程中的命令行日志级别。
  • 可用的选项包括:CRITICALERRORWARNINGINFODEBUG
  • 默认情况 下,log_cli 的值为空,即不会在命令行显示日志
ini 复制代码
[pytest]

log_cli = INFO
  • 上述配置将在命令行中显示 INFO 级别及以上的日志信息。

2.9 指定不需要递归搜索的目录

  • norecursedirs :用于指定在运行测试时不需要递归搜索的目录
  • 这是一个非常有用 的配置项,可以帮助排除不需要进行测试的目录,提高测试运行的效率
  • 使用 norecursedirs 可以指定一个目录列表,这些目录将被排除在测试递归搜索之外。可以使用相对 路径或绝对路径来设置目录。
ini 复制代码
[pytest]

norecursedirs = tests/data docs
  • 在上面的示例中,norecursedirs 的值为 "tests/data docs",它指定了两个目录(多个路径用空格分隔):tests/data 和 docs。这两个目录将被排除在 pytest 的测试递归搜索之外,即测试运行时不会扫描这两个目录下的测试文件。

三、结束语


"-------怕什么真理无穷,进一寸有一寸的欢喜。"

微信公众号搜索:饺子泡牛奶

相关推荐
Lsir10110_16 分钟前
【Linux】进程信号(下半)
linux·运维·服务器
skywalk816332 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒34 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面36 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk816337 分钟前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq37 分钟前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke23338 分钟前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室41 分钟前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
AZ996ZA1 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN1 小时前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件