使用pytest测试 和 conftest.py 如何区分全局的变量还有case 的变量
时间: 2024-02-03 10:15:52 浏览: 151
在pytest中,可以使用conftest.py来定义全局的fixtures,fixtures是一种可以在测试之前执行并返回数据或对象的函数。fixtures可以在测试用例中使用,也可以在其他fixtures中使用。
对于全局的变量,可以在conftest.py中定义一个fixture,它返回一个全局变量。在测试用例中,可以使用@pytest.fixture(scope='session')来定义一个session级别的fixture,它只会在整个测试会话期间执行一次,并且可以被所有测试用例使用。
对于case的变量,可以在测试用例中使用@pytest.fixture来定义一个fixture,它返回一个case级别的变量或对象。这个fixture只会在当前测试用例中执行一次,在其他测试用例中不可用。
示例代码如下:
```python
# conftest.py
import pytest
@pytest.fixture(scope='session')
def global_var():
return 'global variable'
# test_sample.py
import pytest
@pytest.fixture
def case_var():
return 'case variable'
def test_global(global_var):
assert global_var == 'global variable'
def test_case(case_var):
assert case_var == 'case variable'
```
在上面的示例中,`global_var`是一个session级别的fixture,它返回一个全局变量;`case_var`是一个case级别的fixture,它返回一个case级别的变量。在测试用例中,可以使用这两个fixture来分别使用全局变量和case变量。
阅读全文