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 的测试递归搜索之外,即测试运行时不会扫描这两个目录下的测试文件。

三、结束语


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

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

相关推荐
半新半旧11 分钟前
Nginx 负载均衡案例配置
运维·nginx·负载均衡
码上飞扬20 分钟前
深入探索 Linux Top 命令:15 个实用示例
linux·运维·服务器
灰色人生qwer22 分钟前
内网服务器centos7安装jdk17
java·运维·服务器
念心科道尊22 分钟前
【Csharp】Winform客户端与服务器,局域网加密字符串与文件通信
运维·服务器·c#
zkyqss1 小时前
OpenStack Yoga版安装笔记(十七)安全组笔记
linux·笔记·openstack
愚润求学2 小时前
Linux开发工具——gcc
linux·服务器·开发语言
照书抄代码2 小时前
Linux中用gdb查看coredump文件
linux·运维·服务器
czhc11400756632 小时前
Linux2 CD LL hostnamectl type mkdir dudo
运维·服务器
一大Cpp2 小时前
随笔1 认识编译命令
linux·opencv·ubuntu
ℳℓ白ℳℓ夜ℳℓ3 小时前
Linux网络应用层自定义协议与序列化
linux·运维·服务器