跳到内容

测试策略

Mindwtr 在 core、平台应用和集成接口之间采用分层测试策略。

目标

  1. 保护数据完整性(同步、存储、合并规则)
  2. 捕获关键用户工作流程中的回归
  3. 保持 CI 测试快速且结果确定

测试层级

核心(packages/core

  • 覆盖主要逻辑(同步、重复规则、解析、存储辅助函数)
  • 使用确定性 fixture 的快速单元测试
  • 大多数数据完整性不变量应首先在此强制保证

桌面端(apps/desktop

  • 组件与视图行为测试(Vitest + Testing Library)
  • 重点覆盖交互密集的视图和同步编排包装层

移动端(apps/mobile

  • 工具和编排测试
  • 同步与任务编辑行为关键流程的冒烟测试
  • 设备专属 UI 行为仍部分依赖手动验证

云端(apps/cloud

  • API 端点测试
  • 认证/速率限制/路径验证
  • CRUD 与附件端点行为
  • 覆盖重点是核心请求处理,而非穷尽并发部署场景

MCP 服务器(apps/mcp-server

  • 查询层正确性(搜索、添加/更新/删除/恢复)
  • 输入验证与事务行为
  • 覆盖重点是工具行为与验证,而非完整端到端编辑器/LLM 工作流程

当前覆盖限制

  • packages/core 的自动化覆盖最强,应继续作为防止数据完整性回归的第一道防线。
  • 桌面端对关键视图有良好的组件覆盖,但并非每条交互路径都有端到端测试。
  • 移动端覆盖有意少于桌面端/核心;无障碍、手势和原生集成路径仍需在设备上手动检查。
  • 云端和 MCP 服务器测试覆盖核心处理程序与验证路径,但尚未模拟所有生产并发或部署边界情况。

优先测试什么

新增或更改行为时,请按以下顺序安排测试:

  1. 数据正确性与合并语义
  2. 错误路径和重试/超时行为
  3. 面向用户的交互路径
  4. 对性能敏感的逻辑(搜索/同步/列表转换)

回归检查清单

合并前:

  1. 为更改的行为新增或更新测试
  2. 在本地运行受影响软件包的测试
  3. 跨软件包更改应运行更广泛的工作区测试
  4. 确认测试之间不存在快照/状态耦合

实用规则

  1. 优先使用确定性时间戳/fixture,不要使用实时值。
  2. 单元测试应避免网络依赖。
  3. 每个测试只聚焦一种行为。
  4. 在工作流程边界使用集成测试,而非覆盖每个分支。
  5. 将不稳定测试视为错误,尽快修复根本原因。
  6. 如果平台专属错误修复无法建立可靠自动化,请在 PR 中记录所需的手动验证步骤。

相关文档

Mindwtr 免费、开源且本地优先。
Getting Things Done 和 GTD 是 David Allen Company 的注册商标。Mindwtr 与 David Allen Company 不存在关联,亦未获得其认可或赞助。