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

三、结束语


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

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

相关推荐
Shepherd06191 小时前
【Jenkins实战】Windows安装服务启动失败
运维·jenkins
Biomamba生信基地2 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
flying robot2 小时前
RPM的使用
linux
鹿鸣天涯2 小时前
‌华为交换机在Spine-Leaf架构中的使用场景
运维·服务器·网络
小白也有IT梦2 小时前
域名绑定服务器小白教程
运维·nginx
有梦想的咕噜3 小时前
Secure Shell(SSH) 是一种网络协议
运维·网络协议·ssh
dntktop3 小时前
免费,WPS Office教育考试专用版
运维
苹果醋33 小时前
C语言 strlen 函数 - C语言零基础入门教程
java·运维·spring boot·mysql·nginx