4.7 KiB
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件) wiki_page: Local-Development-and-Verification wiki_url: https://git.ilapage.cn/OPC/goauto/wiki/Local-Development-and-Verification.- wiki_revision: 9fa21612e642c3d1b3edaa235b6127c876299e4e synchronized_at: 2026-08-17T03:28:04Z
本地开发与验证
T01 已建立可执行的三端骨架。建议从仓库根目录运行统一脚本:
.\scripts\verify.ps1 -Component all
Component 也可以是 server、web 或 android。
通用检查
git status --short --branch
git diff --check
服务端验证
Set-Location server
go test ./...
go build ./...
服务端固定为 go-admin v2.3.0,模块要求 Go 1.26.5;本机可由 GOTOOLCHAIN=auto 获取匹配工具链。对象存储用例带有 integration 标签,默认验证不会访问云端凭据。
默认运行目标是 MySQL。开发者在仓库根目录的 config.yaml 中维护本机连接参数和启动端口;该文件已被 Git 忽略,不得提交。可从不含凭据的 config.example.yaml 复制。启动脚本读取配置后,仅通过当前进程环境注入数据库连接、服务端端口和前端 API 地址,不把账号密码写回 server/config/settings.yml、日志、工单或文档。
已经执行过旧版 GoAuto 表结构的数据库,会由 1786700300000_collection_execution.go 增量补齐任务幂等、结果、软删除和颜色价格字段;不要通过修改已执行迁移的版本号强制重跑。
Windows 本地 MySQL 8.4 可以从仓库根目录双击或执行:
.\start-server.bat
首次使用先编辑根目录 config.yaml:database 节点配置 host、port、user、password 和 name,ports.server 与 ports.web 配置 API 和管理端开发服务器端口。两个启动端口必须位于 1~65535 且不能相同。随后脚本直接读取该文件,创建数据库、执行迁移并启动服务,不再交互询问密码。迁移已经执行过时,可使用 .\start-server.bat -SkipMigration;只验证服务端配置可使用 .\start-server.bat -ValidateConfigOnly,只验证前端端口配置可使用 .\start-web.bat -ValidateConfigOnly。
管理端前端可单独双击 start-web.bat;也可双击 start-all.bat 同时打开服务端和前端两个窗口。访问地址分别为 http://127.0.0.1:<ports.web> 和 http://127.0.0.1:<ports.server>,默认仍是 9527 和 8000。前端开发 API 地址会自动跟随 ports.server。修改服务端端口后,还需同步修改 Android Agent 保存的服务地址。API 根路径显示 go-admin 默认欢迎页属于正常现象。
只验证最小闭环迁移和数据库约束:
Set-Location server
go test ./app/goauto/...
该命令同时覆盖设备注册的首次签发、requestId 重放、错误 Token、防接管、停用/吊销、HTTPS、限流、心跳任务一致性和超时离线失败测试。
如需用临时 SQLite 做隔离联调,服务端命令必须显式带上 SQLite 构建标签:
Set-Location server
go run -tags sqlite3 . migrate -c config/settings.sqlite.yml
go run -tags sqlite3 . server -c config/settings.sqlite.yml
SQLite 只用于测试;正式运行和最终迁移目标仍为 MySQL 8.4。真实 MySQL 连接串继续通过 GOAUTO_DB_DSN 注入。
Web 验证
Set-Location web
pnpm install --frozen-lockfile
pnpm run lint
pnpm run build:prod
上游现存 lint 警告和构建体积提示不会阻断验证,但新增代码不得增加错误。
Android 验证
Set-Location android
.\gradlew.bat test
.\gradlew.bat assembleDebug
Android 骨架使用 Kotlin 1.9.22、AGP 8.2.0、Java 17 和 SDK 34。
局域网真机联调可在构建时设置 GOAUTO_SERVER_URL。只有 Debug 清单允许明文 HTTP;Release 的 URL 校验和 Android 网络安全策略都保持 HTTPS 约束。
原型验证
- 直接打开
prototypes/server-admin.html和prototypes/android-agent.html。 - 检查 375、768、1024、1440 像素宽度。
- 用键盘完成导航,检查明显焦点、表单标签和删除/重置确认。
- 开启
prefers-reduced-motion后不应依赖动画表达状态。
必须真机验证的范围
- 一加/ColorOS 的无障碍绑定、后台运行和安装保护。
- 任务执行期间 Agent 只持有最长 5 分钟的屏幕唤醒锁,并在任务结束时释放;不解锁安全锁屏,也不常驻保持屏幕。
- 浏览器打开 PDD、两层确认、商品详情识别和规格遍历。
- 网络断开、登录失效、验证码、风控和规则删除后的快照执行。
- 一台设备串行任务和 20 台设备连接稳定性。