@pytest.fixture(scope='function', autouse=True)如何加入参数
时间: 2024-01-02 08:02:32 浏览: 189
Python基础教程之pytest参数化详解.pdf
在 `@pytest.fixture(scope='function', autouse=True)` 中加入参数,可以通过两种方式实现:
1. 直接在括号中添加参数即可。例如,如果要在 `@pytest.fixture(scope='function', autouse=True)` 中添加一个名为 `my_param` 的参数,可以这样写:
```
@pytest.fixture(scope='function', autouse=True)
def my_fixture(my_param):
# do something
```
在这种方式下,`my_param` 参数需要通过其他 fixture 函数来传递参数值。
2. 通过 `@pytest.mark.parametrize` 装饰器添加参数。例如,如果要在 `@pytest.fixture(scope='function', autouse=True)` 中添加一个名为 `my_param` 的参数,可以这样写:
```
import pytest
@pytest.fixture(scope='function', autouse=True)
def my_fixture(request):
my_param = request.param
# do something
@pytest.mark.parametrize("my_param", ["value1", "value2"])
def test_func(my_param):
# do something with my_param
assert True
```
在这个例子中,`my_fixture` 函数使用 `request.param` 来获取 `@pytest.mark.parametrize` 装饰器传递的 `my_param` 参数的取值。`test_func` 函数使用 `my_param` 参数来调用 `my_fixture` 函数,并从中获取 `my_param` 参数的值。
阅读全文