如何实现fixture共享?--conftest.py文件

1、作用域

在哪些范围内的用例,可以共享我的fixture??
conftest.py在哪个目录下,哪个目录下的所有用例(包括嵌套的目录)都可以共享

**

2、用例的角度来讲,去调用fixture,搜索顺序:

**
2.1 先找自己的.py模块内有没有
2.2 同级目录下conftest.py当中有没有
2.3 父级目录下conftest.py当有没有
。。。。
pytest的根目录下的conftest.py中有没有

3.fixture嵌套:

定义fixture的时候,参数是另外一个/多个fixture
嵌套的时候,注意作用域。??
    @pytest.fxiture(scope="class")
    def fix1():
        pass
 
    @pytest.fxiture
    def fix2(fix1):
        pass

由于参数里的fix1要先执行,所以
参数里的fix1的作用域 >= fix2的作用域

module和session级别的fixture:
https://www.cnblogs.com/Simple-Small/p/14464878.html

`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、付费专栏及课程。

余额充值