This commit is contained in:
2026-04-20 21:04:16 +03:00
parent b24cbc97f3
commit 19f82768e4
18 changed files with 1851 additions and 131 deletions

View File

@@ -27,7 +27,7 @@ help: ## Показать это сообщение
# ============================================================================
compile: ## Скомпилировать проект
@echo "Компиляция проекта..."
@$(REBAR3) compile
@$(REBAR3) clean compile
@echo "✓ Компиляция завершена"
clean: ## Очистить проект
@@ -57,6 +57,21 @@ run: ## Запустить приложение (foreground)
@echo "Запуск приложения..."
@$(REBAR3) shell --sname $(SNAME)
test-server: ## Запустить тестовый сервер в фоне
@echo "Cleaning old data..."
@rm -rf Mnesia.*
@pkill -f "beam.*eventhub_test" 2>/dev/null || true
@echo "Starting server..."
@rebar3 shell --sname eventhub_test </dev/null > /tmp/eventhub_test.log 2>&1 &
@echo "PID: $$!"
@for i in 1 2 3 4 5 6 7 8 9 10; do \
if curl -s http://localhost:8080/health | grep -q "ok"; then \
echo "✓ Server ready at http://localhost:8080"; \
break; \
fi; \
sleep 1; \
done
stop: ## Остановить приложение
@echo "Остановка приложения..."
@pkill -f "rebar3 shell --sname $(SNAME)" || true
@@ -72,27 +87,52 @@ test: eunit ## Запустить все тесты (алиас для eunit)
eunit: ## Запустить EUnit тесты
@echo "Запуск EUnit тестов..."
@pkill -f "beam.*$(SNAME)" 2>/dev/null || true
@$(REBAR3) eunit --sname $(SNAME)_test
eunit-module: ## Запустить тесты для модуля (make eunit-module MODULE=core_calendar_tests)
@echo "Запуск тестов для модуля $(MODULE)..."
@pkill -f "beam.*$(SNAME)" 2>/dev/null || true
@$(REBAR3) eunit --sname $(SNAME)_test --module=$(MODULE)
eunit-verbose: ## Запустить EUnit тесты с подробным выводом
@echo "Запуск EUnit тестов (verbose)..."
@pkill -f "beam.*$(SNAME)" 2>/dev/null || true
@$(REBAR3) eunit --sname $(SNAME)_test --verbose
test-api: ## Запустить API тесты
@echo "Запуск API тестов..."
@if ! curl -s http://localhost:8080/health > /dev/null 2>&1; then \
echo "✗ Сервер не запущен. Выполните 'make run' в другом терминале"; \
exit 1; \
fi
test-search-unit: ## Запустить unit-тесты поиска
@echo "Запуск unit-тестов поиска (logic)..."
@$(REBAR3) eunit --sname test_search1 --module=logic_search_tests
test-search-handler: ## Запустить handler тесты поиска
@echo "Запуск handler тестов поиска..."
@$(REBAR3) eunit --sname test_search2 --module=handler_search_tests
test-api: ## Запустить API тесты (авто-запуск сервера)
@./test/scripts/run_tests.sh
test-full: ## Полный цикл тестирования
@./test/scripts/run_tests.sh $(PATTERN)
test-full-search: ## Полный цикл для поиска
@./test/scripts/run_tests.sh search
test-full-booking: ## Полный цикл для бронирований
@./test/scripts/run_tests.sh booking
test-api-existing: ## Запустить API тесты на уже работающем сервере
@chmod +x test/scripts/*.sh
@cd test/scripts && ./test_all.sh
@cd test/scripts && ./test_runner.sh -s $(PATTERN)
test-server-stop: ## Остановить тестовый сервер
@pkill -f "beam.*eventhub" 2>/dev/null || true
@echo "✓ Servers stopped"
@rm -rf Mnesia.* 2>/dev/null || true
test-runner: ## Запустить тесты с фильтром (make test-runner PATTERN=booking)
@chmod +x test/scripts/*.sh
@cd test/scripts && ./test_runner.sh $(PATTERN)
test-quick: ## Запустить тесты используя уже запущенный сервер
@chmod +x test/scripts/*.sh
@cd test/scripts && ./test_runner.sh -s $(PATTERN)
test-auth: ## Запустить тесты аутентификации
@chmod +x test/scripts/test_auth_api.sh
@@ -110,7 +150,9 @@ test-booking: ## Запустить тесты бронирований
@chmod +x test/scripts/test_booking_api.sh
@./test/scripts/test_booking_api.sh
test-all: eunit test-api ## Запустить ВСЕ тесты (EUnit + API)
test-all: eunit ## Запустить ВСЕ тесты (EUnit + API)
@sleep 1
make test-api
@echo "========================================"
@echo " ВСЕ ТЕСТЫ ПРОЙДЕНЫ!"
@echo "========================================"
@@ -130,7 +172,6 @@ xref: ## Запустить Xref (кросс-ссылки)
cover: ## Запустить тесты с покрытием кода
@echo "Запуск тестов с покрытием..."
@pkill -f "beam.*$(SNAME)" 2>/dev/null || true
@$(REBAR3) eunit --sname $(SNAME)_test --cover
@$(REBAR3) cover --verbose
@echo "✓ Отчёт о покрытии в _build/test/cover/"