run_tests.bat 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. @echo off
  2. REM Windows 批处理脚本 - 快速运行测试
  3. echo ========================================
  4. echo 语义逻辑审查模块测试套件
  5. echo ========================================
  6. echo.
  7. cd /d "%~dp0\.."
  8. echo 当前目录: %CD%
  9. echo.
  10. REM 检查 Python 是否安装
  11. python --version >nul 2>&1
  12. if errorlevel 1 (
  13. echo [错误] 未找到 Python,请先安装 Python
  14. pause
  15. exit /b 1
  16. )
  17. echo [信息] 检查测试依赖...
  18. python -c "import pytest" >nul 2>&1
  19. if errorlevel 1 (
  20. echo [警告] 缺少测试依赖,正在安装...
  21. pip install -r Semantic_Logic_Test\requirements_test.txt
  22. )
  23. echo.
  24. echo ========================================
  25. echo 请选择要运行的测试:
  26. echo ========================================
  27. echo 1. 运行所有测试
  28. echo 2. 运行所有测试(详细输出)
  29. echo 3. 运行基础功能测试
  30. echo 4. 运行边界情况测试
  31. echo 5. 运行测试并生成覆盖率报告
  32. echo 6. 运行测试并生成 HTML 报告
  33. echo 7. 只运行失败的测试
  34. echo 0. 退出
  35. echo.
  36. set /p choice="请输入选项 (0-7): "
  37. if "%choice%"=="1" (
  38. pytest Semantic_Logic_Test\test_semantic_logic.py -v
  39. ) else if "%choice%"=="2" (
  40. pytest Semantic_Logic_Test\test_semantic_logic.py -v -s
  41. ) else if "%choice%"=="3" (
  42. pytest Semantic_Logic_Test\test_semantic_logic.py::TestSemanticLogicReviewer -v
  43. ) else if "%choice%"=="4" (
  44. pytest Semantic_Logic_Test\test_semantic_logic.py::TestEdgeCases -v
  45. ) else if "%choice%"=="5" (
  46. pytest Semantic_Logic_Test\test_semantic_logic.py --cov=core.construction_review.component.reviewers.semantic_logic --cov-report=html --cov-report=term
  47. echo.
  48. echo [信息] 覆盖率报告已生成到 htmlcov\index.html
  49. ) else if "%choice%"=="6" (
  50. pytest Semantic_Logic_Test\test_semantic_logic.py --html=Semantic_Logic_Test\report.html --self-contained-html
  51. echo.
  52. echo [信息] HTML 报告已生成到 Semantic_Logic_Test\report.html
  53. ) else if "%choice%"=="7" (
  54. pytest Semantic_Logic_Test\test_semantic_logic.py --lf -v
  55. ) else if "%choice%"=="0" (
  56. echo.
  57. echo 再见!
  58. exit /b 0
  59. ) else (
  60. echo.
  61. echo [错误] 无效的选项
  62. pause
  63. exit /b 1
  64. )
  65. echo.
  66. pause