Как я могу указать базу данных для тестов Django, которая будет использоваться вместо того, чтобы создавать ее каждый раз? - PullRequest
14 голосов
/ 05 января 2011

Я хочу иметь возможность использовать существующую тестовую базу данных для выполнения моих тестов, и при этом Django не создает и не удаляет базу данных каждый раз, когда я хочу запускать тесты.Возможно ли это?

Ответы [ 2 ]

15 голосов
/ 05 января 2011

Это возможно, вот способ:

1) Определите свой собственный бегущий тест, посмотрите здесь , чтобы увидеть, как.

2) Для своего пользовательского тестировщика посмотрите в тестовом тестере по умолчанию , вы можете просто скопировать и вставить код и просто прокомментировать эту строку: connection.creation.destroy_test_db(old_name, verbosity), которая отвечает за уничтожение тестовой базы данных, и я думаю, что вы должны поместить строку connection.creation.create_test_db(..) в попытку, за исключением чего-то вроде этого:

try:
    # Create the database the first time.
    connection.creation.create_test_db(verbosity, autoclobber=not interactive) 
except ..: # Look at the error that this will raise when create a database that already exist
    # Test database already created.
    pass 

3) Привязать TEST_RUNNER в файле setting.py к вашему исполнителю.

4) Теперь запустите ваш тест следующим образом: ./manage.py test

6 голосов
/ 03 июня 2016

Кто использует Django> = 1.8

python manage.py test --keepdb

- keepdb Сохраняет тестовую базу данных между запусками теста.Преимущество этого состоит в том, что вы пропускаете действия создания и уничтожения, что может значительно сократить время выполнения тестов, особенно в большом наборе тестов.Если тестовая база данных не существует, она будет создана при первом запуске, а затем сохранена для каждого последующего запуска.Любые непримененные миграции также будут применены к тестовой базе данных перед запуском тестового набора.

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