ワンクリックで
test-execution
测试执行详细流程。test-agent 执行测试时调用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
测试执行详细流程。test-agent 执行测试时调用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Architecture & Repository Guardian for main branch. Invoke when user needs to plan tasks, manage git branches/worktrees, or coordinate sub-agents. ONLY callable from main branch.
开发执行详细流程。dev-agent 执行代码修改时调用。
文档执行详细流程。docs-agent 执行文档更新时调用。
获取所有审查机器人评论。Qodo 使用 WebFetch,Sourcery/Copilot 使用 GitHub MCP。
Master Agent 执行详细流程。任务路由、PR 管理、Git 操作。
挂起任务恢复流程。Master Agent 处理 blocked_reason.md 时调用。
| name | test-execution |
| description | 测试执行详细流程。test-agent 执行测试时调用。 |
执行任何操作前,必须确认:
page.close()src/ 目录下的业务代码src/ 业务代码 → 禁止page.close())[REQ_TEST] 标签读取 `.trae/current_task.md` 获取任务详情
目的:区分用户环境问题 vs 项目问题。
pip show rewards-core
python -c "import cli; print(cli.__file__)"
诊断流程:
rewards-core 是否安装pyproject.toml)pip install -e ".[test]"pytest tests/unit -v --cov=src
pytest tests/integration -v
# 步骤 1:尝试 rscore
rscore --dev --headless
# 步骤 2:如果 rscore 失败,降级到 python main.py
python main.py --dev --headless
二维错误诊断矩阵(强制执行)
当执行 E2E 验收时,必须使用以下矩阵进行精准归因:
| rscore 结果 | python main.py 结果 | 诊断结论 | 状态标签 |
|---|---|---|---|
| ✅ 成功(Exit 0) | - | 验证通过 | [REQ_DOCS] |
❌ ModuleNotFoundError: No module named 'cli' | 任意 | 环境问题:rscore 入口点配置错误 | [REQ_DEV] 修复包结构 |
❌ command not found: rscore | ✅ 成功 | 配置问题:rscore 未安装 | [REQ_DEV] 修复 pyproject.toml |
| ❌ 任意异常 | ✅ 成功 | 配置问题:rscore 包装器失效 | [REQ_DEV] 修复 CLI 入口 |
| 任意 | ❌ ModuleNotFoundError | 环境问题:核心依赖缺失 | [BLOCK_NEED_MASTER] 要求人类介入 |
| ❌ 业务逻辑堆栈(Timeout/Assertion) | ❌ 业务逻辑堆栈 | 业务问题:逻辑实现缺陷 | [REQ_DEV] + Playwright 现场取证 |
| ❌ 不可用 | ❌ 不可用 | 环境问题:Python 环境异常 | [BLOCK_NEED_MASTER] 要求人类介入 |
诊断执行序列(禁止跳过)
rscore --dev --headless,记录退出码和错误信息python main.py --dev --headless,记录退出码和错误信息.trae/test_report.md(覆写模式)注意:必须执行完整的二维诊断流程,不能因为 rscore 失败就跳过 python main.py 测试。
触发条件:测试失败时
执行步骤:
playwright_get_visible_html:获取 DOM 树playwright_console_logs:获取控制台日志playwright_screenshot:截图记录.trae/test_report.md| 场景 | 输出标签 |
|---|---|
| 测试全部通过 | [REQ_DOCS] |
| 测试有失败 | [REQ_DEV] + .trae/test_report.md 路径 |
| 连续 2 次 MCP 调用失败 | [BLOCK_NEED_MASTER] + 阻塞原因 |
写入 test_report.md 必须使用完全覆写(Overwrite)模式,禁止追加写入(Append)。
每次测试完成时,必须覆写整个文件,只保留最新一次的测试结果。
严禁保存完整 HTML,仅允许提取以下三项:
<最后抛出异常的 10 行 Traceback>
使用 Playwright 的 Accessibility Tree API,仅提取关键节点:
// 仅提取关键节点,忽略文本节点和布局节点
const snapshot = await page.accessibility.snapshot({ interestingOnly: true });
| URL | 状态码 | 方法 |
|---|---|---|
| <状态码> | <GET/POST/...> |
| 错误定性 | 日志特征 | 智能体动作 |
|---|---|---|
| 环境问题 | ModuleNotFoundErrorcommand not found: rscore依赖版本不匹配 | 返回错误报告,提示用户修复环境 |
| rscore 入口问题 | rscore 失败 + python main.py 通过 | 报告 rscore 入口问题,建议检查 pyproject.toml 配置 |
| 测试脚本过期 | TimeoutError: waiting for selector接口断言失败但状态码 200/400 前端路由变更导致 404 | 自动修改 tests/ 目录,自行重试,记录变更 |
| 业务逻辑错误 | rscore 和 python main.py 都失败 HTTP 500/502 服务端异常 积分数值断言失败 | 生成取证报告,输出 [REQ_DEV] |
写入 .trae/test_report.md:
---
task_id: <任务ID>
status: success
coverage: <XX%>
created_at: <时间戳>
---
### 测试结果
- [x] `ruff check` 通过
- [x] `mypy` 通过
- 单元测试: X/Y 通过
- 集成测试: X/Y 通过
- 覆盖率: XX%
- E2E 验收: 通过
写入 .trae/test_report.md:
---
task_id: <任务ID>
status: failed
created_at: <时间戳>
---
### 测试结果
- [x] `ruff check` 通过
- [x] `mypy` 通过
- 单元测试: X/Y 通过
- 集成测试: X/Y 通过
- 覆盖率: XX%
- E2E 验收: 失败
### 精简取证
#### Traceback(最后 10 行)
<最后抛出异常的 10 行 Traceback>
#### Accessibility Tree(关键节点)
<Playwright 提取的 Accessibility Tree,仅限关键节点>
#### Network 请求(最后 3 个)
| URL | 状态码 | 方法 |
|-----|--------|------|
| <URL> | <状态码> | <GET/POST/...> |
### 诊断信息
- **错误类型**: 业务代码逻辑错误
- **受影响文件**: `<业务文件路径>`
- **预期行为**: <描述>
- **实际行为**: <描述>
search_nodes):检索目标页面的历史状态(如查询 "Login_Page_DOM" 或 "Cloudflare_Bypass"),获取最新的选择器或等待策略。异常捕获后,立即执行截图。
当捕获测试异常时,必须按以下顺序执行操作:
首先在终端执行目录创建命令:
mkdir -p logs/screenshots
注意:此步骤不可跳过,Playwright 不会自动创建目录。
通过 Playwright MCP 执行截图:
page.screenshot(path=f"logs/screenshots/{task_id}_crash.png", full_page=True)
立刻执行页面关闭,防止内存泄漏:
page.close()
将图片路径注入 .trae/test_report.md 的【精简取证】模块末尾:
#### 截图取证

full_page=True 参数{task_id}_crash.png