python常用的fixture夹具
时间: 2023-10-14 17:16:35 浏览: 120
在 Python 中,fixture 是测试框架 pytest 中的一个重要概念。它可以在测试函数或测试类执行前后执行一些操作,比如创建测试数据、连接数据库、清理临时文件等。常用的 fixture 夹具有以下几种:
1. @pytest.fixture:使用装饰器定义 fixture,可以在测试函数中使用。比如:
```python
import pytest
@pytest.fixture()
def test_data():
return [1,2,3,4,5]
def test_sum(test_data):
assert sum(test_data) == 15
```
2. @pytest.fixture(scope="module"):定义 module 级别的 fixture,可以在多个测试函数/类中使用。比如:
```python
import pytest
@pytest.fixture(scope="module")
def test_data():
return [1,2,3,4,5]
def test_sum(test_data):
assert sum(test_data) == 15
def test_product(test_data):
assert reduce(lambda x,y: x*y, test_data) == 120
```
3. @pytest.fixture(autouse=True):定义自动使用的 fixture,无需在测试函数中显式调用。比如:
```python
import pytest
@pytest.fixture(autouse=True)
def setup():
print("Test is starting...")
def test_add():
assert 1+1 == 2
def test_subtract():
assert 5-3 == 2
```
4. @pytest.fixture(params=[...]):定义参数化 fixture,可以在测试函数中多次使用,每次使用不同参数。比如:
```python
import pytest
@pytest.fixture(params=[(1,2), (3,4), (5,6)])
def test_data(request):
return request.param
def test_sum(test_data):
assert sum(test_data) == test_data[0]+test_data[1]
```
这些是常用的 fixture 夹具,可以根据实际需要进行选择。pytest 还有很多其他的 fixture,可以在文档中查看。
阅读全文