---
title: 测试与贡献
description: 用实际结果证明变更没有破坏业务路径。
lastVerified: 2026-09-23
---

# 6.8 测试与贡献

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

| 命令 | 覆盖范围 |
| --- | --- |
| `pnpm test:contract` | 共享契约与解析 |
| `pnpm test:work` | 后端业务与数据库 |
| `pnpm test:native` | DSH 适配与执行授权 |
| `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 安装的发布验收要求

npm 安装器尚未发布，以下是后续发布门槛，不是已完成的测试结果：

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

## 一次变更的完成标准

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

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

## 提交贡献

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