@m0ody
backend dev (python, django, postgresql, celery)

Как создавать django модели для тестов?

Начал разбираться с тестированием в Django и возникла задача протестировать написанные мной Aggregations, QuerySet, Managers и т.д. Для более удобного тестирования хотелось бы создать отдельные модели только для тестов и чтобы они не попадали в production. Как это лучше сделать?
  • Вопрос задан
  • 490 просмотров
Пригласить эксперта
Ответы на вопрос 4
un1t
@un1t
Во-первых в продакшене тесты не надо запускать. А во-вторых тесты должны запускаться в отдельной базе.
Посмотри pytest и django-pytest.

Вот тут можно примеры тестов посмотреть
https://bitbucket.org/ishalyapin/django-test-examp...
Ответ написан
Комментировать
sim3x
@sim3x
Про разнообразие видов тестов
https://events.yandex.ru/lib/talks/535/

В зависимости от вида - необходимость в использовании бд разнится
Для приемочных-фнкциональных - БД должна быть с данныи близкими к реальным (идеально, обфусцированная база текущего продакшена) на СУБД с настройками максимально близкими к продакшену
Для юнит - БД нужна только если тестируется ОРМ

factory_boy для юнит тестов
selenium для приемочных

www.tdd-django-tutorial.com/tutorial/1
Ответ написан
Комментировать
mututunus
@mututunus
Backend developer (Python, Golang)
Ответ написан
Комментировать
pinkevich
@pinkevich
Developer
Используйте для тестов другую базу данных
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:'
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы