/
gr.ev.vl
/
TestGen
Обзор
Документация
Войти
/
gr.ev.vl
/
TestGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master2
scripts/run_init_all.cmd
559 строк
16 KB
gr.ev.vl
Initial commit
06 июн 2026, 02:41
06 июн 2026, 02:41
02fb1fb
Код
Авторство
О чём код?
@echo off chcp 1251 >nul setlocal enabledelayedexpansion :: ============================================================================= :: TestGen � ������� ������� ���������� :: ���������� ��� ����������� cmd-����� � ����� scripts/ :: ============================================================================= title TestGen � �������� �������� ������� set "SCRIPT_DIR=%~dp0" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%" for %%i in ("%SCRIPT_DIR%") do set "PROJECT_DIR=%%~dpi" set "PROJECT_DIR=%PROJECT_DIR:~0,-1%" echo %SCRIPT_DIR%" echo ============================================ echo ��������� �������� ������� TestGen echo ============================================ echo. echo ���������� �������: %PROJECT_DIR% echo. :: ============================================================================= :: 1. run_backend.cmd � ������ backend :: ============================================================================= echo [1/8] run_backend.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen Backend echo. echo cd /d "%PROJECT_DIR%\backend" echo. echo :: �������� ������������ ��������� echo if not exist ".venv\Scripts\python.exe" ^( echo echo [!] ����������� ��������� �� �������. echo echo ��������� setup_dev.cmd ��� ���������. echo pause echo exit /b 1 echo ^) echo. echo :: ��������� venv echo call .venv\Scripts\activate.bat echo. echo :: ��������� ���������� ��������� echo set "PYTHONPATH=%PROJECT_DIR%\backend\src;%%PYTHONPATH%%" echo. echo :: �������� .env echo if exist ".env" ^( echo for /f "usebackq tokens=1,2 delims==" %%%%a in ^(`type ".env" ^^^| findstr /b /v "#" ^^^| findstr "="`^) do ^( echo set "%%%%a=%%%%b" echo ^) echo ^) echo. echo echo ============================================ echo echo TestGen Backend echo echo http://localhost:8000 echo echo Docs: http://localhost:8000/api/docs echo echo ============================================ echo echo. echo. echo :: ������ uvicorn echo uvicorn src.testgen.main:app --reload --host 0.0.0.0 --port 8000 --log-level info echo. echo pause ) > "%SCRIPT_DIR%\run_backend.cmd" echo [OK] run_backend.cmd :: ============================================================================= :: 2. run_frontend.cmd � ������ frontend :: ============================================================================= echo [2/8] run_frontend.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen Frontend echo. echo cd /d "%PROJECT_DIR%\frontend" echo. echo :: �������� node_modules echo if not exist "node_modules" ^( echo echo [!] node_modules �� �������. echo echo ���������: npm install echo pause echo exit /b 1 echo ^) echo. echo echo ============================================ echo echo TestGen Frontend echo echo http://localhost:5173 echo echo ============================================ echo echo. echo. echo :: ������ Vite echo call npm run dev echo. echo pause ) > "%SCRIPT_DIR%\run_frontend.cmd" echo [OK] run_frontend.cmd :: ============================================================================= :: 3. run_worker.cmd � ������ Celery worker :: ============================================================================= echo [3/8] run_worker.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen Celery Worker echo. echo cd /d "%PROJECT_DIR%\backend" echo. echo :: �������� ������������ ��������� echo if not exist ".venv\Scripts\python.exe" ^( echo echo [!] ����������� ��������� �� �������. echo pause echo exit /b 1 echo ^) echo. echo call .venv\Scripts\activate.bat echo set "PYTHONPATH=%PROJECT_DIR%\backend\src;%%PYTHONPATH%%" echo. echo :: �������� ���������� TASK_MODE echo for /f "usebackq tokens=1,2 delims==" %%%%a in ^(`type ".env" ^^^| findstr "TASK_MODE"`^) do set "%%%%a=%%%%b" echo if not defined TASK_MODE set "TASK_MODE=sync" echo. echo if "%%TASK_MODE%%"=="sync" ^( echo echo [i] TASK_MODE=sync - Celery worker �� ��������� echo echo ������ ����������� ��������� � �������� backend. echo echo ��� ������� Celery ���������� TASK_MODE=celery � .env echo pause echo exit /b 0 echo ^) echo. echo :: �������� Redis echo echo �������� Redis... echo redis-cli -h localhost -p 6379 ping ^>nul 2^>^&1 echo if %%errorlevel%% neq 0 ^( echo echo [!] Redis ����������. echo echo ���������� � ��������� Redis: https://redis.io/download/ echo echo ��� ����������� TASK_MODE=sync � .env echo pause echo exit /b 1 echo ^) echo. echo echo ============================================ echo echo TestGen Celery Worker echo echo �������: llm_high_priority, llm_low_priority, export echo echo ============================================ echo echo. echo. echo celery -A src.testgen.tasks.celery_app worker --loglevel=info --concurrency=4 --queues=llm_high_priority,llm_low_priority,export --max-tasks-per-child=100 echo. echo pause ) > "%SCRIPT_DIR%\run_worker.cmd" echo [OK] run_worker.cmd :: ============================================================================= :: 4. run_all.cmd � ������ ���� �������� :: ============================================================================= echo [4/8] run_all.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen � ������ ���� �������� echo. echo echo ============================================ echo echo ������ ���� �������� TestGen echo echo ============================================ echo echo. echo. echo cd /d "%PROJECT_DIR%" echo. echo :: �������� ������������ echo if not exist "backend\.env" ^( echo echo [!] ���� backend\.env �� ������. echo echo ���������� backend\.env.example � backend\.env echo pause echo exit /b 1 echo ^) echo. echo :: ������ ������ echo for /f "usebackq tokens=1,2 delims==" %%%%a in ^(`type "backend\.env" ^^^| findstr /b /v "#" ^^^| findstr "="`^) do ^( echo if "%%%%a"=="TASK_MODE" set "TASK_MODE=%%%%b" echo if "%%%%a"=="STORAGE_MODE" set "STORAGE_MODE=%%%%b" echo ^) echo if not defined TASK_MODE set "TASK_MODE=sync" echo if not defined STORAGE_MODE set "STORAGE_MODE=file" echo. echo echo ������������: echo echo STORAGE_MODE = %%STORAGE_MODE%% echo echo TASK_MODE = %%TASK_MODE%% echo echo. echo. echo :: ������ Backend echo echo [1] ������ Backend... echo start "TestGen Backend" cmd /c "%SCRIPT_DIR%\run_backend.cmd" echo. echo :: �������� ���������� backend echo echo �������� ���������� backend... echo timeout /t 5 /nobreak ^>nul echo. echo :: ������ Celery worker (���� �����) echo if "%%TASK_MODE%%"=="celery" ^( echo echo [2] ������ Celery Worker... echo start "TestGen Worker" cmd /c "%SCRIPT_DIR%\run_worker.cmd" echo timeout /t 3 /nobreak ^>nul echo ^) else ^( echo echo [2] Celery Worker �� ��������� (TASK_MODE=sync^) echo ^) echo. echo :: ������ Frontend echo echo [3] ������ Frontend... echo start "TestGen Frontend" cmd /c "%SCRIPT_DIR%\run_frontend.cmd" echo timeout /t 3 /nobreak ^>nul echo. echo echo ============================================ echo echo ��� ������� ��������! echo echo. echo echo Backend: http://localhost:8000 echo echo Docs: http://localhost:8000/api/docs echo echo Frontend: http://localhost:5173 echo echo ============================================ echo echo. echo echo ��� ��������� �������� ���� ��� ������� Ctrl+C � ������. echo echo. echo pause ) > "%SCRIPT_DIR%\run_all.cmd" echo [OK] run_all.cmd :: ============================================================================= :: 5. run_docker.cmd � ������ ����� Docker :: ============================================================================= echo [5/8] run_docker.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen Docker echo. echo cd /d "%PROJECT_DIR%" echo. echo echo ============================================ echo echo ������ TestGen ����� Docker echo echo ============================================ echo echo. echo. echo :: �������� Docker echo docker info ^>nul 2^>^&1 echo if %%errorlevel%% neq 0 ^( echo echo [X] Docker �� �������. echo echo ��������� Docker Desktop. echo pause echo exit /b 1 echo ^) echo. echo :: �������� docker-compose.yml echo if not exist "docker-compose.yml" ^( echo echo [X] docker-compose.yml �� ������. echo pause echo exit /b 1 echo ^) echo. echo :: ����� ������ echo echo ������ �������: echo echo [1] ������ (��� �������^) echo echo [2] ������ backend + �� echo echo [3] ���������� ��� echo echo [4] �������� ���� echo echo. echo set /p DOCKER_MODE="�������� ����� [1]: " echo if "%%DOCKER_MODE%%"=="" set "DOCKER_MODE=1" echo. echo if "%%DOCKER_MODE%%"=="1" ^( echo echo ������ ���� ��������... echo docker compose up -d echo echo. echo echo ������� ��������: echo echo Backend: http://localhost:8000 echo echo Frontend: http://localhost:5173 echo ^) echo. echo if "%%DOCKER_MODE%%"=="2" ^( echo echo ������ backend + ��... echo docker compose up -d db redis backend echo ^) echo. echo if "%%DOCKER_MODE%%"=="3" ^( echo echo ��������� ���� ��������... echo docker compose down echo ^) echo. echo if "%%DOCKER_MODE%%"=="4" ^( echo docker compose logs -f --tail=50 echo ^) echo. echo pause ) > "%SCRIPT_DIR%\run_docker.cmd" echo [OK] run_docker.cmd :: ============================================================================= :: 6. setup_dev.cmd � ������ ��������� ��������� :: ============================================================================= echo [6/8] setup_dev.cmd ( echo @echo off echo chcp 1251 ^>nul echo setlocal enabledelayedexpansion echo title TestGen � ��������� ��������� echo. echo cd /d "%PROJECT_DIR%" echo. echo echo ============================================ echo echo ��������� ��������� ���������� TestGen echo echo ============================================ echo echo. echo. echo :: �������� Python echo echo [1/5] �������� Python... echo where python ^>nul 2^>^&1 echo if %%errorlevel%% neq 0 ^( echo echo [X] Python �� ������. ���������� Python 3.12+ echo pause echo exit /b 1 echo ^) echo for /f "tokens=2" %%%%v in ^('python --version 2^>^&1'^) do echo [OK] Python %%%%v echo. echo :: �������� Node.js echo echo [2/5] �������� Node.js... echo where node ^>nul 2^>^&1 echo if %%errorlevel%% neq 0 ^( echo echo [X] Node.js �� ������. ���������� Node.js 20+ echo pause echo exit /b 1 echo ^) echo for /f "tokens=2" %%%%v in ^('node --version 2^>^&1'^) do echo [OK] Node.js %%%%v echo. echo :: Backend echo echo [3/5] ��������� backend... echo cd backend echo. echo if exist ".venv" ^( echo echo [OK] ����������� ��������� ����������. echo ^) else ^( echo echo �������� ������������ ���������... echo python -m venv .venv echo echo [OK] ����������� ��������� �������. echo ^) echo. echo echo ��������� ������������... echo call .venv\Scripts\activate.bat echo python -m pip install --upgrade pip --quiet echo. echo :: ������� ����� uv echo where uv ^>nul 2^>^&1 echo if %%errorlevel%% equ 0 ^( echo echo ������������ uv... echo uv sync --group dev 2^>^&1 echo ^) else ^( echo echo ������������ pip... echo if exist "requirements.txt" pip install -r requirements.txt --quiet echo ^) echo. echo :: �������� .env echo if not exist ".env" ^( echo if exist ".env.example" ^( echo copy /y ".env.example" ".env" ^>nul echo echo [OK] ������ .env �� .env.example echo ^) echo ^) echo. echo cd .. echo. echo :: Frontend echo echo [4/5] ��������� frontend... echo cd frontend echo. echo if exist "node_modules" ^( echo echo [OK] node_modules ����������. echo ^) else ^( echo echo ��������� npm-������������... echo call npm install echo echo [OK] ����������� �����������. echo ^) echo. echo cd .. echo. echo :: ������ echo echo [5/5] ������������� ������... echo if not exist "backend\datas" ^( echo echo �������� ��������� ������... echo cd backend echo call .venv\Scripts\python.exe -c "from src.testgen.infrastructure.storage.file_db import init_file_db; db = init_file_db('./datas'); print(f'Created {len(db.get_all_tables())} tables')" echo cd .. echo echo [OK] ��������� ������ �������. echo ^) else ^( echo echo [OK] ���������� datas ����������. echo ^) echo. echo echo ============================================ echo echo ��������� ���������! echo echo. echo echo ��� �������: echo echo scripts\run_backend.cmd echo echo scripts\run_frontend.cmd echo echo. echo echo ��� �� �����: echo echo scripts\run_all.cmd echo echo ============================================ echo. echo pause ) > "%SCRIPT_DIR%\setup_dev.cmd" echo [OK] setup_dev.cmd :: ============================================================================= :: 7. run_tests.cmd � ������ ������ :: ============================================================================= echo [7/8] run_tests.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen � ����� echo. echo cd /d "%PROJECT_DIR%\backend" echo. echo if not exist ".venv\Scripts\python.exe" ^( echo echo [!] ����������� ��������� �� �������. echo pause echo exit /b 1 echo ^) echo. echo call .venv\Scripts\activate.bat echo set "PYTHONPATH=%PROJECT_DIR%\backend\src;%%PYTHONPATH%%" echo. echo :menu echo echo ============================================ echo echo ������ ������ TestGen echo echo ============================================ echo echo. echo echo [1] ��� ����� echo echo [2] ������ ��������� (unit^) echo echo [3] ������ �������������� (integration^) echo echo [4] � ��������� (coverage^) echo echo [5] ���������� ���� echo echo [0] ����� echo echo. echo set /p TEST_MODE="�������� ����� [1]: " echo if "%%TEST_MODE%%"=="" set "TEST_MODE=1" echo. echo if "%%TEST_MODE%%"=="1" ^( echo pytest tests/ -v --tb=short echo goto :end echo ^) echo if "%%TEST_MODE%%"=="2" ^( echo pytest tests/unit/ -v --tb=short echo goto :end echo ^) echo if "%%TEST_MODE%%"=="3" ^( echo pytest tests/integration/ -v --tb=short echo goto :end echo ^) echo if "%%TEST_MODE%%"=="4" ^( echo pytest tests/ --cov=src/testgen --cov-report=html --cov-report=term echo echo. echo echo �����: htmlcov\index.html echo start htmlcov\index.html echo goto :end echo ^) echo if "%%TEST_MODE%%"=="5" ^( echo set /p TEST_FILE="���� � �����: " echo pytest %%TEST_FILE%% -v --tb=short echo goto :end echo ^) echo if "%%TEST_MODE%%"=="0" goto :end echo goto :menu echo. echo :end echo pause ) > "%SCRIPT_DIR%\run_tests.cmd" echo [OK] run_tests.cmd :: ============================================================================= :: 8. run_lint.cmd � ������ �������� :: ============================================================================= echo [8/8] run_lint.cmd ( echo @echo off echo chcp 1251 ^>nul echo title TestGen � ������� echo. echo cd /d "%PROJECT_DIR%\backend" echo. echo if not exist ".venv\Scripts\python.exe" ^( echo echo [!] ����������� ��������� �� �������. echo pause echo exit /b 1 echo ^) echo. echo call .venv\Scripts\activate.bat echo. echo echo ============================================ echo echo ������� TestGen echo echo ============================================ echo echo. echo echo [1/2] Ruff (������ + ���������^)... echo ruff check src/ --fix echo ruff format src/ echo echo [OK] Ruff echo echo. echo echo [2/2] Mypy (�������� �����^)... echo mypy src/ --ignore-missing-imports echo echo [OK] Mypy echo echo. echo echo ============================================ echo echo ������� �������� echo echo ============================================ echo. echo pause ) > "%SCRIPT_DIR%\run_lint.cmd" echo [OK] run_lint.cmd :: ============================================================================= :: ���������� :: ============================================================================= echo. echo ============================================ echo ������� 8 �������� � ����� scripts\ echo ============================================ echo. echo run_backend.cmd � ������ backend (FastAPI) echo run_frontend.cmd � ������ frontend (React) echo run_worker.cmd � ������ Celery worker echo run_all.cmd � ������ ���� �������� echo run_docker.cmd � ������ ����� Docker echo setup_dev.cmd � ������ ��������� ��������� echo run_tests.cmd � ������ ������ echo run_lint.cmd � ������ �������� echo. echo ������ ������: echo 1. scripts\setup_dev.cmd (���������) echo 2. scripts\run_all.cmd (������) echo. pause