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

165 lines
5.8 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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 "TEST_RESULTS_DIR=%ROOT_DIR%\test-results"
REM 测试资源目录
set "TEST_RESOURCES_DIR=%ROOT_DIR%\tests\integration\resources"
REM 测试临时目录
set "TEST_TEMP_DIR=%ROOT_DIR%\tests\integration\temp"
REM 打印脚本信息
echo %BLUE%=========================================================%NC%
echo %BLUE% 音频后端测试环境准备脚本 %NC%
echo %BLUE%=========================================================%NC%
echo %YELLOW%项目根目录: %ROOT_DIR%%NC%
echo.
REM 创建测试结果目录
echo 创建测试结果目录...
if not exist "%TEST_RESULTS_DIR%" mkdir "%TEST_RESULTS_DIR%"
if not exist "%TEST_RESULTS_DIR%\unit" mkdir "%TEST_RESULTS_DIR%\unit"
if not exist "%TEST_RESULTS_DIR%\integration" mkdir "%TEST_RESULTS_DIR%\integration"
if not exist "%TEST_RESULTS_DIR%\performance" mkdir "%TEST_RESULTS_DIR%\performance"
if not exist "%TEST_RESULTS_DIR%\coverage" mkdir "%TEST_RESULTS_DIR%\coverage"
REM 创建测试资源目录
echo 创建测试资源目录...
if not exist "%TEST_RESOURCES_DIR%" mkdir "%TEST_RESOURCES_DIR%"
if not exist "%TEST_RESOURCES_DIR%\plugins" mkdir "%TEST_RESOURCES_DIR%\plugins"
if not exist "%TEST_RESOURCES_DIR%\config" mkdir "%TEST_RESOURCES_DIR%\config"
if not exist "%TEST_RESOURCES_DIR%\audio" mkdir "%TEST_RESOURCES_DIR%\audio"
REM 创建测试临时目录
echo 创建测试临时目录...
if not exist "%TEST_TEMP_DIR%" mkdir "%TEST_TEMP_DIR%"
REM 清理旧的测试临时文件
echo 清理旧的测试临时文件...
REM 使用forfiles删除7天前的文件
if exist "%TEST_TEMP_DIR%" (
forfiles /p "%TEST_TEMP_DIR%" /d -7 /c "cmd /c del @path" 2>nul
if %ERRORLEVEL% neq 0 (
echo %YELLOW%警告: 无法清理旧临时文件。可能没有足够旧的文件或forfiles命令不可用。%NC%
)
)
REM 准备测试配置文件
echo 准备测试配置文件...
set "CONFIG_FILE=%TEST_RESOURCES_DIR%\config\system_config.json"
if not exist "%CONFIG_FILE%" (
echo 创建默认系统配置文件...
(
echo {
echo "sample_rate": 48000,
echo "channels": 2,
echo "buffer_size": 512,
echo "enable_simd": true,
echo "plugin_paths": ["%TEST_RESOURCES_DIR:\=\\%\\plugins"],
echo "log_level": "debug",
echo "engine_endpoint": "tcp://127.0.0.1:5557",
echo "enable_auto_reconnect": true
echo }
) > "%CONFIG_FILE%"
)
REM 准备测试音频文件
echo 准备测试音频文件...
set "TEST_AUDIO_FILE=%TEST_RESOURCES_DIR%\audio\test_tone.wav"
if not exist "%TEST_AUDIO_FILE%" (
echo 无测试音频文件,尝试生成...
REM 检查是否有sox用于生成测试音频
where sox.exe >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo 使用sox生成测试音频文件...
sox -n -r 48000 -c 2 "%TEST_AUDIO_FILE%" synth 5.0 sine 440 vol 0.5
echo 生成测试音频文件: %TEST_AUDIO_FILE%
) else (
echo %YELLOW%警告: 未安装sox无法生成测试音频文件。%NC%
echo %YELLOW%请手动准备试音频文件或安装sox: https://sourceforge.net/projects/sox/files/sox/ %NC%
REM 创建空文件作为占位符
type nul > "%TEST_AUDIO_FILE%"
)
)
REM 准备测试插件
echo 准备测试插件目录...
REM 注意:实际的测试插件需要单独构建或预先准备
REM 检查系统依赖
echo 检查系统依赖...
REM 检查是否安装了必要的测试工具
where cmake.exe >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo %YELLOW%警告: 未找到CMake。请确CMake已安装并添加到PATH中。%NC%
)
where cl.exe >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo %YELLOW%警告: 找到MSVC编译器。请确保Visual Studio已安装或开发者命令提示符已配置。%NC%
)
where vswhere.exe >nul 2>&1
if %ERRORLEVEL% neq 0 (
echo %YELLOW%警告: 未找到Visual Studio安装路径工具vswhere.exe。%NC%
) else (
for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set "VS_INSTALL_PATH=%%i"
)
if not defined VS_INSTALL_PATH (
echo %YELLOW%警告: 未找到Visual Studio安装路径。%NC%
) else (
echo 找到Visual Studio安装路径: !VS_INSTALL_PATH!
)
)
REM 设置环境变量
echo 设置测试环境变量...
REM 将测试目录添加到PATH如果需要的话
set "PATH=%ROOT_DIR%\build\bin;%PATH%"
REM 设置测试临时目录环境变量
set "TEMP_TEST_DIR=%TEST_TEMP_DIR%"
set "TEST_RESOURCES=%TEST_RESOURCES_DIR%"
REM 保存环境变量到临时文件,以便其他脚本使用
set "ENV_FILE=%TEST_TEMP_DIR%\test_env.bat"
(
echo @echo off
echo REM 测试环境变量
echo set "PATH=%ROOT_DIR%\build\bin;%%PATH%%"
echo set "TEMP_TEST_DIR=%TEST_TEMP_DIR%"
echo set "TEST_RESOURCES=%TEST_RESOURCES_DIR%"
) > "%ENV_FILE%"
echo %GREEN%测试环境准完成!%NC%
echo 环境变量已保存: %ENV_FILE%
echo 测试资源目录: %TEST_RESOURCES_DIR%
echo 测试临时目录: %TEST_TEMP_DIR%
echo 测试结果目录: %TEST_RESULTS_DIR%
echo.
exit /b 0