Как заставить 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.