在pytest中fixfure修修饰的函数,return和yield 的先后顺序
时间: 2024-09-13 19:13:34 浏览: 40
pytest中文文档.pdf
在pytest中,使用`fixture`修饰的函数主要用来提供测试数据或者测试环境,它可以返回测试所需的数据,也可以使用`yield`来传递资源的控制权。当使用`yield`时,`fixture`函数会在`yield`语句之前执行,执行完`yield`后暂停,此时可以使用yield返回的数据进行测试。当测试结束后,`fixture`函数会从`yield`之后继续执行,完成资源的清理工作。`return`语句则通常位于`yield`之前,返回用于测试的数据或资源。
这里是一个简单的示例来说明`return`和`yield`的先后顺序:
```python
import pytest
@pytest.fixture
def my_fixture():
print("执行 fixture 函数的初始部分")
data = "一些测试数据"
print("准备测试数据...")
yield data # 在yield处暂停,返回数据给测试函数
print("测试完成,执行清理工作")
cleanup_data() # 假设的清理函数
def test_example(my_fixture):
print(f"在测试函数中使用 fixture 数据: {my_fixture}")
# 这里是测试逻辑
def cleanup_data():
print("执行资源清理")
```
在上述代码中,`my_fixture`使用了`yield`来提供数据给测试函数`test_example`,在`yield`之前,准备了数据并打印了信息。测试函数使用了`yield`返回的数据后,`fixture`函数会在`yield`之后继续执行,进行资源的清理。
阅读全文