.PHONY: install build test test-unit test-integration test-e2e test-cov test-docker-all clean docker-up docker-down lint format # ============================================ # 基础命令 # ============================================ install: npm install build: npm run build lint: npm run lint format: npm run format clean: rm -rf dist coverage node_modules # ============================================ # 测试命令 # ============================================ # 单元测试 - 测试领域逻辑和值对象 test-unit: npm test -- --testPathPatterns='src/.*\.spec\.ts$$' --verbose # 集成测试 - 测试服务层和仓储 test-integration: npm test -- --testPathPatterns='test/integration/.*\.spec\.ts$$' --verbose # 端到端测试 - 测试完整API流程 test-e2e: npm run test:e2e -- --verbose # 覆盖率测试 test-cov: npm run test:cov # 运行所有测试 test-all: test-unit test-integration test-e2e # ============================================ # Docker 测试命令 # ============================================ # 启动测试依赖服务 docker-up: docker-compose -f docker-compose.test.yml up -d # 关闭测试依赖服务 docker-down: docker-compose -f docker-compose.test.yml down -v # 在Docker中运行所有测试 test-docker-all: docker-compose -f docker-compose.test.yml up -d sleep 5 npm test -- --testPathPatterns='src/.*\.spec\.ts$$' --verbose || true npm test -- --testPathPatterns='test/integration/.*\.spec\.ts$$' --verbose || true npm run test:e2e -- --verbose || true docker-compose -f docker-compose.test.yml down -v # 构建测试Docker镜像 docker-build-test: docker build -t reward-service-test:latest -f Dockerfile.test . # 在Docker容器中运行测试 docker-run-test: docker run --rm \ --network reward-test-network \ -e DATABASE_URL="postgresql://test:test@postgres:5432/reward_test" \ -e REDIS_HOST=redis \ -e KAFKA_BROKERS=kafka:9092 \ reward-service-test:latest # ============================================ # 数据库命令 # ============================================ db-migrate: npx prisma migrate dev db-reset: npx prisma migrate reset --force db-seed: npx prisma db seed db-studio: npx prisma studio