# -*- coding: utf-8 -*- """界面重做之后,所有"启动被控端"的测试都要换启动方式。 run_agent.py 现在的默认流程是: 没设置过 → 弹设置窗口(阻塞在 mainloop 上) 设置过 → 直接静默 所以测试不能再简单地 `--minimized`(会卡在设置窗口), 要用 `--add-device N`:静默运行 + 临时开放配对,正好是测试需要的。 """ from __future__ import annotations import sys from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") E2E = ROOT / "_tests" / "test_e2e_features.py" VA = ROOT / "_tests" / "verify_all.ps1" FIXES = [ # test_e2e_features.py:改用 --add-device (E2E, ''' [str(EXE), "--port", str(PORT), "--minimized"],''', ''' # --add-device:静默运行 + 临时开放配对。 # 不能用 --minimized —— 全新数据目录会弹设置窗口卡住。 [str(EXE), "--port", str(PORT), "--add-device", "10"],''', "test_e2e_features: 换启动方式"), # verify_all 的 Java EXE 阶段 (VA, ''' $proc = Start-Process -FilePath $exe -ArgumentList "--port", "8801" -PassThru''', ''' # --add-device:静默运行 + 开放配对(默认流程会弹设置窗口,测试会卡住) $proc = Start-Process -FilePath $exe -ArgumentList "--port", "8801", "--add-device", "10" -PassThru''', "verify_all: Java EXE 阶段换启动方式"), ] def main() -> int: ok = True for path, old, new, tag in FIXES: if not path.is_file(): print(f" [跳过] {tag} —— 文件不存在") ok = False continue text = path.read_text(encoding="utf-8-sig") if old not in text: print(f" [跳过] {tag} —— 锚点没找到") ok = False continue text = text.replace(old, new, 1) if path.suffix == ".ps1": path.write_bytes(b"\xef\xbb\xbf" + text.encode("utf-8")) else: path.write_text(text, encoding="utf-8") print(f" {tag}: OK") import ast try: ast.parse(E2E.read_text(encoding="utf-8")) print(" test_e2e_features.py: 语法 OK") except SyntaxError as exc: print(f" test_e2e_features.py: 语法错误 {exc}") ok = False return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())