pytest的fixture作用域() 类 session 模块 函数
时间: 2024-03-04 09:53:52 浏览: 231
session 作用域
pytest的fixture可以设置不同的作用域,包括:
- 函数级别(function):fixture的默认作用域,每个测试函数都会运行一次fixture。
- 类级别(class):fixture将在测试类中的所有测试方法执行之前运行,并在所有测试方法运行完毕后清除。
- 模块级别(module):fixture将在测试模块中的所有测试函数执行之前运行,并在所有测试方法运行完毕后清除。
- 会话级别(session):fixture将在整个测试过程中只运行一次,并在所有测试方法运行完毕后清除。
可以通过fixture的参数scope来指定作用域,默认为function。例如:
```python
import pytest
@pytest.fixture(scope="module")
def myfixture():
print("setup")
yield
print("teardown")
def test_func1(myfixture):
print("test_func1")
def test_func2(myfixture):
print("test_func2")
```
在上面的例子中,myfixture的作用域是module,所以在整个测试模块中只会运行一次setup和teardown。两个测试函数test_func1和test_func2都使用了myfixture,所以在运行这两个测试函数之前和之后都会先运行setup和teardown。
阅读全文