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

6.13 测试与贡献 ​

先写出变更影响的用户行为,再选择对应测试。下面的命令均从 Teloa 社区源码根目录运行;先完成开发环境。

选择测试 ​

命令验证什么
pnpm test:repo仓库入口、固定依赖和配置边界
pnpm test:contract共享契约与解析
pnpm test:sdk对外员工 SDK 合同
pnpm test:references只读 MCP 协议与资料边界
pnpm test:bindings客户端绑定与交互状态
pnpm test:work后端业务与数据库规则
pnpm test:nativeDSH 适配与执行授权
pnpm test:extensionsIM 与本地检索扩展
pnpm --filter @teloa/cli test原生安装器与发行资源
pnpm typecheck先构建,再做根类型检查
pnpm check:client客户端构建边界

先运行受影响项,不必每次执行整张表。数据库测试需要可用的本机 Docker,部分宿主测试需要构建资源、端口或平台能力;查看测试文件的前置条件。新版本若调整脚本,以检出源码的 package.json 为准。

一个小变更怎样验证 ​

以只读 MCP 服务为例:

sh
pnpm test:references

它启动实际 stdio 服务,检查工具发现、正文读取、错误资料身份、错误版本和额外参数。服务通过后,再用完整客户端示例读取一次,最后验证员工未授权拒绝、授权后可读。这样能区分协议、授权和模型三层问题。

如果只修一个测试文件覆盖的缺陷,可直接运行它,例如:

sh
node --test packages/mcp-reference/tests/protocol.test.ts

怎样记录结果 ​

记录源码提交、Node 与平台版本、运行命令、实际退出结果和必要回执。失败保留首次复现,修复后复跑受影响用例。跳过、缺少依赖和未测试的平台单独列出。

证据能证明什么
格式读取器通过输入满足当前格式
模拟模型或固定夹具通过状态、权限与持久化链路
真实模型完成任务该模型在本次输入上的实际结果
浏览器完成操作该页面和状态的实际交互
npm tarball 在干净环境安装该平台上的发行安装路径

不能用其中一种代替全部其他验证。真实模型需要凭据并产生用量,应与普通单元测试分开。

安装器与运行环境 ​

修改安装器时,额外验证启动、关闭终端后保活、停止、重启、端口冲突、中文与空格路径,以及备份、恢复、升级和卸载保留。npm 包应从真实 tarball 安装,发布后再从注册表核对。

日常开发使用本机宿主与 Docker 数据库;容器用于数据库和部署回归。Linux 容器通过不能代替 macOS 或 Windows 本机路径、程序和系统权限验收。

提交贡献 ​

在社区仓库提交 Issue 或 PR,写清问题、触发步骤、修改后的行为、验证结果和实际限制。按仓库 CONTRIBUTING.md 与 DCO.md 添加 Signed-off-by。不要提交凭据、运行数据、私人内容或无关修改。安全问题按 SECURITY.md 的私密报告入口处理。