Files
readur/Makefile
2025-06-17 14:54:59 +00:00

141 lines
4.3 KiB
Makefile

.PHONY: help test test-unit test-integration test-frontend test-e2e test-all test-watch test-clean test-logs test-shell test-results test-html test-results-unit test-results-integration test-results-frontend test-results-clean dev-up dev-down dev-logs build clean
# Default target
help:
@echo "Readur Development and Testing Commands"
@echo "======================================"
@echo ""
@echo "Testing Commands:"
@echo " make test - Run all tests in isolated environment"
@echo " make test-unit - Run unit tests only"
@echo " make test-integration - Run integration tests only"
@echo " make test-frontend - Run frontend tests only"
@echo " make test-e2e - Run E2E tests (when implemented)"
@echo " make test-watch - Run tests and keep containers running"
@echo " make test-clean - Clean up test environment"
@echo " make test-logs - View test container logs"
@echo " make test-shell - Open shell in test container"
@echo ""
@echo "Test Results Commands:"
@echo " make test-results - Show latest test summary"
@echo " make test-html - Open latest HTML test report"
@echo " make test-results-unit - Show latest unit test results"
@echo " make test-results-clean- Clean all saved test results"
@echo ""
@echo "Development Commands:"
@echo " make dev-up - Start development environment"
@echo " make dev-down - Stop development environment"
@echo " make dev-logs - View development logs"
@echo " make build - Build all Docker images"
@echo " make clean - Clean all Docker resources"
# Testing targets
test: test-all
test-all:
@./run-tests.sh all
test-unit:
@./run-tests.sh unit
test-integration:
@./run-tests.sh integration
test-frontend:
@./run-tests.sh frontend
test-e2e:
@./run-tests.sh e2e
test-watch:
@./run-tests.sh all keep-running
test-clean:
@echo "Cleaning test environment..."
@docker-compose -f docker-compose.test.yml -p readur_test down -v --remove-orphans 2>/dev/null || true
@docker rm -f readur_postgres_test readur_app_test readur_frontend_test 2>/dev/null || true
@docker network rm readur_test_network 2>/dev/null || true
@rm -rf /tmp/test_uploads /tmp/test_watch 2>/dev/null || true
test-logs:
@docker-compose -f docker-compose.test.yml -p readur_test logs -f
test-shell:
@docker-compose -f docker-compose.test.yml -p readur_test exec readur_test /bin/bash
# Development targets
dev-up:
@echo "Starting development environment..."
@docker-compose up -d
dev-down:
@echo "Stopping development environment..."
@docker-compose down
dev-logs:
@docker-compose logs -f
# Build targets
build:
@echo "Building all images..."
@docker-compose build
@docker-compose -f docker-compose.test.yml build
# Clean targets
clean:
@echo "Cleaning all Docker resources..."
@docker-compose down -v --remove-orphans
@docker-compose -f docker-compose.test.yml -p readur_test down -v --remove-orphans
@docker system prune -f
# Specific test scenarios
test-ocr:
@echo "Running OCR-specific tests..."
@docker-compose -f docker-compose.test.yml -p readur_test exec -T readur_test \
cargo test ocr --no-fail-fast
test-webdav:
@echo "Running WebDAV-specific tests..."
@docker-compose -f docker-compose.test.yml -p readur_test exec -T readur_test \
cargo test webdav --no-fail-fast
test-performance:
@echo "Running performance tests..."
@docker-compose -f docker-compose.test.yml -p readur_test exec -T readur_test \
cargo test performance --no-fail-fast
# Database operations
test-db-reset:
@echo "Resetting test database..."
@docker-compose -f docker-compose.test.yml -p readur_test exec -T postgres_test \
psql -U readur_test -d postgres -c "DROP DATABASE IF EXISTS readur_test; CREATE DATABASE readur_test;"
@docker-compose -f docker-compose.test.yml -p readur_test exec -T readur_test \
sqlx migrate run
# CI/CD helpers
ci-test:
@./run-tests.sh all
# Quick test for local development (runs faster subset)
quick-test:
@echo "Running quick test suite..."
@./run-tests.sh unit
# Test results viewing
test-results:
@./view-test-results.sh summary
test-html:
@./view-test-results.sh html
test-results-unit:
@./view-test-results.sh unit
test-results-integration:
@./view-test-results.sh integration
test-results-frontend:
@./view-test-results.sh frontend
test-results-clean:
@./view-test-results.sh clean