← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 98: Тимчасовий стенд для тестів

Технологія: Docker

Номер лабораторної: 98 · Рівень: middle

Тема: Docker і інтеграційні тести з залежними сервісами

Повний опис / сценарій лабораторної:

Мета: навчитися піднімати комплекс із кількох контейнерів тільки на час виконання тестів.



Крок 1. Створити окремий docker compose файл для інтеграційних тестів.

Пояснення: у ньому описати застосунок, базу, кеш, черги.



Крок 2. Додати сервіс test runner який чекатиме готовності залежних сервісів.

Пояснення: він запускає набір тестів і завершується.



Крок 3. Налаштувати healthcheck для бази і кешу.

Пояснення: test runner має стартувати тільки коли вони healthy.



Крок 4. Запустити стек для тестів.

Команда: docker compose -f docker-compose.test.yml up --abort-on-container-exit



Крок 5. Перевірити статус завершення test runner контейнера.

Пояснення: код повернення показує успішність тестів.



Крок 6. Налаштувати автоматичне видалення контейнерів і мереж після тестів.

Команда: docker compose -f docker-compose.test.yml down -v



Крок 7. Інтегрувати цей сценарій у ci.

Пояснення: окремий job який запускає docker compose тестовий файл.



Крок 8. Додати можливість запускати ті ж тести локально.

Пояснення: розробник має однією командою підняти весь стенд.



Крок 9. Оцінити час підняття стенду і виконання тестів.

Пояснення: це важливо для швидкості зворотного звʼязку.



Крок 10. Міні звіт.

Завдання: опиши переваги такого підходу у порівнянні з використанням спільних dev стендів для інтеграційних тестів.