20 lines
1.9 KiB
Markdown
20 lines
1.9 KiB
Markdown
# 03 — 建立批量任务真实依赖的集成测试 Harness
|
||
|
||
**What to build:** Agent 和开发者可以通过一个可复用的 Go 集成测试 Harness,安全驱动真实 PostgreSQL、Redis DB 7、真实 S3、Fiber 后台认证和公开 Worker Handler。每次运行只创建、记录和清理带唯一运行标识的资源,测试失败也不会清空或污染共享环境。
|
||
|
||
**Blocked by:** `.scratch/ur36-bulk-package-purchase/issues/02-controlled-upload-object-ownership.md` — 02 — 交付受控直传与对象归属证明
|
||
|
||
**Status:** ready-for-agent
|
||
|
||
**架构通道:** Infrastructure。
|
||
|
||
**完整业务边界:** 本票收口本需求及后续同类批量任务需要的安全集成测试基础设施。明确不替换全仓测试框架、不创建新 PostgreSQL 数据库、不使用 S3 内存替身、不通过等待真实后台 Worker 抢任务完成断言。
|
||
|
||
- [ ] Harness 启动时读取最终生效配置,并确认普通 Redis Client、Asynq Client 和 Worker Server 均使用 DB 7;任一不符时在写入前失败。
|
||
- [ ] Harness 支持唯一 `run_id`、测试账号与真实认证、Fiber 请求、统一响应解码、真实 S3 上传及公开 Worker Handler 驱动。
|
||
- [ ] 待投递任务可在应用公开注入点被受控捕获,并以结构化 `task_id` 调用 Handler,不依赖 `sleep` 或私有处理函数。
|
||
- [ ] PostgreSQL、Redis 和 S3 资源进入精确清理台账;成功和失败清理只操作本次创建的主键、Key 和对象,不执行 TRUNCATE、FLUSHDB、前缀扫描或 Bucket 清理。
|
||
- [ ] 清理失败输出安全诊断和未清理资源标识,不输出数据库密码、Token、对象存储密钥、预签名 URL 或完整敏感数据。
|
||
- [ ] 固定 `testdata` 覆盖 UTF-8、BOM、非法表头、重复资产、多代理、钱包不足和线下凭证,并至少提供一个穿过公开 HTTP 与 Worker 边界的示例。
|
||
|