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

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

Ответы

Ответ 1

Возможно, вот путь:

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 в файле settings.py с вашим тестовым бегуном.

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

Ответ 2

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

python manage.py test --keepdb

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