跳到正文
社区版开源 Web · 0.2.1 发行文档 · 0.2.1内容核对:2026-10-02查看 Markdown

6.9 测试与贡献 ​

先确定变更影响的边界,再选择测试。不要用复制源码常量的断言代替行为验证。

命令覆盖范围
pnpm test:contract共享契约与解析
pnpm test:work后端业务与数据库
pnpm test:nativeDSH 适配与执行授权
pnpm test:npm原生安装器与发行资源
pnpm test:bindings客户端绑定与交互状态
pnpm test:references只读 MCP 服务与协议
pnpm test:prototype公共脚本和原型逻辑
pnpm typecheck构建及根类型检查
pnpm check:client客户端构建边界

按目的选择环境 ​

用途推荐环境验证重点
日常开发与交互调试本机 Teloa / Harness + Docker PostgreSQL本机路径、程序、权限与 Web 行为
后端集成与 CI 构建隔离数据库或容器,按用例依赖选择业务规则、事务、初始化和依赖完整性
npm 安装验收干净的目标系统,安装真实发行包不依赖源码与开发缓存,本机执行和服务生命周期
Compose 部署回归应用、Harness、数据库全容器容器启动、健康检查、持久卷和明确挂载的文件

容器内通过不能代替原生安装验收。 例如在 Linux 容器执行 shell 成功,不能证明 macOS 本机程序、Windows 权限或用户 PATH 正常。WSL2 与 Windows 原生也需要分别记录。

npm 安装的发布验收要求 ​

修改安装器时,仍须按以下清单验证;每项结果应记录具体操作系统、CPU 与 Node 版本。

  1. 在没有源码、全局 pnpm、编译器和已有开发缓存的目标环境,安装真实 npm tarball;发布后再从注册表安装同一版本。
  2. 验证前端、Harness、资料与预设资源完整;服务就绪与模型配置分别检查。
  3. 普通会话和 AI 员工分别完成授权目录读写、本机程序调用,并核对实际落盘成果;同时验证未授权工具、越界写入和撤销授权。
  4. 覆盖中文与空格路径、只读目录、PATH 缺失程序、端口冲突、重复与并发启动;检查失败提示和日志脱敏。
  5. 验证关闭发起终端后服务仍运行,停止与重启保留记录,npm 更新或临时缓存清理不破坏运行服务。
  6. 真实演练备份、恢复、兼容升级与卸载保留;恢复不会自动重派外部动作。仅声明实际通过的系统、CPU 与 Node 版本。

一次变更的完成标准 ​

  1. 修复缺陷先提供可失败的复现。
  2. 运行受影响测试,并说明未执行的环境依赖。
  3. 跨包改动增加真实数据库或宿主的接缝验证。
  4. 用户可见交互通过浏览器走查,包括等待、失败和恢复。
  5. 同步文档、版本边界和更新记录。

数据库测试可能创建容器或临时 schema;先确认当前环境与隔离要求。真实模型测试会产生费用,不能当作普通静态检查自动触发。

完整功能与 E2E 回归 ​

先安装锁定依赖并运行 pnpm build。数据库套件使用本机 Docker,并串行持有 /tmp/teloa-db-test.lock;锁已存在时,先确认持有者,不删除其他验收的锁。所有浏览器以无头模式运行,不使用开发者正在操作的页面。

sh
# DOCKER_HOST 指向本机实际使用的 Docker socket。
TELOA_USAGE_STATS=off DOCKER_HOST="unix:///path/to/docker.sock" \
  node tests/system-host-acceptance.mjs

# 按名称重跑受影响的宿主场景。
TELOA_USAGE_STATS=off DOCKER_HOST="unix:///path/to/docker.sock" \
  node tests/system-host-acceptance.mjs model-settings model-fallback

# 官网、文档、市场与反馈服务:本地构建和隔离服务。
node website/tests/sites-system-e2e.mjs

宿主批次自动创建一次性 PostgreSQL、独立配置和临时凭据,覆盖首次配置、选模与备用模型、OAuth、扩展热启停、任务、员工、成果和群附件。OAuth 包含真实授权过期等待,单项约十分钟。默认输出在 .runtime/system-host-acceptance/;可用 TELOA_SYSTEM_E2E_OUTPUT 指定本轮目录。三站输出可用 SITES_E2E_OUTPUT 指定。检查逐项结果、首次失败日志及清理结果,不只看最后一行输出。

这些宿主测试使用确定性的本机模型和授权服务,证明发送、授权、持久化与恢复链路;不能证明真实模型的理解质量或生产账号可用。实际模型、第三方平台、目标硬件和发行安装须单独验收。跳过、上游已知失败和未覆盖环境应保留在报告中,不计为通过。

提交贡献 ​

在源码仓库的贡献入口提交可复现的问题或变更,遵循仓库内 CONTRIBUTING.md。说明触发方式、修改后的行为、测试结果和已知限制。不要附带运行目录、个人照片、凭据或与变更无关的数据。