pytest-django 将夹具添加到 live_server 夹具

Ada*_*dam 5 python django pytest pytest-django

我需要向live_serverpytest-django专门覆盖的django_db_setup.

话虽如此,我知道对未刷新干净的数据库运行测试并不理想,但这是我正在使用的。

在我们的正常测试套件中,我们使用覆盖django_db_setup在我们的conftest.py文件中不做任何事情,如下所示

@pytest.fixture(scope="session")
def django_db_setup():
    pass
Run Code Online (Sandbox Code Playgroud)

看来,当我使用它live_server提供的夹具时,pytest-django它不尊重这一点,因为它试图在测试结束时刷新数据库。人们将如何规避这一点?我发现了如下所示的结束,但如果有更好的解决方案,我想避免它。

@pytest.fixture(scope='session')
def my_live_server(request):
    request.getfixturevalue('django_db_setup')
    return live_server(request)
Run Code Online (Sandbox Code Playgroud)

Ada*_*dam 0

这就是我必须做的来解决这个问题。然而,我收到了直接调用固定装置的 pytest 警告live_server。这可以避免 pytest<4

@pytest.fixture(scope="session")
def my_live_server(request):
    request.getfixturevalue("fixture_i_want")
    return live_server(request)
Run Code Online (Sandbox Code Playgroud)