pytest fixture如何使用
时间: 2024-09-25 19:15:58 浏览: 29
`pytest fixtures`是Python测试框架`pytest`中的一个重要功能,用于设置测试环境、提供共享资源,简化测试代码的编写。fixture本质上是一个预执行函数,可以在整个测试套件运行前或每个测试函数开始之前运行一次或多次。
使用fixture的一般步骤如下:
1. **定义fixture**:
在测试模块中,通过`@pytest.fixture`装饰器声明一个函数,它会作为一个独立的可配置单元运行。例如:
```python
def setup_database():
# 这里执行数据库连接、初始化等操作
pass
@pytest.fixture
def database(setup_database):
setup_database()
yield # 阻塞在这里直到test完成,然后自动清理
# 这里的yield允许你在需要的时候返回值给测试函数
```
2. **请求fixture**:
在测试函数中,使用`@pytest.mark.usefixtures('database')`标记来请求这个fixture。测试函数会在fixture运行后执行:
```python
def test_something(database):
# 测试代码,可以访问已经初始化好的database
assert database.is_connected() # 示例用法
```
3. **执行和清理**:
当测试完成后,`pytest`会自动调用fixture的`__exit__`方法来清理资源,比如关闭数据库连接。
阅读全文