Django параллельное тестирование: тестовые процессы неправильно обращаются к тестовым базам данных - PullRequest
7 голосов
/ 06 августа 2020

У меня локально запущен проект Django 3.0.8, подключенный к локальной базе данных PostgreSQL (postgres:///myapp). Когда я запускаю python manage.py test, мои модульные тесты работают нормально; автоматически создается тестовая база данных с именем test_myapp, и к ней правильно осуществляется доступ.

Однако, когда я запускаю python manage.py test --parallel 8, тест не проходит. Я вижу, что 8 клонированных баз данных сгенерированы правильно (test_myapp_1, test_myapp_2, ..., test_myapp_8), но получаю такие ошибки:

psycopg2.OperationalError: FATAL:  database "myapp_3" does not exist

Похоже, что для параллельных тестов некорректный доступ к базам данных (попытка доступа к базе данных myapp_N, а не test_myapp_N). Я пытаюсь выяснить, есть ли проблемы в моей локальной конфигурации, но это все, что у меня есть в моей базовой конфигурации:

DATABASES = {
    'default': env.db('DATABASE_URL', default='postgres:///myapp'),
}
DATABASES['default']['ATOMIC_REQUESTS'] = True

Почему мои параллельные процессы тестирования не получают правильного доступа к своим соответствующим клонированным тестовым базам данных?

1 Ответ

0 голосов
/ 19 августа 2020

Может быть, вы не создали базу данных? В postqre sql это может быть созданная вами схема. и вы, возможно, пытаетесь подключиться к базе данных с именем схемы. Убедитесь, что вы создали базу данных. Если нет, создайте базы данных с именем, к которому вы хотите получить доступ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...