Files
Neo-ZQYY/scripts/ops/_run_ai_tests_remaining.py
2026-03-15 10:15:02 +08:00

48 lines
1.5 KiB
Python

"""批量运行剩余 AI 测试文件,收集结果汇总。"""
import subprocess
import sys
import time
TEST_FILES = [
"apps/backend/tests/test_ai_cache.py",
"apps/backend/tests/test_ai_chat.py",
"apps/backend/tests/test_ai_app2.py",
"apps/backend/tests/test_ai_apps_prompt.py",
"apps/backend/tests/test_ai_clue_writer.py",
"apps/backend/tests/test_ai_dispatcher.py",
"tests/test_p5_ai_integration_properties.py",
]
TIMEOUT = 300 # 5 分钟每个文件
results = []
for f in TEST_FILES:
print(f"\n{'='*60}")
print(f"Running: {f}")
print(f"{'='*60}", flush=True)
start = time.time()
try:
proc = subprocess.run(
[sys.executable, "-m", "pytest", f, "-v", "--tb=short", "-x"],
timeout=TIMEOUT,
)
elapsed = time.time() - start
results.append((f, proc.returncode, f"{elapsed:.1f}s"))
except subprocess.TimeoutExpired:
elapsed = time.time() - start
results.append((f, "TIMEOUT", f"{elapsed:.1f}s"))
print(f" >>> TIMEOUT after {elapsed:.1f}s")
except Exception as e:
elapsed = time.time() - start
results.append((f, f"ERROR: {e}", f"{elapsed:.1f}s"))
print(f"\n\n{'='*60}")
print("SUMMARY")
print(f"{'='*60}")
print(f"{'File':<55} {'Result':<10} {'Time'}")
print("-" * 80)
for f, rc, t in results:
short = f.split("/")[-1]
status = "PASS" if rc == 0 else ("TIMEOUT" if rc == "TIMEOUT" else f"FAIL(rc={rc})")
print(f"{short:<55} {status:<10} {t}")