Тестирование¶
Для запуска тестирования необходимо создать тестовую базу данных, т.к. с нуля база не создаётся. Создаётся тестовая база по аналогии с основной, но есть некоторые отличия. Разворачиваем при запущенных контейнерах.
- Копируем файл базы данных проекта в корневой каталог контейнера:
sudo docker cp a.sql siriuso_postgres_1:/a.sql
a.sql - имя базы данных
- Разворачиваем тестовую базу:
sudo docker exec -it siriuso_postgres_1 psql -h 127.0.0.1 -U siriuso -d test_siriuso -f /a.sql
- Очистка тестовой базы (бывают ошибки при разворачивании, тогда необходимо очистить и потом выполнить п.2):
sudo docker exec -it siriuso_postgres_1 psql -h 127.0.0.1 -U siriuso -d test_siriuso
и в контейнере выполняем:
do $$ declare r record; begin for r in (select tablename from pg_tables where schemaname='public') loop EXECUTE 'DROP TABLE ' || r.tablename || ' CASCADE'; end loop; end $$;
- Запуск полного тестирования:
sudo docker exec -it siriuso_django_1 python3 manage.py test --keepdb
Флаг –keepdb не даёт удалять тестовую базу данных. Если не укажите, то по завершении теста тестовая база данных будет удалена.
- Запуск тестирование конкретной модели:
sudo docker exec -it siriuso_django_1 python3 manage.py test konferencoj --keepdb
konferencoj указана для примера, вместо konferencoj ставите свою модель