pytest fixture 函数有没有办法给普通方法 (非 test 测试方法) 调用?

场景是这样的:
首先是增加了 2 个 pytest 命令行参数,env 和 project,然后定义了 一 个 fixture 函数,是获取项目环境配置的
然后 test 方法是执行 requests 请求接口,我是希望只传接口的 path,接口的域名根据我命令行的 env 和 project 去配置文件中读取出来,然后再拼接成完整的接口 url
这个拼接的过程我是想单独封装在一个 build_url 方法中,那么这个 build_url 方法要怎么能用到 pytest 的 fixture 方法呢?

或者有其他什么思路能解决我这个问题的?折磨我 2 天了
伪代码如下

import pytest
import requests


@pytest.fixture()
def env_config(request):
    """
    根据命令行参数获取配置文件数据
    :param request:
    :return:
    """
    config_path = Path(request.config.rootdir,
                       "config",
                       request.config.getoption("project"),
                       f'{request.config.getoption("environment")}.yaml')
    return Yaml(config_path).data


def request(path, method, data):
    return requests.request(method,build_url(path), json=data)


def build_url(path):
    # 这里怎么可以用到env_config这个fixture返回的数据?

    return host+path


def test_login():
    r = request('login', 'post', {'username': 'admin'})
    assert r.status_code == 200


↙↙↙阅读原文可查看相关链接,并与作者交流