fox_12
@fox_12
Расставляю биты, управляю заряженными частицами

Тестирование в Django — лучшие практики?

Имеем приложение написанное на Django, содержащее множество связанных между собой моделей.
Мне необходимо написать тестирование какого-то отдельного функционала для автоматических тестов.
Для тестирования необходим набор каких-то тестовых данных. База сейчас составляет порядка сотен мегабайт. Сделать на ее базе фикстуру и хранить в репозитории данные на сотни мегабайт только для тестирования - не выход. К тому же там куча конфиденциальной информации.
Сидеть копаться в связях и на их базе пытаться создать фикстуру вручную - много лишней рутинной работы, да и django ругается - предлагает использовать миграции для загрузки начальных данных.
К тому же при любом изменении моделей - придется возиться заново.
В общем - хотелось бы этот процесс наполнения базы набором случайных данных для тестирования каким-то образом автоматизировать.
Каким образом лучше всего данная проблема решается? - есть ли готовые решения облегчающие работу?
  • Вопрос задан
  • 1346 просмотров
Решения вопроса 2
Комментировать
@marazmiki
Укротитель питонов
Насколько я понял, речь не о лучших практиках тестирования как таковых, а именно о заполнении моделей.

Штука тут вот в чём: тесты должны быть по максимуму независимы, поэтому заполнять модель целиком обычно никогда не нужно: достаточно заполнить одно или несколько полей и протестировать их. Поэтому задача сводится к другой: как можно упростить себе жизнь при заполнении моделей.

Лучшее, из того что я видел — mixer. Вообще-то это просто генератор случайных данных, но есть и бэкенд для работы с моделями джанги.

Через него можно создавать модель, содержащую только нужную информацию. Всё остальное (включая реляции) будет заполнено автоматически, если нужно. Очень удобно и очень просто. И очень гибко.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы