ruby-on-rails - 如果我在我的 Rails 测试套件中将 Postgres 换成 SQLite,它会导致问题吗?

标签 ruby-on-rails sqlite postgresql

我看到有人建议 SQLite 是运行测试套件的不错选择,因为它速度更快。这似乎是一件好事,我想要更快的测试。但是,我目前正在使用 Postgres,因为它是我在生产中使用的东西,拥有一个与生产环境有如此显着差异的测试环境似乎是个坏主意。

考虑到我在 Rails 4 中使用 Rspec 和 Cucumber,将我的测试套件切换到 SQLite 是否会导致出现错误,或者可能隐藏我不会发现的错误?从本质上讲,它从 ActiveRecord 的角度来看是完全透明的,因此我可以将其用作直接替代品?

我不知道任何特定于 Postgres 的代码,尽管我在某些地方通过范围使用了一些复杂的查询。

最佳答案

正如 BroiSatse 所提到的,您应该让您的测试环境尽可能接近您的生产环境。这不是让测试运行得更快;使测试套件有用至关重要。

Given that I am using Rspec and Cucumber with Rails 4, is there any risk that switching my test suite to SQLite will cause errors to emerge

您的问题表明不同的数据库可能会有不同的行为并降低测试套件的效率。

最好的办法是为您的测试环境切换到 Postgres。如果您有无法立即修复的失败规范,请将它们标记为待定或切换到新分支。规范确定后,将新分支合并到 master。

关于ruby-on-rails - 如果我在我的 Rails 测试套件中将 Postgres 换成 SQLite,它会导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401558/

相关文章:

ruby-on-rails - 如何避免 Rails 中的 BREACH 攻击?

sql - 如何在即将到来的生日订单中获取记录?

python - 为什么运行 SQLite(通过 python)会导致内存填满 "unofficially"?

sql - Postgresql 错误的串行自动递增

PostgreSQL 查询包含来自单独表的 id 的数组

ruby-on-rails - 如何根据使用Rails的Elastic搜索中的用户选择来提高特定搜索结果的排名

ruby-on-rails - 如何实现 :with_trait using Fabrication

ruby-on-rails - 思考狮身人面像组选项

Android SQLite 日期查询问题,无法比较 2 个日期之间的记录

postgresql - kubernetes集群中postgres的横向扩展