การทดสอบ¶
-
ชุดเครื่องมือทดสอบครบถ้วน(สวีท,ไลฟ์,Docker): Testing
-
pnpm test:force: ฆ่าโปรเซสGatewayที่ค้างอยู่ซึ่งครอบครองพอร์ตควบคุมเริ่มต้น จากนั้นรันชุดทดสอบ Vitest ทั้งหมดด้วยพอร์ตGatewayที่แยกออกมา เพื่อให้การทดสอบเซิร์ฟเวอร์ไม่ชนกับอินสแตนซ์ที่กำลังรันอยู่ ใช้กรณีที่การรันGatewayก่อนหน้าทิ้งพอร์ต18789ไว้ 20. ใช้สิ่งนี้เมื่อการรัน gateway ก่อนหน้าทำให้พอร์ต 18789 ถูกใช้งานอยู่ -
pnpm test:coverage: รัน Vitest พร้อมการครอบคลุมด้วย V8 22. เกณฑ์ส่วนกลางคือ 70% สำหรับ lines/branches/functions/statementspnpm test:coverage: รัน Vitest พร้อมความครอบคลุม V8 เกณฑ์รวมคือ70%สำหรับบรรทัด/แขนง/ฟังก์ชัน/สเตตเมนต์ การคำนวณความครอบคลุมจะยกเว้นจุดเริ่มต้นที่เน้นอินทิเกรชันหนัก(การเชื่อมสายCLI,บริดจ์gateway/telegram,เซิร์ฟเวอร์สแตติกเว็บแชต)เพื่อโฟกัสที่ลอจิกที่ทดสอบด้วยยูนิตได้
-
pnpm test:e2e: รันการทดสอบสโมคแบบเอนด์ทูเอนด์ของGateway(การจับคู่WS/HTTP/โหนดหลายอินสแตนซ์) -
pnpm test:live: รันการทดสอบผู้ให้บริการแบบ live (minimax/zai)pnpm test:live: รันการทดสอบไลฟ์ของผู้ให้บริการ(minimax/zai)ต้องใช้คีย์APIและLIVE=1(หรือ*_LIVE_TEST=1เฉพาะผู้ให้บริการ)เพื่อยกเลิกการข้าม
การทดสอบความหน่วงของโมเดล(local keys)¶
สคริปต์: scripts/bench-model.ts
การใช้งาน:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- ตัวแปรสภาพแวดล้อม(ไม่บังคับ):
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - พรอมป์ต์เริ่มต้น: “ตอบด้วยคำเดียว: ok ห้ามมีเครื่องหมายวรรคตอนหรือข้อความเพิ่มเติม” 24. ไม่มีเครื่องหมายวรรคตอนหรือข้อความเพิ่มเติม”
การรันล่าสุด(2025-12-31,20ครั้ง):
- minimax ค่ามัธยฐาน1279ms(ต่ำสุด1114,สูงสุด2431)
- opus ค่ามัธยฐาน2454ms(ต่ำสุด1224,สูงสุด3170)
Onboarding E2E(Docker)¶
Dockerเป็นตัวเลือก ไม่จำเป็นหากไม่ทดสอบสโมคการเริ่มต้นแบบคอนเทนเนอร์
โฟลว์เริ่มต้นแบบcold-startเต็มรูปแบบในคอนเทนเนอร์Linuxที่สะอาด:
scripts/e2e/onboard-docker.sh
สคริปต์นี้จะขับวิซาร์ดแบบโต้ตอบผ่านpseudo-tty ตรวจสอบไฟล์คอนฟิก/เวิร์กสเปซ/เซสชัน จากนั้นเริ่มGatewayและรันopenclaw health.
QR import smoke(Docker)¶
ตรวจสอบว่าqrcode-terminalโหลดได้ภายใต้Node22+ในDocker:
pnpm test:docker:qr