TeamSync-CI
Описание
Общий репозиторий для приложения и тестов
Языки
- Java62,8%
- HTML21,6%
- PLpgSQL10%
- JavaScript4,7%
- CSS0,5%
- Gherkin0,4%
Данный пэт проект состоит из приложения TeamSync и проекта с автотестами на него.
Это рабочее Web приложение с базой данных Postgres и проект по автоматизации, где находятся тесты на приложение.
Архитектура приложения классическая:
- Entity - слой с сущностями
- Mapper - слой маппинга
- Dto - слой DTO
- Repository - репозитории для работы с БД
- Service - сервисы
- Api контроллеры - контроллеры для работы с API
- Web контроллеры - контроллеры для работы с Web интерфейсом
- Swagger - документация
- Есть интеграция с Docker и CI
- Kafka - в разработке. В планах добавление обмен данными с другим приложением: телеграм ботом.
Инструменты разработки:
- SpringBoot (data-jpa, thymeleaf, MapStruct, Spring Security и др.)
- Postgres
Инструменты тестирования:
- Junit 5 - для тестов
- RestAssured - для отправки запросов
- Selenide - для UI тестирования
- WireMock - для мокирования не существующих API
- Mockito - для Unit тестов, мокирование сервисов и методов
- Cucumber - для BDD тестирование
- Ashot - для тестирования верстки (сравнивание скриншотов)
- Allure report - для отчетности
- Метрики тестирования - в разработке.
Как запустить проект на локальной машине.
Требование:
- Docker - установлен и запущен // Powershell - перейти в папку куда будет клонироваться проект.
1. Клонирование проекта
git clone https://gitverse.ru/koskv/TeamSync-CI.git cd TeamSync-CI
2. Переключаемся на main и обновляем всё (на всякий случай)
- git checkout main
- git pull
- git reset --hard origin/main
- git clean -fdx
3. Полная очистка докера от мусора (если нужно)
- docker-compose -f docker-compose.ci.yml down -v --remove-orphans
- docker system prune -f
- или так -> docker image prune -a -f
4. Собираем и запускаем
docker-compose -f docker-compose.ci.yml up --build -d
5. Дожидаемся когда подтянутся все зависимости, развернется база данных и запустится приложение (должны увидеть запущенное приложение с проброшенным портом и Postgres с базой данных)
docker-compose -f docker-compose.ci.yml ps
6. Проверить приложение, если необходимо
http://localhost:8095/actuator/health - должно быть чтото вроде: {"status":"UP","components":{"db":{"status":"UP","details":{"database":"PostgreSQL","validationQuery":"isValid()"}},"diskSpace":{"status":"UP","details":{"total":213013762048,"free":192640282624,"threshold":10485760,"path":"/app/.","exists":true}},"ping":{"status":"UP"},"ssl":{"status":"UP","details":{"validChains":[],"invalidChains":[]}}}}
7. Открыть приложение
Перейти по адресу: http://localhost:8095
Поздравляю!
Запуск тестов
Тесты можно выполнить так же в powershell при запущенном в докер приложении.
Запуск Api тестов (RestAssured)
Перейти в папку TeamSync-Test и запустить оттуда:
mvn test -Dtest=UnitTestsSuite - unit тесты mvn test -Dgroups=api - api тесты mvn test -Dgroups=ui - ui тесты