pytest当中conftest.py的使用

conftest.py是一个专门用于存放fixture函数的文件,它的主要作用是在不同的测试案例中复用相同的fixture,常与pytest库配合使用,实现如全局登录等跨模块的共享逻辑。该文件需与测试用例在同一层级,无需import导入即可生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 一、规则

1、conftest.py文件是单独存放的一个单独夹具文件,名称不可修改

2、用处可以在不同的py文件当中使用同一个fixture函数

3、原则conftest.py 要和运行的用例放在同一层级(例如testcase包下面,一般会作用于同级及以下,也可以在不同模块下创建conftest.py),并且不需要任何import导入操作。

 二、实现

1、conftest.py

 2、case引用fixture函数

三、总结


使用场景:一般conftest.py和@pytest.fixture()结合使用,实现全局应用(例如:项目的全局登录、模块的全局处理等)

 一、规则

1、conftest.py文件是单独存放的一个单独夹具文件,名称不可修改

2、用处可以在不同的py文件当中使用同一个fixture函数

3、原则conftest.py 要和运行的用例放在同一层级(例如testcase包下面,一般会作用于同级及以下,也可以在不同模块下创建conftest.py),并且不需要任何import导入操作。

 

 二、实现

1、conftest.py

 

 2、case引用fixture函数

 

三、总结

 

`pytest conftest.py`是一个Python配置文件,用于组织测试项目的共享设置、 fixtures (固定件) 和辅助函数。当你有多个测试模块需要共用的功能,或者想在整个项目中定义一些通用的行为,如数据库连接、日志配置等,就可以将它们放在`conftest.py`文件中。 **使用方法**: 1. **导入**: 在`conftest.py`文件中,你可以导入标准库中的pytest模块或其他自定义模块,然后定义你需要的全局设置或 fixtures。 ```python import pytest from your_module import setup_database # 定义全局 fixture @pytest.fixture(scope='session') def database(): setup_database() yield teardown_database() # 可选的清理操作 ``` 2. **定义fixture**: 这些函数在每个测试运行时只执行一次,并返回给所有请求它的测试。例如,上面的`database` fixture 设置了数据库并提供给整个测试会话。 3. **标记和分组**: 使用`@pytest.mark.parametrize`可以创建可重用的数据集合,或者使用`pytest.mark.usefixtures`指定哪些fixture对测试用例生效。 ```python @pytest.mark.parametrize('input_value, expected_output', [(1, 2), (2, 4)]) def test_multiply(input_value, expected_output): assert input_value * 2 == expected_output ``` 4. **元类(Metaclass)**: 如果你想改变测试类的行为,可以在`conftest.py`中定义一个元类,然后应用到特定的测试类上。 5. **自定义报告钩子**: `pytest_configure`, `pytest_unconfigure`, 等函数可以用来自定义测试运行的开始和结束阶段的行为。 **相关问题--:** 1. 如何在`conftest.py`中编写断言和异常处理? 2. 怎么样让`conftest.py`文件只在特定条件下被加载? 3. 除了`session`作用域外,还有哪些其他的fixture作用域可用?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春天的菠菜

一毛两毛也是动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值