pytest setup 初始化发方法传参
时间: 2024-09-28 13:08:44 浏览: 53
`pytest`是一个流行的Python测试框架,它允许你在测试初始化阶段设置一些通用的环境或者参数。当你想要传递参数给测试函数时,通常在`setup_module()`、`setup_function()`或`fixture`中完成。这里是一些基本的例子:
1. **`setup_module()`**:这个方法会在模块级别的所有测试之前运行一次,适合于那些不需要每次测试都初始化但对整个模块有影响的操作,如数据库连接或者配置文件的读取。
```python
def setup_module(module):
global db_connection
db_connection = connect_to_database()
```
2. **`setup_function()`**:每个测试函数调用前都会执行,你可以在这里为单个测试准备数据或状态。
```python
@pytest.fixture
def test_data(request):
data = prepare_data(request.param)
yield data
def test_something(test_data):
assert something_with_data(test_data)
```
在这个例子中,`test_data`是一个fixture,它接收一个参数并返回处理后的数据,然后在`test_something`中使用。
如果你需要将参数传递给具体的测试函数,可以直接在测试装饰器中指定:
```python
@pytest.mark.parametrize('arg', ['value1', 'value2'])
def test_func(arg):
# 这里 arg 就是你从 setup 中传递的参数
do_something_with(arg)
```
阅读全文