首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytest.ini

pytest.ini 是一个配置文件,用于自定义 pytest 测试框架的行为。它允许开发者设置各种选项和参数,以便更好地控制测试的执行过程。以下是关于 pytest.ini 的基础概念、优势、类型、应用场景以及常见问题和解决方法。

基础概念

pytest.ini 文件通常位于项目的根目录下,用于定义 pytest 的全局配置。它可以包含多个部分,如 [pytest][pytest.mark] 等,每个部分可以设置不同的选项。

优势

  1. 简化命令行参数:通过在 pytest.ini 中设置选项,可以避免每次运行测试时都输入复杂的命令行参数。
  2. 统一配置管理:集中管理所有测试相关的配置,便于维护和更新。
  3. 提高可读性:配置文件比命令行参数更易于阅读和理解。

类型

pytest.ini 文件主要包含以下几种类型的配置:

  • 全局配置:影响整个测试运行的设置。
  • 标记配置:用于定义自定义标记,以便选择性地运行特定测试。
  • 插件配置:配置第三方插件的行为。

应用场景

  1. 设置默认的测试报告格式:例如,指定生成 HTML 报告。
  2. 定义测试环境变量:如数据库连接字符串等。
  3. 配置并行测试执行:提高测试效率。
  4. 设置超时时间:防止某些测试用例运行时间过长。

示例代码

以下是一个简单的 pytest.ini 文件示例:

代码语言:txt
复制
[pytest]
addopts = --html=report.html --self-contained-html
testpaths = tests
python_files = test_*.py
python_classes = Test*
python_functions = test_*

[pytest.mark.slow]
slow_test = True

在这个例子中:

  • addopts 设置了默认生成 HTML 报告的选项。
  • testpaths 指定了测试文件的存放路径。
  • python_filespython_classespython_functions 定义了测试文件、类和方法的命名规范。
  • [pytest.mark.slow] 部分定义了一个自定义标记 slow,用于标记慢速测试。

常见问题及解决方法

问题1:pytest.ini 文件未被识别

原因:文件可能未放置在正确的目录下,或者文件名拼写错误。

解决方法:确保 pytest.ini 文件位于项目的根目录,并且文件名拼写正确。

问题2:配置选项未生效

原因:可能是配置选项的语法错误,或者选项名称拼写错误。

解决方法:检查 pytest.ini 文件中的语法和选项名称,确保它们符合 pytest 的规范。

问题3:自定义标记未生效

原因:可能未正确使用自定义标记,或者在运行测试时未指定该标记。

解决方法:确保在测试函数上使用了正确的自定义标记,并在运行测试时通过 -m 参数指定该标记,例如:

代码语言:txt
复制
pytest -m slow

通过以上信息,你应该能够更好地理解和使用 pytest.ini 文件来优化你的测试流程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pytest配置文件pytest.ini

pytest.ini文件是pytest的主配置文件,可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。...pytest.ini的位置:一般放在项目工程的根目录(即当前项目的顶级文件夹下) cmd下使用 pytest -h 命令查看pytest.ini的设置选项 [pytest] ini-options in...the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist): markers for test functions...里就不需要每次命令行执行时都带上了,默认就会以pytest.ini里配置去运行,多个命令行参数用空格分隔,可添加多个命令行参数 -所有参数均为插件包的参数 [pytest] addopts = -v -.../report/report.html 当pytest.ini未配置addopts = -v时,py文件里执行pytest.main(["test_001_rights.py"])或cmd下执行pytest

