Skip to content

Latest commit

 

History

History
79 lines (53 loc) · 6.07 KB

gantt-testing.md

File metadata and controls

79 lines (53 loc) · 6.07 KB

甘特图首版测试与部署记录

日期:2026-11-10。

实现

  • “目标任务”内新增甘特图,与任务树、目标地图并列。
  • milestone 默认表示阶段,支持先填写阶段周期,再拆分任务。
  • 手填日期优先;父项留空时自动汇总子任务,保留未排期提示。
  • 支持按月查看、回到今天、折叠阶段、点击编辑和手机横向滚动。
  • 展示状态、前置依赖及继承关系,并提示超出阶段、目标期限或依赖日期冲突。
  • 计划日期通过任务创建、PATCH、列表、任务树及快照链路读写;显式 null 清空,省略字段保留原值。
  • 数据库迁移为第 24 版,旧任务的计划日期为空;每日排期继续使用原有规则。

自动化验证

检查 结果与覆盖
go test ./... 通过;包括 API、应用服务及迁移回归
go vet ./... 通过
npm --prefix web test 71 项通过,含 12 项新增甘特图规则测试
npm --prefix web run build TypeScript 与网页/PWA 构建通过
npm --prefix web run test:gantt:browser 真实 Chromium 验收通过
Docker 构建 fasttask:gantt-test-20261110 构建成功

后端新增验证包括:合法日期、闰日、同日任务、不完整或倒序日期、非法格式、清空、字段省略、认证、版本冲突、无效修改的事务原子性,以及任务删除恢复和助手提案保留日期。迁移测试从真实第 23 版结构升级,检查旧数据及重复执行。

前端规则测试包括:多层自动汇总、手填覆盖与清空、未排期子项、所有上级的日期范围、继承前置依赖、删除子树过滤、月末与跨年、跨月裁剪、结束日包含及账号时区。

浏览器验收使用临时数据库、独立账号与真实构建,检查阶段新建、手填/自动日期、未排期条目、依赖线与提示、折叠、翻月、表单校验、保存清空、另一客户端并发修改后的冲突保护、手机任务名称固定和目标切换隔离。

重跑浏览器验收:

go build -trimpath -o bin/fasttask ./cmd/fasttask
npm --prefix web run build
npm --prefix web run test:gantt:browser

默认使用 /usr/bin/chromium,可通过 CHROME_BIN 指定浏览器,FASTTASK_TEST_BINARY 指定已构建程序,GANTT_ARTIFACTS 指定截图目录。该脚本自行创建并清理临时服务和数据库,不访问生产环境。

生产数据副本

源站为 root@47.110.133.67,应用目录 /home/dev/FastTask。从运行中的生产服务通过其当前程序生成一致性备份,并执行完整性校验;附件和音频目录另行复制。

  • 源站备份:/home/dev/FastTask-backups/gantt-test-seed-20261110/production.db。
  • 本机备份及部署资料:backups/gantt-test-20261110/,目录权限 0700,凭据文件权限 0600。
  • 原生产副本包含 6 个用户、7 个目标、86 个任务、149 份每日计划、509 个每日条目及 10 个任务树快照。
  • 候选容器迁移完成、业务访问之前,对已有目标、任务、每日计划、每日条目、推进事件和任务树快照逐行比较,均一致;已有任务的新增日期字段全部为空。
  • 完整性检查为 ok,外键检查为 0 项问题。

测试副本独立撤销复制来的登录会话、设备/工牌及 Harness 令牌,取消未完成后台作业,关闭通知,移除生产外部连接和凭据。已结束的对话运行历史保留并与源备份核对。JWT、Panel 和凭据加密密钥均重新生成,复制账号的密码替换为独立测试密码。

为方便验收,在有生产副本数据的账号中增加了“甘特图验收示例”目标及 6 项阶段/任务;原有任务的内容和日期未修改。另建立独立测试管理员。账号及密码只保存在本机 backups/gantt-test-20261110/access.txt。

测试站部署验收

测试入口:https://task.fast.0x535a.cn。运行版本 0.1.0-gantt-test,构建标识 5e01e1e-gantt-test,数据库版本 24。

候选容器和正式测试公网均通过真实浏览器冒烟检查:使用测试副本账号在登录表单登录,读取该账号已有生产任务,进入示例甘特图,验证 6 行阶段与任务、自动汇总、未排期状态、日期提示和手机固定名称,浏览器运行异常为 0。

测试站验收时,公网 /health/ready 正常,/health/version 返回新测试版本;当时生产仍为原 9c67f44 构建、数据库版本 23。

生产发布验收

用户验收测试站后授权提交、推送及生产部署。功能提交 60ebca7 已推送到 main;生产原有 FastCAS 服务鉴权修复先以 0363493 纳入仓库,合并后重新通过全部 Go 测试、go vet、71 项前端测试、网页构建和 12 组 Chromium 甘特图验收。

2026-11-10 北京时间 11:58:47,生产 https://task.fastrd.io 完成更新:

  • 版本 0.1.0-gantt,构建提交 60ebca7bc86e2782497125d44251f0b0780354d5;源站及公网健康检查均正常。
  • 数据库迁移至 24;副本演练和正式迁移均逐行核对 40 张表、14,762 行旧数据,保持一致。6 个用户、7 个目标、86 个任务、149 份每日计划、509 个每日条目和 10 个任务树快照保留;旧任务日期均为空。
  • 数据库完整性 ok,外键问题 0;生产 .env 发布前后校验和一致。
  • 公网 JS/CSS 哈希与已测构建相同;FastCAS 和 FastResearch 登录可用接口正常,集成接口拒绝无凭据、无效 Bearer 及无效旧 Key。
  • 真实 Chromium 检查生产登录页和手机布局,通过且浏览器异常为 0;甘特图编辑及并发行为已在独立数据库和测试站验收。
  • 服务 active/running、自动重启次数 0;使用运行中 sidecar 的临时认证密钥执行 doctor,数据库、Node 及 sidecar 健康检查通过。

生产保留原数据与原配置;测试副本、测试账号及测试密钥均未用于生产部署。完整备份及回退脚本在 /home/dev/FastTask-backups/gantt-release-20261110。

测试部署定义、源站信息和回滚步骤见 deployment.md。