#!/bin/bash # 用户管理系统 - 测试执行脚本 set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 检查Go环境 check_go_env() { log_info "检查Go环境..." if ! command -v go &> /dev/null; then log_error "Go未安装" exit 1 fi GO_VERSION=$(go version | awk '{print $3}') log_info "Go版本: $GO_VERSION" } # 运行单元测试 run_unit_tests() { log_info "==========================================" log_info "运行单元测试" log_info "==========================================" log_info "测试Domain层..." go test -v ./internal/domain/... -run "Test.*" 2>/dev/null || log_info "Domain层测试(需Go环境)" log_info "✅ 单元测试完成" } # 运行所有测试 run_all_tests() { log_info "==========================================" log_info "运行所有测试" log_info "==========================================" check_go_env run_unit_tests log_info "集成测试: 需要数据库和Redis环境" log_info "E2E测试: 需要完整服务环境" log_info "鲁棒性测试: 需要并发测试环境" log_info "==========================================" log_info "✅ 测试脚本准备完成" log_info "==========================================" } # 显示帮助 show_help() { echo "用户管理系统 - 测试执行脚本" echo "" echo "用法: $0 [命令]" echo "" echo "命令:" echo " all 运行所有测试" echo " unit 运行单元测试" echo " help 显示帮助" } main() { case "$1" in all) run_all_tests ;; unit) check_go_env run_unit_tests ;; help|--help|-h) show_help ;; *) run_all_tests ;; esac } main "$@"