Вам необходимо предоставить собственный тестовый бегун.
Биты, которые вы заинтересованы в переопределении по умолчанию django.test.runner.DiscoverRunner
, - это методы DiscoverRunner.setup_databases
и DiscoverRunner.teardown_databases
. Эти два метода связаны с созданием и уничтожением тестовых баз данных и выполняются только один раз. Вы захотите предоставить параметры проекта, определенные по умолчанию, которые используют существующую тестовую базу данных по умолчанию и переопределяют их так, чтобы данные дампа загружались и база данных тестирования не была уничтожена.
В зависимости от размера и содержимого дампа безопасной ставкой может быть просто создание подпроцесса, который будет передавать дамп в интерфейс командной строки SQL базы данных, иначе вы могли бы получить курсор и execute queries directly.
Если вы ищете, чтобы избавиться от арматуры нагрузки полностью, вы можете предоставить тестовый пример пользовательской базы, которая простирается Джанго по умолчанию django.test.testcases.TestCase
с TestCase._fixutre_setup
и TestCase._fixutre_teardown
методов переопределено быть Ноопом.
Caveat emptor: этот бегун не сможет облегчить тесты ни на чем, кроме источников вашего приложения. Можно настроить бегун для создания конкретного псевдонима для подключения к существующей базе данных и загрузки дампа, а затем предоставить собственный тестовый пример, который переопределяет TestCase._database_names
, чтобы указать на его псевдоним.
Каким образом вы используете существующую базу данных, если вы загружаете данные из дампа sql? Я бы предложил загрузить дамп, создать светильники и использовать обычный подход к тестированию. – shanyu
есть много данных, и загрузка с дампа происходит быстрее, чем загрузка с приборов – pyeleven
Так что речь идет не об использовании существующей базы данных. Вы на 100% уверены, что вам нужно провести тестирование, используя полные данные? Может ли образец быть достаточным для тестирования? – shanyu