Files
Alicho/tests/scripts/run_tests.bat
2025-10-28 10:27:49 +08:00

123 lines
3.8 KiB
Batchfile

@echo off
REM ================================================================================================
REM Audio Backend - 测试运行脚本 (Windows)
REM ================================================================================================
REM 描述: 运行所有类型的测试(单元测试、集成测试、性能测试)
REM ================================================================================================
setlocal EnableDelayedExpansion
REM 设置颜色输出
set "GREEN=[92m"
set "RED=[91m"
set "YELLOW=[93m"
set "BLUE=[94m"
set "NC=[0m"
REM 脚本所在的目录路径
set "SCRIPT_DIR=%~dp0"
REM 项目根目录
for %%i in ("%SCRIPT_DIR%\..\..\..\") do set "ROOT_DIR=%%~fi"
REM 构建目录
set "BUILD_DIR=%ROOT_DIR%\build"
REM 测试结果目录
set "TEST_RESULTS_DIR=%ROOT_DIR%\test-results"
REM 打印脚本信息
echo %BLUE%=========================================================%NC%
echo %BLUE% 音频后端测试运行脚本 %NC%
echo %BLUE%=========================================================%NC%
echo %YELLOW%项目根目录: %ROOT_DIR%%NC%
echo %YELLOW%构建目录: %BUILD_DIR%%NC%
echo %YELLOW%测试结果录: %TEST_RESULTS_DIR%%NC%
echo.
REM 确保测试结果目录存在
if not exist "%TEST_RESULTS_DIR%" mkdir "%TEST_RESULTS_DIR%"
REM 检查构建目录是否存在
if not exist "%BUILD_DIR%" (
echo %RED%错误: 构建目录不存在。请先运行构建脚本。%NC%
exit /b 1
)
REM 准备测试环境
echo %BLUE%准备测试环境...%NC%
call "%SCRIPT_DIR%\prepare_test_env.bat"
if %ERRORLEVEL% neq 0 (
echo %RED%准备测试环境失败%NC%
exit /b 1
)
echo %GREEN%测试环境准备完成%NC%
echo.
REM 运行单元测试
echo %BLUE%开始运行单元测试...%NC%
call "%SCRIPT_DIR%\run_unit_tests.bat"
set UNIT_TESTS_RESULT=%ERRORLEVEL%
if %UNIT_TESTS_RESULT% equ 0 (
echo %GREEN%单元测试通过%NC%
) else (
echo %RED%单元测试失败 (退出码: %UNIT_TESTS_RESULT%)%NC%
)
echo.
REM 运行集成测试
echo %BLUE%开始运行集成测试...%NC%
call "%SCRIPT_DIR%\run_integration_tests.bat"
set INTEGRATION_TESTS_RESULT=%ERRORLEVEL%
if %INTEGRATION_TESTS_RESULT% equ 0 (
echo %GREEN%集成测试通过%NC%
) else (
echo %RED%集成测试失败 (退出码: %INTEGRATION_TESTS_RESULT%)%NC%
)
echo.
REM 运行性能测试
echo %BLUE%开始运行性能测试...%NC%
call "%SCRIPT_DIR%\run_performance_tests.bat"
set PERFORMANCE_TESTS_RESULT=%ERRORLEVEL%
if %PERFORMANCE_TESTS_RESULT% equ 0 (
echo %GREEN%性能测试通过%NC%
) else (
echo %RED%性能测试失败 (退出码: %PERFORMANCE_TESTS_RESULT%)%NC%
)
echo.
REM 生成覆盖率报告
echo %BLUE%生成测试覆盖率报告...%NC%
call "%SCRIPT_DIR%\generate_coverage.bat"
if %ERRORLEVEL% neq 0 (
echo %YELLOW%警告: 覆盖率报告生成失败%NC%
) else (
echo %GREEN%覆盖率报告生成完成%NC%
)
echo.
REM 测试结果汇总
echo %BLUE%=========================================================%NC%
echo %BLUE% 测试结果汇总 %NC%
echo %BLUE%=========================================================%NC%
set "UNIT_STATUS=%RED%失败%NC%"
if %UNIT_TESTS_RESULT% equ 0 set "UNIT_STATUS=%GREEN%通过%NC%"
set "INTEGRATION_STATUS=%RED%失败%NC%"
if %INTEGRATION_TESTS_RESULT% equ 0 set "INTEGRATION_STATUS=%GREEN%通过%NC%"
set "PERFORMANCE_STATUS=%RED%失败%NC%"
if %PERFORMANCE_TESTS_RESULT% equ 0 set "PERFORMANCE_STATUS=%GREEN%通过%NC%"
echo 单元测试: %UNIT_STATUS%
echo 集成测试: %INTEGRATION_STATUS%
echo 性能测试: %PERFORMANCE_STATUS%
echo.
REM 整体测试结果
if %UNIT_TESTS_RESULT% equ 0 if %INTEGRATION_TESTS_RESULT% equ 0 if %PERFORMANCE_TESTS_RESULT% equ 0 (
echo %GREEN%所有测试通过!%NC%
exit /b 0
) else (
echo %RED%测试失败!%NC%
exit /b 1
)