import json,os,pathlib,sqlite3,subprocess,time,urllib.request root=pathlib.Path(__file__).resolve().parent.parent data=pathlib.Path((root/'integration-work/continuity-test-current.txt').read_text()) stage=root/'integration-work/stage-4.0.11/app' with sqlite3.connect(data/'huobao.sqlite3') as db: db.execute("UPDATE storyboards SET video_url='static/videos/source.mp4' WHERE id=2") db.execute("UPDATE storyboards SET continuity_start='右手持剑,朝向右侧' WHERE id=3") db.execute("UPDATE storyboards SET deleted_at=NULL WHERE id=3") db.execute("UPDATE episodes SET script_content='隔离测试剧本:人物持剑向右走。' WHERE id=2") env={**os.environ,'ELECTRON_RUN_AS_NODE':'1','PORT':'18930','HUOBAO_DATA_DIR':str(data),'SQLITE_PATH':str(data/'huobao.sqlite3'),'FRONTEND_DIST':str(root/'huobao-source/frontend/.output/public'),'WORKSPACE_PATH':str(stage/'resources/workspace-template'),'FFMPEG_BIN':str(stage/'resources/bin/ffmpeg.exe'),'FFPROBE_BIN':str(stage/'resources/bin/ffprobe.exe')} log=(data/'ui-server.log').open('w',encoding='utf-8');process=subprocess.Popen([str(stage/'HuobaoDrama.exe'),str(data/'backend.mjs')],cwd=data,env=env,stdout=log,stderr=log,creationflags=subprocess.CREATE_NO_WINDOW) try: for _ in range(100): try: urllib.request.urlopen('http://127.0.0.1:18930/api/v1/health',timeout=1);break except OSError:time.sleep(.1) subprocess.run(['node',str(root/'integration-work/browser-test/verify_continuity_ui.cjs')],cwd=root,env={**os.environ,'CONTINUITY_FIXTURE':str(data)},check=True) print('Screenshot:',data/'continuity-ui.png') finally:process.terminate();process.wait(timeout=10);log.close()