You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hanami测试中Rake是否使用与主程序不同的数据库?

关于Hanami测试环境数据库的疑问解答

嘿,你猜得没错!Hanami 确实会为测试环境使用独立的数据库,这是框架默认遵循的最佳实践——毕竟没人想让测试数据污染自己正在开发的数据库对吧?

为什么会这样?

Hanami 会严格区分开发、测试、生产三个运行环境,每个环境都有独立的配置项,数据库配置也不例外。你可以去项目里的 config/database.yml 文件看看,里面应该会有三个环境的配置块:

  • development:对应你平时开发用的数据库,就是你之前操作的那个 SQLite 文件
  • test:专门给测试用的独立数据库,通常文件名会带 test 后缀(比如 db/test.sqlite3)
  • production:部署到生产环境用的数据库

Rake任务和测试环境的关系

当你运行测试相关的 Rake 任务(或者直接运行测试套件)时,Hanami 会自动切换到 test 环境,加载对应的数据库配置。这就是为什么你在开发环境里创建的 reviews 数据,在测试里看不到——它们根本不在同一个数据库里!

验证小技巧

如果你想确认的话,可以试试这两步:

  1. 打开 config/database.yml,查看 test 段的数据库路径,找到对应的 SQLite 文件
  2. 运行测试相关的命令后,用 sqlite3 命令行工具打开这个测试数据库,执行 select * from reviews;,就能看到测试生成的数据(或者空表,取决于你有没有写测试)

内容的提问来源于stack exchange,提问作者ytg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:55:14