run-core-business-test.bat 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. @echo off
  2. REM 一键跑核心业务测试:书籍 大纲 → 内容 → 音频 完整链路(Windows 版本)
  3. REM 用法:
  4. REM scripts\run-core-business-test.bat
  5. REM set SKIP_SERVER=1 ^&^& scripts\run-core-business-test.bat
  6. setlocal EnableDelayedExpansion
  7. set "ROOT_DIR=%~dp0.."
  8. pushd "%ROOT_DIR%" >nul
  9. if "%BACKEND_URL%"=="" set "BACKEND_URL=http://127.0.0.1:3000"
  10. if "%FRONTEND_URL%"=="" set "FRONTEND_URL=http://127.0.0.1:5173"
  11. if "%SKIP_SERVER%"=="" set "SKIP_SERVER=0"
  12. echo ==========================================
  13. echo 核心业务测试:书籍 大纲-^>内容-^>音频
  14. echo ==========================================
  15. echo BACKEND_URL=%BACKEND_URL%
  16. echo FRONTEND_URL=%FRONTEND_URL%
  17. echo SKIP_SERVER=%SKIP_SERVER%
  18. echo ==========================================
  19. if "%SKIP_SERVER%"=="0" (
  20. echo [1/4] 检查后端...
  21. curl -sf "%BACKEND_URL%/health" >nul 2>&1 && (echo ^>^> 后端已就绪 & goto :chk_frontend)
  22. echo ^>^> 启动后端...
  23. start /B cmd /c "cd server && npx tsx src/app.ts > %TEMP%\core-test-backend.log 2>&1"
  24. timeout /t 30 /nobreak >nul
  25. curl -sf "%BACKEND_URL%/health" >nul 2>&1 || (
  26. echo X 后端启动失败
  27. type %TEMP%\core-test-backend.log
  28. exit /b 1
  29. )
  30. echo ^>^> 后端就绪
  31. :chk_frontend
  32. echo [2/4] 检查前端...
  33. curl -sf "%FRONTEND_URL%" >nul 2>&1 && (echo ^>^> 前端已就绪 & goto :run_test)
  34. echo ^>^> 启动前端...
  35. start /B cmd /c "cd my-uniapp-vue3 && npm run dev:h5 > %TEMP%\core-test-frontend.log 2>&1"
  36. timeout /t 60 /nobreak >nul
  37. curl -sf "%FRONTEND_URL%" >nul 2>&1 || (
  38. echo X 前端启动失败
  39. type %TEMP%\core-test-frontend.log
  40. exit /b 1
  41. )
  42. echo ^>^> 前端就绪
  43. )
  44. :run_test
  45. echo [3/4] 检查 Playwright...
  46. if not exist "node_modules\@playwright\test" (
  47. echo ^>^> 安装依赖...
  48. call npm install --no-audit --no-fund
  49. )
  50. echo [4/4] 运行核心业务测试...
  51. set BACKEND_URL=%BACKEND_URL%
  52. set FRONTEND_URL=%FRONTEND_URL%
  53. call npx playwright test --project=core-business --config=tests\playwright.config.ts --reporter=list
  54. set "EXIT_CODE=%ERRORLEVEL%"
  55. echo ==========================================
  56. if "%EXIT_CODE%"=="0" (
  57. echo OK 核心业务链路全部通过
  58. ) else (
  59. echo X 核心业务链路失败(exit=%EXIT_CODE%)
  60. echo 报告位置:tests\test-results\report
  61. )
  62. echo ==========================================
  63. popd >nul
  64. exit /b %EXIT_CODE%