我有几个pytest套件,每个套件都有几乎相同的conftest文件。由于conftest文件包含一些重复的代码,并且随着时间的推移它们可能会变大,套件的数量也会增加,我决定将conftest fixtures移动到某个路径中的另一个模块并使用{{1'导入它变量到conftest文件。
有一个问题。有一个夹具依赖于conftest文件的局部变量。如何将夹具移动到另一个模块并强制它使用conftest文件的局部变量?
new_conftest_module.py
var = 1
@pytest.fixture(scope="session", autouse=True)
def session_init():
do_something(var)
test_dir1 / conftest.py
pytest_plugins = ['new_conftest_module']
var = 2
test_dir2 / conftest.py
pytest_plugins = ['new_conftest_module']
var = 3
这是一个虚拟示例,但正如您所看到的,问题是var
变量特定于每个conftest文件,但使用它的灯具是相同的。我是否可以使用一种解决方法,以便在每个套件使用特定var
值时将夹具放在一个公共模块中?