• pytest教程-30-测试数据管理插件-pytest-datadir


    领取资料,咨询答疑,请➕wei:  June__Go

    上一小节我们学习了pytest重复执行用例插件pytest-repeat,本小节我们讲解一下测试数据管理插件-pytest-datadir。

    在软件测试中,有效管理测试数据对于编写全面的测试用例至关重要。Pytest插件 pytest-datadir 提供了一种优雅的解决方案,使得数据目录驱动测试变得更加简单而灵活。本文将深入介绍 pytest-datadir 插件的基本用法和实际案例,助你更好地组织和利用测试数据。

    什么是pytest-datadir?

    pytest-datadir 是Pytest的一个插件,它允许你使用外部目录中的文件作为测试数据源,将测试数据与测试代码分离。通过使用该插件,你能够更清晰、更灵活地组织测试数据,从而使测试用例更具可读性和可维护性。

    安装pytest-datadir

    pip install pytest-datadir

    使用 pytest-datadir

    在你的测试项目中,你可以创建一个名为 data 的目录,或者在每个测试模块下创建一个同名的目录,用于存放测试数据文件。

    假设你的项目结构如下:

    1. project/
    2. ├── data/
    3. │ ├── hello.txt
    4. └── test_hello/
    5. ├── spam.txt
    6. └── test_hello.py

    在 test_hello.py 文件中,你可以使用 datadir 和 shared_datadir 来访问数据文件:

    1. # test_hello.py
    2. import pytest
    3. def test_read_global(datadir):
    4. # 使用 datadir 访问全局 data 目录下的文件
    5. file_path = datadir / 'hello.txt'
    6. with open(file_path, 'r', encoding='utf-8') as f:
    7. content = f.read()
    8. assert 'Hello World!' in content
    9. def test_read_module(shared_datadir):
    10. # 使用 shared_datadir 访问当前模块目录下的文件
    11. file_path = shared_datadir / 'spam.txt'
    12. with open(file_path, 'r', encoding='utf-8') as f:
    13. content = f.read()
    14. assert 'eggs' in content

    在这个例子中,datadir 是一个 pathlib.Path 对象,它指向项目根目录下的 data 文件夹。shared_datadir 是一个 pathlib.Path 对象,它指向当前测试模块的目录。

    注意事项

    • pytest-datadir 会将原始文件复制到临时文件夹,所以对文件内容的更改不会影响原始数据文件。
    • 如果你想要在测试中修改数据文件,可以在测试结束后清理这些更改。

    运行测试

    在命令行中运行 pytest 时,你可以指定 datadir 和 shared_datadir 的路径:

    1. pytest -v test_hello.py

    这将执行 test_hello.py 中的测试,并使用 datadir 和 shared_datadir 来访问数据文件。

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!领取资料,咨询答疑,请➕wei:  June__Go

  • 相关阅读:
    3款windows实用软件,免费又良心,真正懂你的需求
    Java的方法
    倍增、DFS序
    VisionMaster自定义模块
    ros话题通信-自定义msg
    Ultra-Fast-Lane-Detection-v2 {后处理优化}//参考
    Swift中@dynamicMemberLookup和callAsFunction特性实现对象透明代理功能
    【Python小项目之Tkinter应用】随机点名/抽奖工具小优化:实现输入框人数限定与人名显示优化,保证结果人名在窗口内显示,如果内容显示超出则弹出警告窗口
    【毕业设计】深度学习OCR中文识别系统 - opencv python
    sa-token学习
  • 原文地址:https://blog.csdn.net/qq_22357323/article/details/138199914