Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

测试与质量门禁

本地检查

先启动 PostgreSQL 并执行 migration:

make db-migrate

然后运行完整检查:

cargo fmt --check
cargo check --all-targets
cargo test --all-targets
cargo clippy --all-targets -- -D warnings
mdbook test docs
mdbook build docs
git diff --check

数据库测试

  • 集成测试使用 DATABASE_URL 指向专用测试数据库。
  • CI 在 PostgreSQL 18 服务上先运行 migration,再执行测试。
  • migration 必须验证空数据库首次应用和重复执行时没有待执行项。
  • 测试不得依赖个人数据库中已有的数据。

HTTP 测试

Router 由 library crate 构建,测试直接发送 HTTP request 并断言状态码、 Content-Type 和响应体。只有验证真实监听、端口冲突或外部协议时才启动服务 进程。

身份集成测试必须使用真实 PostgreSQL,并至少覆盖:

  • 注册、字段规范化、重复和并发重复邮箱;
  • Argon2id 参数及数据库中不出现明文密码;
  • 登录错误一致性和成功后的 Session ID 轮换;
  • 注册后 Profile、多设备 Session 和当前设备退出;
  • 闲置与绝对过期、未知或损坏 Cookie;
  • Cookie 的 HttpOnly、SameSite、Path 和环境化 Secure。

CI

CI workflow 对 pull request 和 main push 执行 Rust、migration 和集成测试。 Developer Guide workflow 验证 mdBook;只有 main 的成功构建可以部署 GitHub Pages。