1.5 KiB
1.5 KiB
Testing Guide
Test layers
项目当前采用四层测试结构:
1. 静态检查
pnpm checkpnpm buildgo build ./...
用于保证类型、打包和 Go 媒体服务编译可通过。
2. 单元测试
pnpm test
当前覆盖:
- Node/tRPC 路由输入校验与权限检查
- 媒体工具函数,例如录制时长格式化与码率选择
3. Go 媒体服务测试
pnpm test:go
当前覆盖:
media/health- 会话创建与状态聚合
- 归档流程的基础回放产物生成
4. 浏览器 E2E
pnpm test:e2e
使用 Playwright。为保证稳定性:
- 启动本地测试服务器
pnpm dev:test - 通过路由拦截模拟 tRPC 和
/media接口 - 注入假媒体设备、假
MediaRecorder和假RTCPeerConnection
这样可以自动验证前端主流程,而不依赖数据库、真实摄像头权限和真实 WebRTC 网络环境。
Unified verification
一次性执行全部自动验证:
pnpm verify
执行顺序:
pnpm checkpnpm testpnpm test:gopnpm buildpnpm test:e2e
Local browser prerequisites
首次运行 Playwright 前执行:
pnpm exec playwright install chromium
Notes
- E2E 目前验证的是“模块主流程是否正常”,不是媒体编码质量本身
- 若需要真实录制验证,可额外用本地 Chrome 和真实摄像头做手工联调
- 若
pnpm test:e2e失败,优先检查:PORT=3100是否被占用- 浏览器依赖是否安装
- 前端路由或测试标识是否被改动