Юнит-тест Django MongoEngine
Я пытаюсь использовать модульные тесты в приложении Django, которое использует MongoDB
в качестве базы данных и MongoEngine
для взаимодействия с базой данных. Используя примеры из этого ответа, вот простой тест:
from django.test import TestCase
from mongoengine import connect, disconnect
class MongoEngineTestCase(TestCase):
def _fixture_setup(self):
pass
def _fixture_teardown(self):
pass
class CustomTestCase(MongoEngineTestCase):
def setUp(self):
connect(
db="test_db",
host="mongomock://localhost:27017/",
alias="test_db",
)
def tearDown(self):
disconnect(alias="test_db")
def test_one(self):
self.assertEqual(1, 1)
И я использую пользовательский тестовый прогон, чтобы избежать подключения к базе данных по умолчанию, определенной в settings.py
.
test_runner.py:
from django.test.runner import DiscoverRunner
class CustomTestRunner(DiscoverRunner):
def setup_databases(self, **kwargs):
pass
def teardown_databases(self, old_config, **kwargs):
pass
settings.py:
TEST_RUNNER = "AppName.test_runner.CustomTestRunner"
Однако, когда я запускаю python manage.py test AppName.tests.CustomTestCase.test_one
, я получаю эту ошибку, указывающую на то, что Django пытается подключиться к базе данных по умолчанию, указанной в settings.py:
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1:3306' (111)")
Как я могу это исправить?