Python Pytest-夹具的动态分辨率';依赖关系

Python Pytest-夹具的动态分辨率';依赖关系,python,dynamic,runtime,pytest,fixtures,Python,Dynamic,Runtime,Pytest,Fixtures,我找不到一个解决方案,以任何不同的方式改变装置的依赖性比下面的咆哮。 问题是我需要根据pytest.config.getoption参数来确定依赖关系,而不是这里使用的参数(在模块级别解析变量) 我需要两种测试模式:快速和完整,保持相同的测试源代码 pytest\u generate\u tests似乎没用,或者至少我不知道如何在这里使用它 导入pytest DO\u FULL\u SETUP=“我需要从request.config.getoption()获取的某些条件,而不是像这样” 如果进行

我找不到一个解决方案,以任何不同的方式改变装置的依赖性比下面的咆哮。 问题是我需要根据
pytest.config.getoption
参数来确定依赖关系,而不是这里使用的参数(在模块级别解析变量)

我需要两种测试模式:快速和完整,保持相同的测试源代码

pytest\u generate\u tests
似乎没用,或者至少我不知道如何在这里使用它

导入pytest
DO\u FULL\u SETUP=“我需要从request.config.getoption()获取的某些条件,而不是像这样”
如果进行完整设置:
#从解释器(和pytest)的角度来看,这种区别是有效的
@pytest.fixture(scope=“session”)
需要def的环境(大量、昂贵、需要固定装置):
“这不需要我所需要的昂贵的设置
在“快速”模式下避免。大约需要一分钟(docker pull等)”
其他:
@pytest.fixture
所需的def_环境():
“”“这是一个快速设置,具有“功能范围”
而且不需要任何额外的固定装置。需要约20毫秒
def测试内容(需要的环境):
“此刻我不想区分什么
所需的\u环境为。测试必须在两种模式下都通过。”“”

这可以使用
请求.getfixturevalue('that\u fixture\u name')
完成。可以在运行时调用fixture。在这种情况下,甚至没有设备的作用域冲突(
'session'
'function'

导入pytest
@pytest.fixture(scope=“session”)
需要def\u环境\u满(需要大量、昂贵的固定装置):
“这不需要我所需要的昂贵的设置
在“快速”模式下避免。大约需要一分钟(docker pull等)”
@pytest.fixture
所需def_环境_fast():
“”“这是一个快速设置,具有“功能范围”
而且不需要任何额外的固定装置。需要约20毫秒
@pytest.fixture
所需def_环境(请求):
“”“根据cli调用参数动态运行命名的fixture函数。”“”
if request.config.getoption('--run'u that'u fast'):
return request.getfixturevalue('needed\u environment\u fast')
其他:
返回请求.getfixturevalue('needed\u environment\u full')
def测试内容(需要的环境):
“此刻我不想区分什么
所需的\u环境为。测试必须在两种模式下都通过。”“”