test_live_smoke.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """显式启用后才调用真实 LLM 的冒烟测试。"""
  2. from __future__ import annotations
  3. import os
  4. from pathlib import Path
  5. import pytest
  6. from dotenv import load_dotenv
  7. from src.agents import build_agent_team
  8. from src.config import LLMSettings
  9. from src.tools import REQUIRED_REPORT_HEADINGS, create_tool_registry
  10. from src.workflow import RequirementClarifierWorkflow
  11. PROJECT_ROOT = Path(__file__).resolve().parents[1]
  12. @pytest.mark.live
  13. def test_live_multi_agent_workflow() -> None:
  14. if os.getenv("RUN_LIVE_TESTS") != "1":
  15. pytest.skip("设置 RUN_LIVE_TESTS=1 后才运行真实 LLM 冒烟测试")
  16. load_dotenv(PROJECT_ROOT / ".env")
  17. settings = LLMSettings.from_env()
  18. registry = create_tool_registry()
  19. workflow = RequirementClarifierWorkflow(
  20. build_agent_team(settings, registry), registry
  21. )
  22. result = workflow.run(
  23. "面向社区居民开发一个活动报名工具,希望一个月内完成首版。"
  24. )
  25. assert all(f"## {heading}" in result.report for heading in REQUIRED_REPORT_HEADINGS)
  26. assert result.quality["missing_headings"] == []
  27. assert result.quality["score"] >= 90