E2E 冒烟测试指南
使用本指南验证核心流程:
- 创建任务
- 对 5 个新条目执行首次资格审查尝试
- 验证首次运行前后的任务启用状态切换
- 删除任务及相关分析数据
单命令冒烟测试
npm run e2e:smoke
该脚本:
- 验证所需的 OpenRouter 凭据是否存在
- 创建一个处于禁用状态的临时任务
- 执行与
job add相同的首次运行编排 - 验证首次运行尝试后任务已启用,且存在运行记录行
- 在清理阶段删除任务
实现路径:
src/scripts/e2eSmoke.ts
前提条件
运行冒烟测试前:
- OpenRouter API 密钥已通过
snoopy settings(密钥链可用时)或SNOOPY_OPENROUTER_API_KEY环境变量配置 - 可选:在未认证的 Reddit JSON 访问被阻止的环境中配置 Reddit OAuth 回退凭据
快速检查:
snoopy doctor
可选环境变量
SNOOPY_E2E_LIMIT默认值5SNOOPY_E2E_SUBREDDITS默认值startups,entrepreneurSNOOPY_E2E_KEEP_JOB默认值false
示例:
SNOOPY_E2E_LIMIT=5 SNOOPY_E2E_SUBREDDITS=startups,entrepreneur npm run e2e:smoke
保留任务以供检查:
SNOOPY_E2E_KEEP_JOB=true npm run e2e:smoke
手动等效流程
如果你需要完全手动控制:
- 创建任务:
snoopy job add
- 运行 5 条测试:
snoopy job run <jobRef> --limit 5
- 检查历史记录:
snoopy job runs <jobRef>
- 删除并级联清理:
snoopy delete <jobRef>
正常输出的样子
- 运行完成且无错误。
- 使用
--limit 5时,恰好处理 5 个新条目。 - 资格审查理由简洁且与任务提示词一致。
- 没有重复出现的回退理由,如
Model output invalid; marked unqualified。
故障排除
如果冒烟测试失败:
- 运行
snoopy doctor。 - 在
settings或SNOOPY_OPENROUTER_API_KEY中验证 OpenRouter API 密钥。 - 如果环境中 Reddit 访问被拒绝,在
settings中配置 Reddit OAuth 回退凭据。 - 如涉及守护进程,检查其状态(
daemon status)。 - 查看
<root>/logs/snoopy.log中的日志。 - 使用
SNOOPY_E2E_KEEP_JOB=true重新运行以检查持久化数据。