Как заставить Selenium и django использовать одну и ту же базу данных

Я новичок в использовании Selenium.

И у меня возникла проблема с его использованием. Если я правильно понимаю, когда я запускаю свой набор тестов (./manage.py test), django создает новую базу данных для запуска набора тестов. Но если я включаю Selenium тест в этот набор тестов, кажется, что Selenium подключается к моему серверу и получает доступ к моей реальной базе данных, что делает мой тест неудачным

Что я пытаюсь сделать, так это либо иметь возможность использовать реальную базу данных с django test, либо иметь возможность использовать тестовую базу данных с Selenium.

Есть ли решение моей проблемы?

Вы подключаетесь к реальному серверу:

driver.get("http://demo.localhost:8000/")

Не удивительно, что вы используете реальную базу данных, ведь вы входите на реальный сайт. Вам нужно использовать live_server_url и вместо TestCase использовать т.е. StaticLiveServerTestCase:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase

class VisitCreationTestCase(StaticLiveServerTestCase):
    def check_connect(self, driver):
        driver.get(self.live_server_url)
        ...

    def setUp(self) -> None:
        ...
        self.check_connect(self.driver)

    def test_login(...):
        ...
        

Вы можете найти несколько хороших практических подсказок в Obey testing goat.

Вернуться на верх