mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 12:30:44 +00:00
测试套件:锁屏识别 + 退出码取法 + BOM 兜底
一、锁屏时截屏类测试误报
电脑锁屏后,test_agent_protocol 的 5 项截屏断言、以及两个
Java 端到端阶段必然失败 —— 但那是环境限制,不是代码问题。
不区分的话汇总表一片红,真正的失败反而被淹没。
现在启动时用 OpenInputDesktop 探测,锁屏时这些阶段记
SKIP(锁屏) 而不是 FAIL,并在开头黄字提示。
二、管道后读 $LASTEXITCODE 不可靠
形如
& python xxx.py 2>&1 | Select-Object -Last 4
Record "某阶段" ($LASTEXITCODE -eq 0)
拿到的不一定是那条命令的退出码,实测测试全过了却记 FAIL。
改成先把码存进变量再走管道。共修 4 处。
三、edit 工具会剥掉 .ps1 的 UTF-8 BOM
没有 BOM 的 .ps1 会被 PowerShell 按 GBK 读,中文全乱码,
接着一堆 "Unexpected token" 语法错误,脚本直接跑不了。
这个坑今天踩了两次。加了 _build/fix_ps1_bom.py 统一补 BOM,
并顺带检查 .bat 是不是 GBK。
跑出来:33 个阶段 —— 30 PASS + 3 SKIP(锁屏),0 FAIL。
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
r'''提交测试套件的三处修复。'''
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote")
|
||||
GIT = r"C:\Program Files\Git\bin\git.exe"
|
||||
|
||||
MSG = """测试套件:锁屏识别 + 退出码取法 + BOM 兜底
|
||||
|
||||
一、锁屏时截屏类测试误报
|
||||
电脑锁屏后,test_agent_protocol 的 5 项截屏断言、以及两个
|
||||
Java 端到端阶段必然失败 —— 但那是环境限制,不是代码问题。
|
||||
不区分的话汇总表一片红,真正的失败反而被淹没。
|
||||
现在启动时用 OpenInputDesktop 探测,锁屏时这些阶段记
|
||||
SKIP(锁屏) 而不是 FAIL,并在开头黄字提示。
|
||||
|
||||
二、管道后读 $LASTEXITCODE 不可靠
|
||||
形如
|
||||
& python xxx.py 2>&1 | Select-Object -Last 4
|
||||
Record "某阶段" ($LASTEXITCODE -eq 0)
|
||||
拿到的不一定是那条命令的退出码,实测测试全过了却记 FAIL。
|
||||
改成先把码存进变量再走管道。共修 4 处。
|
||||
|
||||
三、edit 工具会剥掉 .ps1 的 UTF-8 BOM
|
||||
没有 BOM 的 .ps1 会被 PowerShell 按 GBK 读,中文全乱码,
|
||||
接着一堆 "Unexpected token" 语法错误,脚本直接跑不了。
|
||||
这个坑今天踩了两次。加了 _build/fix_ps1_bom.py 统一补 BOM,
|
||||
并顺带检查 .bat 是不是 GBK。
|
||||
|
||||
跑出来:33 个阶段 —— 30 PASS + 3 SKIP(锁屏),0 FAIL。
|
||||
"""
|
||||
|
||||
|
||||
def main() -> int:
|
||||
subprocess.run([GIT, "add", "-A"], cwd=str(ROOT), check=False)
|
||||
msg_file = ROOT / "_build" / "_cmsg3.txt"
|
||||
msg_file.write_bytes(MSG.encode("utf-8"))
|
||||
r = subprocess.run([GIT, "commit", "-q", "-F", str(msg_file)],
|
||||
cwd=str(ROOT), capture_output=True, text=True,
|
||||
encoding="utf-8", errors="replace")
|
||||
msg_file.unlink(missing_ok=True)
|
||||
print(" commit exit=%s" % r.returncode)
|
||||
|
||||
show = subprocess.run([GIT, "log", "--oneline", "-1"], cwd=str(ROOT),
|
||||
capture_output=True, text=True, encoding="utf-8",
|
||||
errors="replace")
|
||||
print(" " + (show.stdout or "").strip())
|
||||
|
||||
env = dict(os.environ)
|
||||
env["GIT_SSH_COMMAND"] = r'"C:\Program Files\Git\usr\bin\ssh.exe"'
|
||||
push = subprocess.run([GIT, "push", "origin", "main"], cwd=str(ROOT),
|
||||
capture_output=True, text=True, encoding="utf-8",
|
||||
errors="replace", env=env)
|
||||
for line in (push.stderr or push.stdout or "").strip().splitlines()[-2:]:
|
||||
print(" " + line)
|
||||
|
||||
status = subprocess.run([GIT, "status", "--short"], cwd=str(ROOT),
|
||||
capture_output=True, text=True, encoding="utf-8",
|
||||
errors="replace")
|
||||
left = (status.stdout or "").strip()
|
||||
print(" 工作区: %s" % ("干净 ✓" if not left else left[:200]))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user