文件
tennis-training-hub/docs/testing.md
2026-03-14 21:45:31 +08:00

1.5 KiB
原始文件 Blame 文件历史

Testing Guide

Test layers

项目当前采用四层测试结构:

1. 静态检查

  • pnpm check
  • pnpm build
  • go 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

执行顺序:

  1. pnpm check
  2. pnpm test
  3. pnpm test:go
  4. pnpm build
  5. pnpm test:e2e

Local browser prerequisites

首次运行 Playwright 前执行:

pnpm exec playwright install chromium

Notes

  • E2E 目前验证的是“模块主流程是否正常”,不是媒体编码质量本身
  • 若需要真实录制验证,可额外用本地 Chrome 和真实摄像头做手工联调
  • pnpm test:e2e 失败,优先检查:
    • PORT=3100 是否被占用
    • 浏览器依赖是否安装
    • 前端路由或测试标识是否被改动