Skip to content

Добавлена возможность зпустить тесты полностью изолированно в контейнере docker#29

Open
CaseAsLimbo wants to merge 2 commits into
mainfrom
tests-in-container
Open

Добавлена возможность зпустить тесты полностью изолированно в контейнере docker#29
CaseAsLimbo wants to merge 2 commits into
mainfrom
tests-in-container

Conversation

@CaseAsLimbo

Copy link
Copy Markdown
Contributor

Изменения

  • Добавлен файл образа для тестов Dockerfile.test для билда контейнера с тестами
  • Добавлены make-команды pytest-container-build, pytest-container-run и pytest-rerun для сборки и запуска контейнера с тестами.

Детали реализации

  • Так как в тестах происходит запуск контейнера внутри контейнера(docker-in-docker) используется проброс сокета docker.sock и подмены записи в etc/hosts на специальное DNS-имя host.docker.internal для организации связи с хостом.

Проблемы, которые решает

  • Полная изоляция системного окружения при запуске тестов
  • Гарантия запуска тестов с обновленными зависимостями проекта

Вопросики

  • Возможно изоляция от системы не имеет смысла. Проблему, котрую я хотел решить заключалась в ситуации, когда мы запускали тесты и у каждого были свои зависимости проекта, что привело к разным результам прогона. Для этого, можно было бы использовать sh-скрипт или git-хуки, возможно контейнер избыточен, хотя как будто более универсален.

Check-List

  • Вы проверили свой код перед отправкой запроса?
  • Вы написали тесты к реализованным функциям?
  • Вы не забыли применить форматирование black и isort для Back-End или Prettier для Front-End?

@CaseAsLimbo
CaseAsLimbo requested a review from petrCher July 22, 2026 12:17
@github-actions

Copy link
Copy Markdown

Code Coverage

Coverage Report
FileStmtsMissCoverMissing
modal_backend
   __main__.py440%1–6
   exceptions.py20385%16, 32, 37
modal_backend/models
   base.py623150%22, 25–28, 52–60, 67–78, 83–88
   db.py881682%84–86, 90–93, 97–100, 104–108
modal_backend/routes
   exc_handlers.py17382%17, 31, 38
   groups.py25772%24–25, 33–34, 46, 62–63
   notes.py411661%68–71, 83–92, 108–111, 127–130, 146–149, 165–168, 184–187
   services.py25772%22–23, 36–37, 51–52, 64
modal_backend/schemas
   base.py12467%6–9
modal_backend/utils
   services.py612952%26–42, 68–72, 76–78, 84–86, 96–100, 104–106, 112–114
TOTAL49412076% 

Summary

Tests Skipped Failures Errors Time
5 0 💤 0 ❌ 0 🔥 6.105s ⏱️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant