如何在 conftest 中使用 fixture 读取 配置文件的参数并设置不同的作用域,然后把不同作用域的参数传递给测试用例
时间: 2024-03-12 18:50:24 浏览: 33
可以使用 `pytest.fixture` 装饰器来定义 fixture,同时使用 `pytest.config` 对象来读取配置文件中的参数。
例如,假设你的配置文件为 `config.ini`,包含以下内容:
```
[app]
name = myapp
env = test
```
你可以在 conftest.py 中定义一个 fixture,如下所示:
```python
import pytest
from configparser import ConfigParser
@pytest.fixture(scope='session')
def app_config():
# 读取配置文件
config = ConfigParser()
config.read('config.ini')
# 返回配置参数
return {
'name': config.get('app', 'name'),
'env': config.get('app', 'env')
}
```
这个 fixture 的作用域为 `session`,表示在整个测试会话中只会执行一次。在测试用例中,你可以通过参数传递这个 fixture,并使用它来获取配置参数。
例如,假设你有一个测试用例需要用到这些配置参数:
```python
def test_app_name(app_config):
assert app_config['name'] == 'myapp'
def test_app_env(app_config):
assert app_config['env'] == 'test'
```
这两个测试用例都接收 `app_config` 这个 fixture 作为参数,在执行时会自动调用 `app_config` fixture,并传递它返回的配置参数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)