Pytest测试框架(4):conftest.py文件应用---实现数据共享

conftest.py文件:

  pytest中的fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制。但是我们更加希望的是在一个测试套件中,能够共享fixture的机制,这样一个测试套件里面的所有测试点都能够共同使用。

  conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture

  在pytest中可以通过conftest.py来共享fixture,如果希望多个测试文件共同使用一个fixture时候,可以在该目录下创建conftest.py文件。

 使用conftest.py规则要求:

1、该文件所在目录必须存在__init__.py文件           
2、该文件不能被其他文件导入,会自动被调用
3、所有同目录测试文件运行前都会执行该文件
4、该文件名字是固定的,不可以做任何修改

代码结构:


conftest.py文件的应用

代码示例:

1,在项目的目录下新建一个conftest.py文件 2,在conftest.py文件中编写fixture方法

 3,在同层级的目录下编写测试文件,如下图中的test_demo_06.py,test_demo_07.py文件

 

 4,执行效果如下图:

`conftest.py` 文件pytest框架中的一个特性,它允许你在多个测试文件之间共享测试函数和测试固件。`conftest.py` 文件中定义的fixture函数可以被同一个目录及其子目录下的所有测试用例使用。 在`conftest.py`中定义fixture通常涉及到以下步骤: 1. 导入pytest库,并使用`@pytest.fixture`装饰器来标记一个函数作为fixture。 2. 定义fixture函数,并可以指定作用域(如`scope="module"`表示作用域为模块,`scope="session"`表示作用域为会话等)。 3. 在fixture函数中,编写用于准备测试环境的代码,比如创建临时文件、数据库连接或实例化测试对象等。 4. 使用fixture函数时,不需要直接调用该函数,而是通过参数名来引用它,pytest会自动注入这些参数。 下面是一个简单的`conftest.py`示例,展示了如何定义和使用fixture: ```python # conftest.py import pytest @pytest.fixture(scope="session") def setup(): print("开始测试会话的设置工作") yield # 产生yield表示这是fixture的结束点,测试会在yield之后继续执行,结束前会进行清理工作 print("结束测试会话的清理工作") @pytest.fixture def sample_data(): return [1, 2, 3] ``` 在测试文件中使用fixture: ```python # test_example.py def test_example(sample_data, setup): print(f"测试使用了数据: {sample_data}") # 进行测试断言等操作... ``` 当你运行pytest时,它会自动发现`conftest.py`文件,并在运行测试时调用其中的fixture函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值