2K20
  • 配置文件pytest.ini的详细使用

    其中,pytest.ini 文件是一种方便的方式来定义和管理 pytest 的配置。本文将详细介绍 pytest.ini 的作用和使用方法,帮助您定制化和管理 pytest 测试框架的配置。...pytest.ini配置文件pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行,它有如下作用:定制化配置:通过 pytest.ini...覆盖默认配置:pytest.ini 文件允许覆盖 pytest 默认的配置选项。通过在 pytest.ini 中定义相同的配置项,可以修改默认行为,以满足项目的需求。...pytest.ini文件的创建和配置创建 pytest.ini 文件:在项目的根目录下创建一个名为 pytest.ini 的文件。...在本文中,我们介绍了 pytest.ini 文件的作用和使用方法。现在您可以创建自己的 pytest.ini 文件,并根据项目的需求进行定制化配置了。

    44920

    pytest文档18-配置文件pytest.ini

    前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。...ini配置文件 pytest里面有些文件是非test文件 pytest.ini pytest的主配置文件,可以改变pytest的默认行为 conftest.py 测试用例的一些fixture配置 _init..._.py 识别该文件夹为python的package包 tox.ini 与pytest.ini类似,用tox工具时候才有用 setup.cfg 也是ini格式文件,影响setup.py的行为 ini文件基本格式...# 保存为pytest.ini文件 [pytest] addopts = -rsxX xfail_strict = ture 使用pytest —help指令可以查看pytest.ini的设置选项...[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist)

    3.6K20

    Python测试框架pytest(24)配置文件pytest.ini

    pytest.ini 放在项目的根目录下,名字也不能随意更改。 注意:pytest.ini 不能使用任何中文符号,包括汉字、空格、引号、冒号等等。...查看 pytest.ini 的配置选项 打开命令行,输入命令 pytest --help 关于 pytest.ini 的内容如下: 1、配置项 1.1、markers 1、创建test_markers.py...文件 有时候标签多了,不容易记住,为了方便后续执行指令的时候能够准确使用mark标签,可以写入到pytest.ini文件。...使用pytest.ini配置文件添加配置信息 之后项目的根目录创建pytest.ini配置文件 文件内容: [pytest] url = https://www.cnblogs.com/alltests.../ 命令行再次执行命令: pytest -s test_demo.py 运行结果: 获取到pytest.ini文件里的配置信息

    1K40

    pytest文档64-内置 pytestconfig 动态添加和获取 pytest.ini 配置参数

    前言 前面讲 pytestconfig 的时候,可以获取到 pytest.ini 里面的配置参数。..._ininames.append(name) 动态添加配置信息 前面一篇讲添加命令行参数,可以用 addoption 来添加命令行参数,这里我们是添加 pytest.ini 的配置信息 adddini里面参数说明..."--cmdopt", action="store", default="type1", help="my option: type1 or type2" ) # 添加参数到pytest.ini...parser.addini('url', type=None, default="http://49.235.92.12:8200/", help='添加 url 访问地址参数') # 获取 pytest.ini...配置 url地址 如果有一天我们的测试环境发生了改变,这时候不需要去改代码,只需在 pytest.ini 配置一个环境地址 [pytest] url = https://www.cnblogs.com

    1.5K40

    pytest入门 -3

    首先用Windows系统的朋友注意下下面的问题 也就是说: 1、pytest.ini使用的时候删掉中文注释 2、win命令行执行命令用双引号 ——————————分割线————————...pytest.mark.skip(reason="跳过原因")参数可不传 2)有条件跳过 pytest.mark.skipif(跳过用例的条件) 例1:无条件跳过 例2:有条件跳过 执行pytest,注: 我的pytest.ini...2、生成报告 我们安装的时候安装过一个pytest -html的库,这个库就能生成报告,只需要在执行的时候修改命令,或者修改一下pytest.ini配置即可。...先来看一下pytest-html这个库生成的报告: 先在项目目录下新建一个叫report的package装报告文件,然后修改pytest.ini文件如下: 然后执行pytest就会生成报告了 但是这个生成的报告显示的内容不全

    21630

    pytest文档65-内置 request 读取项目的根目录 rootdir

    rootdir: D:\wangyiyun\webauto\case 接下来我们需要解决的问题时,不管在哪个目录运行,它的项目跟目录应该都是我们的工程目录 D:\wangyiyun\webauto pytest.ini...pytest 运行用例的时候项目的 rootdir 当没有 pytest.ini 配置文件的时候会根据 conftest.py 找到它的跟目录。...由于前面没有用到pytest.ini 配置文件,导致不同目录运行用例的 rootdir 不一样。...当项目下存在 pytest.ini 配置文件的时候,会认为 pytest.ini 所在的目录是 rootdir 目录, 所以我们一般会把 pytest.ini 配置文件放到项目的跟目录。...win32 -- Python 3.6.6, pytest-4.5.0, py-1.9.0, pluggy-0.13.1 rootdir: D:\wangyiyun\webauto, inifile: pytest.ini

    1K30

    pytest + yaml 框架 -13.多环境配置切换

    多环境配置 如果需用到多套环境 test/uat 等,那么应该在用例的根目录(pytest.ini 同级文件)创建一个config.py 文件 pip 安装插件 pip install pytest-yaml-yoyo..."test": TestConfig, "uat": UatConfig } 那么在执行用例的时候,可以选择执行test 环境还是uat 环境,有 2 种方式可以配置待执行的环境 方法一: 在pytest.ini...[pytest] env = test 方法二: 执行 pytest 命令的时候设置 pytest --env test 如果2个地方都有设置,那么优先级是:命令行参数--env test 大于 pytest.ini...测试环境的 BASE_URL 在上一篇中讲到 pytest + yaml 框架 -11.全局 base_url 配置 环境地址优先级使用如下: 1.全局配置命令行参数--base-url优先级大于 pytest.ini...优先级会低于命令行和 pytest.ini 的配置 总的来说:url 绝对地址 > config 中的base_url > 命令行参数—base-url > pytest.ini 文件中的 base_url

    81930

    pytest + yaml 框架 -12.支持执行sql 和 断言sql

    多环境配置 如果需用到多套环境 test/uat 等,那么应该在用例的根目录(pytest.ini 同级文件)创建一个config.py 文件 pip 安装插件 pip install pytest-yaml-yoyo..."test": TestConfig, "uat": UatConfig } 那么在执行用例的时候,可以选择执行test 环境还是uat 环境,有 2 种方式可以配置待执行的环境 方法一: 在pytest.ini...[pytest] env = test 方法二: 执行 pytest 命令的时候设置 pytest --env test 如果2个地方都有设置,那么优先级是:命令行参数--env test 大于 pytest.ini...测试环境的BASE_URL 在上一篇中讲到 pytest + yaml 框架 -11.全局 base_url 配置 环境地址优先级使用如下: 1.全局配置命令行参数--base-url优先级大于 pytest.ini...优先级会低于命令行和 pytest.ini 的配置 总的来说:url 绝对地址 > config 中的base_url > 命令行参数—base-url > pytest.ini 文件中的 base_url

    1.5K20
    领券