gpt4 book ai didi

ruby-on-rails - Rails gem 在执行 "rake test"时使用开发数据库而不是测试数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:02 25 4
gpt4 key购买 nike

我在我的 Rails 3 项目“rails-settings-cached”中使用了一个 gem,当我处于开发模式时,该 gem 可以毫无问题地访问数据库。但是,当我运行“rake test”时,很多测试都失败了,因为“rails-settings-cached”一直在使用开发数据库而不是测试数据库。

我的应用程序的其他部分工作正常。我应该怎么做才能将 gem 连接到正确的数据库?

development:
adapter: mysql2
encoding: utf8
reconnect: false
database: mmdb_development
pool: 5
username: ***
password: ***
socket: /var/run/mysqld/mysqld.sock

test:
adapter: mysql2
encoding: utf8
reconnect: false
database: mmdb_test
pool: 5
username: ***
password: ***
socket: /var/run/mysqld/mysqld.sock

最佳答案

问题是 rails-settings-cached... 好吧... 缓存设置。因此,当您运行测试时,它实际上是在使用“开发”数据库中的旧缓存值。

可能的解决方法是在测试前后运行 rake tmp:cache:clear。它可以工作,但要使其自动化,您可以将这些方法放在 test_helper.rb 中:

def setup
Rails.cache.clear
end

def teardown
Rails.cache.clear
end

关于ruby-on-rails - Rails gem 在执行 "rake test"时使用开发数据库而不是测试数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com