TeamSync-CI

0

Описание

Общий репозиторий для приложения и тестов

Языки

  • Java62,8%
  • HTML21,6%
  • PLpgSQL10%
  • JavaScript4,7%
  • CSS0,5%
  • Gherkin0,4%
ReadMe.md

Данный пэт проект состоит из приложения 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 тесты