138 lines
3.3 KiB
Batchfile
138 lines
3.3 KiB
Batchfile
|
|
@echo off
|
||
|
|
REM 用户管理系统 - Windows测试执行脚本
|
||
|
|
|
||
|
|
echo ==========================================
|
||
|
|
echo 用户管理系统 - 测试执行脚本
|
||
|
|
echo ==========================================
|
||
|
|
|
||
|
|
REM 颜色定义
|
||
|
|
chcp 65001 >nul
|
||
|
|
|
||
|
|
:menu
|
||
|
|
echo.
|
||
|
|
echo 请选择测试类型:
|
||
|
|
echo 1. 运行所有测试
|
||
|
|
echo 2. 运行单元测试
|
||
|
|
echo 3. 运行集成测试
|
||
|
|
echo 4. 运行E2E测试
|
||
|
|
echo 5. 运行鲁棒性测试
|
||
|
|
echo 6. 生成覆盖率报告
|
||
|
|
echo 7. 运行性能基准测试
|
||
|
|
echo 8. 运行竞态检测
|
||
|
|
echo 0. 退出
|
||
|
|
echo.
|
||
|
|
set /p choice=请输入选项(0-8):
|
||
|
|
|
||
|
|
if "%choice%"=="1" goto all_tests
|
||
|
|
if "%choice%"=="2" goto unit_tests
|
||
|
|
if "%choice%"=="3" goto integration_tests
|
||
|
|
if "%choice%"=="4" goto e2e_tests
|
||
|
|
if "%choice%"=="5" goto robust_tests
|
||
|
|
if "%choice%"=="6" goto coverage
|
||
|
|
if "%choice%"=="7" goto benchmark
|
||
|
|
if "%choice%"=="8" goto race
|
||
|
|
if "%choice%"=="0" goto end
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:check_go
|
||
|
|
echo [INFO] 检查Go环境...
|
||
|
|
where go >nul 2>&1
|
||
|
|
if %errorlevel% neq 0 (
|
||
|
|
echo [ERROR] Go未安装
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
goto :eof
|
||
|
|
|
||
|
|
:all_tests
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行所有测试
|
||
|
|
echo ==========================================
|
||
|
|
call :unit_tests
|
||
|
|
echo [INFO] ✅ 所有测试准备完成
|
||
|
|
echo ==========================================
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:unit_tests
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行单元测试
|
||
|
|
echo ==========================================
|
||
|
|
echo [INFO] 测试Domain层...
|
||
|
|
go test -v ./internal/domain/... -run "Test.*"
|
||
|
|
echo [INFO] ✅ 单元测试完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:integration_tests
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行集成测试
|
||
|
|
echo ==========================================
|
||
|
|
echo [INFO] 测试集成层...
|
||
|
|
go test -v ./internal/integration/... -run "Test.*"
|
||
|
|
echo [INFO] ✅ 集成测试完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:e2e_tests
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行端到端测试
|
||
|
|
echo ==========================================
|
||
|
|
echo [INFO] 测试E2E流程...
|
||
|
|
go test -v ./internal/e2e/... -run "Test.*"
|
||
|
|
echo [INFO] ✅ 端到端测试完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:robust_tests
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行鲁棒性测试
|
||
|
|
echo ==========================================
|
||
|
|
echo [INFO] 测试鲁棒性...
|
||
|
|
go test -v ./internal/robustness/... -run "Test.*"
|
||
|
|
echo [INFO] ✅ 鲁棒性完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:coverage
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行测试并生成覆盖率报告
|
||
|
|
echo ==========================================
|
||
|
|
go test -v -coverprofile=coverage.out ./...
|
||
|
|
go tool cover -html=coverage.out -o coverage.html
|
||
|
|
echo [INFO] 覆盖率报告已生成: coverage.html
|
||
|
|
go tool cover -func=coverage.out
|
||
|
|
echo [INFO] ✅ 覆盖率测试完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:benchmark
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行性能基准测试
|
||
|
|
echo ==========================================
|
||
|
|
go test -bench=. -benchmem ./internal/domain/...
|
||
|
|
echo [INFO] ✅ 性能基准测试完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:race
|
||
|
|
call :check_go
|
||
|
|
echo ==========================================
|
||
|
|
echo 运行竞态检测
|
||
|
|
echo ==========================================
|
||
|
|
go test -race ./...
|
||
|
|
echo [INFO] ✅ 竞态检测完成
|
||
|
|
pause
|
||
|
|
goto menu
|
||
|
|
|
||
|
|
:end
|
||
|
|
echo 退出测试脚本
|
||
|
|
exit /b 0
|