chore(test): 新增统一测试入口与端到端场景模拟脚本
- scripts/run-memind-tests.mjs:按改动文件自动匹配 test + verify 范围 (quick/changed/guards/release/full 模式),配套 memind-test skill - scripts/run-scenario-test.mjs + scenario-test-lib.mjs:真实登录 + 多轮 聊天 + 页面生成 + 公网可访问性的端到端模拟,配套 memind-scenario-test skill 与首个场景 scenarios/suzhou-page.json - package.json 新增 test:memind / test:scenario 脚本别名 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
---
|
||||
name: memind-test
|
||||
description: >-
|
||||
Run Memind scoped or release tests automatically after code changes. Use when
|
||||
the user asks to test, verify, run tests, check regressions, or before
|
||||
merging/releasing; also after editing protected MindSpace/chat/agent paths.
|
||||
---
|
||||
|
||||
# Memind 自动测试
|
||||
|
||||
不要手动拼凑 `node --test` 命令。统一入口:
|
||||
|
||||
```bash
|
||||
node scripts/run-memind-tests.mjs --mode <mode>
|
||||
```
|
||||
|
||||
## 选模式
|
||||
|
||||
| 用户意图 | 模式 |
|
||||
|----------|------|
|
||||
| 改完代码、日常验证 | `changed`(默认) |
|
||||
| 快速冒烟 | `quick` |
|
||||
| 只跑回归守卫 | `guards` |
|
||||
| 发包前 | `release` |
|
||||
| 全量单测 | `full` |
|
||||
|
||||
示例:
|
||||
|
||||
```bash
|
||||
node scripts/run-memind-tests.mjs
|
||||
node scripts/run-memind-tests.mjs --mode quick
|
||||
node scripts/run-memind-tests.mjs --mode release
|
||||
```
|
||||
|
||||
对比基准分支时用 `--base origin/main`。
|
||||
|
||||
## Agent 工作流
|
||||
|
||||
1. **判断模式**:用户说「测试/验证/跑一下」→ `changed`;说「发包前」→ `release`;说「全量」→ `full`。
|
||||
2. **执行**:在仓库根目录跑脚本,不要跳过。
|
||||
3. **失败时**:读报错 → 修代码 → 用同一模式重跑,直到通过。
|
||||
4. **汇报**:用下方模板,不要只说「通过了」。
|
||||
|
||||
## 受保护路径(改后必跑 guards)
|
||||
|
||||
改这些文件时,即使 `changed` 未命中也要加跑 `guards`:
|
||||
|
||||
- `mindspace-public-finish-sync.mjs`、`chat-finish-sync.mjs`
|
||||
- `conversation-display.mjs`、`src/utils/message.ts`、`src/hooks/useTKMindChat.ts`
|
||||
- `mindspace-pages.mjs`、`mindspace-page-sync-service.mjs`、`server.mjs`
|
||||
|
||||
```bash
|
||||
node scripts/run-memind-tests.mjs --mode guards
|
||||
```
|
||||
|
||||
详见 [docs/regression-guards/README.md](../../../docs/regression-guards/README.md)。
|
||||
|
||||
## 结果模板
|
||||
|
||||
```markdown
|
||||
## 测试结果
|
||||
|
||||
- 模式:`changed` / `quick` / `guards` / `release` / `full`
|
||||
- 变更文件:N 个(列出关键路径)
|
||||
- 执行:X 个 test + Y 个 verify
|
||||
- 结果:通过 / 失败
|
||||
|
||||
### 失败项(如有)
|
||||
- 命令:
|
||||
- 错误摘要:
|
||||
- 下一步:
|
||||
```
|
||||
|
||||
## 与发布 skill 的关系
|
||||
|
||||
- 日常开发:本 skill + `changed` / `guards`
|
||||
- **模拟用户聊天/做页面**:用 `memind-scenario-test` skill(`run-scenario-test.mjs`)
|
||||
- 103 生产发布:用 `portal-release` skill,其发包前测试与本 skill 的 `release` 模式一致
|
||||
- 不要混用「手动挑几个 test 文件」替代上述入口
|
||||
Reference in New Issue
Block a user