Skip to content

调试与验证 ​

先确认后端接口正确,再排查页面。使用专用开发数据库、Redis 和测试账号;测试命令不会自动保证所有外部资源都已隔离,需要按目标仓库的测试说明准备环境。

日常命令速查 ​

命令在对应组件目录执行。新增模块先运行相关测试,交付前执行仓库要求的完整检查。

目录命令用途
后端uv run ruff check .Python 规范检查
后端uv run ruff format --check .检查格式,不改写文件
后端uv run pytest后端测试;先核对测试资源与 fixture
后端uv run alembic current、uv run alembic heads比较当前数据库与源码迁移版本
Webpnpm lint代码检查,会自动修复部分问题,运行后审查 diff
Webpnpm typecheckVue 与 TypeScript 类型检查
Webpnpm testVitest 测试
Webpnpm build使用 prod 模式构建
桌面端pnpm typecheck、pnpm test、pnpm build类型、主进程服务测试与构建

临时日志、截图和测试输出放在本地 .local/,不随产品提交。pytest 可用 --basetemp 指定专用临时目录;该目录会被 pytest 清理,只使用为本次测试准备的空目录。

请求排错顺序 ​

  1. 在浏览器 Network 中检查请求路径、方法、HTTP 状态与响应体。
  2. 核对当前用户、权限和目标租户,使用 /docs 复现同一个请求;不把 token 放进问题反馈或日志。
  3. 查看后端日志,确认 API 是否到达、Service 是否报错,以及迁移是否完整。
  4. 接口正确后检查前端类型、响应解包、状态更新和翻译资源。
现象优先检查
Web 能打开,请求连接失败或 502后端启动状态、端口、.env.test.local / .env.test 与 Vite 代理
请求 404router 是否在 app/main.py 注册;前缀与请求路径是否一致
请求 401登录状态、令牌刷新与目标服务;不要靠页面跳过认证
请求 403接口权限码、启用角色、租户归属及数据范围
请求 422请求字段、类型、长度与额外字段;读取响应校验详情
菜单不出现菜单种子已同步、角色已授权、登录权限已刷新
菜单存在,页面打不开自动路由生成日志、文件路径与菜单 component 映射
后端成功,页面数据为空request 已解包 data,不要重复读取 data.data
提示表或字段不存在Alembic 版本、模型导入与目标数据库连接
页面显示翻译键语言资源合并层级与 App.I18n.Schema

一个模块的最小验证集 ​

范围需要验证
正常操作创建、刷新、分页及空状态符合约定
输入空值、长度上限、非法 ID、额外 tenantId 被正确拒绝
权限普通角色无权限时直接调用接口也被拒绝
租户与记录范围列表、总数、详情和写入使用同一边界
事务Service 调用后回滚,数据不落库;失败不触发成功反馈
数据迁移专用数据库上检查升级与回退;保留已有迁移回归
页面重复提交、快速翻页、失败重试、移动端和深浅主题
国际化中英文按钮、菜单、校验、错误与空状态

需要 AI 工具时,额外验证撤权、过期确认、重复执行和历史结果访问,见业务工具接入。

教程示例的验证范围 ​

文档仓库 tests/test_notes*.py 使用内存 SQLite 验证示例的服务行为,运行方式见便签教程。这些测试不替代目标项目的 PostgreSQL 迁移、HTTP 认证、浏览器和生产构建验证。

交付时将模块源码、迁移、菜单、翻译与相应测试一起提交。发布流程见升级、备份与恢复。