@echo off REM 一键跑核心业务测试:书籍 大纲 → 内容 → 音频 完整链路(Windows 版本) REM 用法: REM scripts\run-core-business-test.bat REM set SKIP_SERVER=1 ^&^& scripts\run-core-business-test.bat setlocal EnableDelayedExpansion set "ROOT_DIR=%~dp0.." pushd "%ROOT_DIR%" >nul if "%BACKEND_URL%"=="" set "BACKEND_URL=http://127.0.0.1:3000" if "%FRONTEND_URL%"=="" set "FRONTEND_URL=http://127.0.0.1:5173" if "%SKIP_SERVER%"=="" set "SKIP_SERVER=0" echo ========================================== echo 核心业务测试:书籍 大纲-^>内容-^>音频 echo ========================================== echo BACKEND_URL=%BACKEND_URL% echo FRONTEND_URL=%FRONTEND_URL% echo SKIP_SERVER=%SKIP_SERVER% echo ========================================== if "%SKIP_SERVER%"=="0" ( echo [1/4] 检查后端... curl -sf "%BACKEND_URL%/health" >nul 2>&1 && (echo ^>^> 后端已就绪 & goto :chk_frontend) echo ^>^> 启动后端... start /B cmd /c "cd server && npx tsx src/app.ts > %TEMP%\core-test-backend.log 2>&1" timeout /t 30 /nobreak >nul curl -sf "%BACKEND_URL%/health" >nul 2>&1 || ( echo X 后端启动失败 type %TEMP%\core-test-backend.log exit /b 1 ) echo ^>^> 后端就绪 :chk_frontend echo [2/4] 检查前端... curl -sf "%FRONTEND_URL%" >nul 2>&1 && (echo ^>^> 前端已就绪 & goto :run_test) echo ^>^> 启动前端... start /B cmd /c "cd my-uniapp-vue3 && npm run dev:h5 > %TEMP%\core-test-frontend.log 2>&1" timeout /t 60 /nobreak >nul curl -sf "%FRONTEND_URL%" >nul 2>&1 || ( echo X 前端启动失败 type %TEMP%\core-test-frontend.log exit /b 1 ) echo ^>^> 前端就绪 ) :run_test echo [3/4] 检查 Playwright... if not exist "node_modules\@playwright\test" ( echo ^>^> 安装依赖... call npm install --no-audit --no-fund ) echo [4/4] 运行核心业务测试... set BACKEND_URL=%BACKEND_URL% set FRONTEND_URL=%FRONTEND_URL% call npx playwright test --project=core-business --config=tests\playwright.config.ts --reporter=list set "EXIT_CODE=%ERRORLEVEL%" echo ========================================== if "%EXIT_CODE%"=="0" ( echo OK 核心业务链路全部通过 ) else ( echo X 核心业务链路失败(exit=%EXIT_CODE%) echo 报告位置:tests\test-results\report ) echo ========================================== popd >nul exit /b %EXIT_CODE%