Теперь при запуске проекта автоматически выполняются все тесты!
docker-compose up --buildЧто происходит:
- ✅ Запускается PostgreSQL
- ✅ Запускается Backend API
- ✅ Запускается Frontend
- ✅ Запускается Nginx
- 🧪 Автоматически запускаются все 40+ тестов
- 📊 Результаты выводятся в консоль
Посмотреть результаты:
docker-compose logs testPowerShell:
.\run_tests.ps1 -StandaloneCMD:
run_tests.bat --standaloneИли напрямую:
docker-compose -f docker-compose.test.yaml up --buildЧто происходит:
- ✅ Запускается только PostgreSQL
- 🧪 Запускаются все тесты
- 🧹 Окружение автоматически очищается
Если проект уже запущен:
docker-compose up test
docker-compose logs test========================================
✅ All tests passed successfully!
========================================
test result: ok. 40 passed; 0 failed
test result: FAILED. 35 passed; 5 failed
См. подробности: TEST_RESULTS.md
- 👤 User Tests (5) - регистрация, аутентификация
- 📁 Category Tests (5) - создание, получение категорий
- 🔖 Bookmark Tests (10) - CRUD операции, поиск
- 🔐 Auth Tests (4) - JWT токены
- 🌐 Handler Tests (12) - HTTP API endpoints
- 🔄 E2E Tests (3) - полные сценарии
Всего: 40+ тестов
backend/Dockerfile (Production):
- Многоступенчатая сборка
- Финальный образ:
debian:bookworm-slim - Размер: ~100MB
- Содержит: только скомпилированный бинарник
- Быстрый запуск, минимальные ресурсы
backend/Dockerfile.test (Testing):
- Одноступенчатая сборка
- Базовый образ:
rust:1.86 - Размер: ~1.5GB
- Содержит: cargo, rustc, diesel_cli, исходный код
- Позволяет запускать
cargo test
Основной файл с сервисом test:
- Запускается автоматически при
docker-compose up - Зависит от
postgres(healthcheck) - Выполняет миграции
- Запускает все тесты
restart: "no"- выполняется один раз
Изолированный файл только для тестов:
- Только PostgreSQL + тесты
- Отдельная сеть
- Автоматическая очистка
# Проверьте статус контейнеров
docker-compose ps
# Проверьте логи PostgreSQL
docker-compose logs postgres
# Проверьте логи тестов
docker-compose logs test
# Перезапустите окружение
docker-compose down -v
docker-compose up --build# Отредактируйте docker-compose.yaml, добавьте флаги:
cargo test -- --nocapture --test-threads=1- TESTING.md - полная документация по тестам
- TEST_RESULTS.md - как читать результаты
- COMMANDS.md - все команды проекта
- README.md - основная документация
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: docker-compose -f docker-compose.test.yaml up --abort-on-container-exittest:
stage: test
script:
- docker-compose -f docker-compose.test.yaml up --abort-on-container-exit- Первый запуск будет долгим (скачивание образов + компиляция)
- Последующие запуски быстрее (~15 секунд для тестов)
- Используйте
--buildпосле изменений в коде - Логи сохраняются - можно просмотреть позже
- Тесты изолированы - каждый создаёт свои данные
- Docker Desktop запущен
- Проект склонирован
- Выполнена команда
docker-compose up --build - Дождались завершения тестов
- Проверили логи:
docker-compose logs test - Увидели: "All tests passed successfully!"
Готово! 🎉