Как исправить двойной запуск тестов с docker в Django
25 октября 2023 г. 9:48
Когда я только перешёл на использование docker и docker compose, Pycharm почему-то начал запускать тестирование дважды. Причём в режиме отладки теста тестирование запускалось один раз, как и положено.
Созданные контейнеры при запуске тестов не содержали дубликатов кода в файловой системе, и Pycharm использовал стандартную команду запуска тестов:
/app/.venv/bin/python /opt/.pycharm_helpers/pycharm/django_test_manage.py test --keepdb content.tests.ContentTest /opt/project/
В тоже время тесты запускались единожды, если зайти в контейнер и запустить тесты обычной командой:
python manage.py test
У меня 2 версии файла docker-compose.yml
: один для разработки, а другой для продакшн:
my_app/devops/docker-compose.dev.yml my_app/devops/docker-compose.prod.yml
Оказалось, что нужно было убрать в файле docker-compose.dev.yml
для разработки настройку restart: unless-stopped
, чтобы конфигурация режима рестарта для сервиса была по умолчанию, то есть: restart: 'no'
. В целом, при разработке нет необходимости перезапускать контейнеры в случае сбоя. Даже наоборот, если происходит какой-то сбой, вы сможете это увидеть по неработающему контейнеру и не пропустить возникающую неполадку (а вот в продакшн версии docker-compose.prod.yml
обычно хорошо иметь настройку restart: unless-stopped
, чтобы контейнер автоматически запускался при каком-то сбое). Примерно сервис в docker-compose.yml
может выглядеть так:
version: '3.8' services: core: container_name: spez_core_dev build: context: . dockerfile: dev.Dockerfile command: python manage.py runserver 0.0.0.0:8000 restart: 'no' # dev server no need to restart automatically (it excludes double run testing) ...
В чём причина такого поведения мне до конца до сих пор не понятна: либо при запуске теста контейнер останавливался и снова запускался по каким-то причинам, либо сам docker думает, что контейнер отвалился и нужно создать новый и его запустить, а может причина в другом...
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0