当运行request rspec specs时,我开始看到以下输出:
cache: [GET /login] miss
cache: [GET /javascripts/jquery.min.js?1317513028] miss
正常情况下,我将得到绿色的点,通过测试和红色的f与一些信息的错误消息。
是否有办法从输出中禁用缓存错过消息?
我认为这与rspec无关,rspec只是打印出rails日志中的内容。我认为Brian Weaver在Phusion Passenger讨论组上的这篇文章可能会回答你的问题:
是否安装了机架缓存?我花了一天的时间追踪乘客/Rails/Rack和许多其他宝石,以找出为什么出现类似的线条。将以下内容添加到您的产品中。Rb或开发。Rb文件,以摆脱'缓存:....line
config.action_dispatch。Rack_cache = {:metastore => "rails:/",:entitystore => "rails:/",:verbose => false}
我从Rails的"中间件"配置中取出这行,只是将"verbose"从true更改为false。
在您的情况下,我猜您想将它添加到您的测试环境文件中。
除了@RyanTM之外,您还需要为测试环境打开缓存,以便DragonFly不配置自己的Rack::Cache(带:verbose => true),而是使用Rails设置的缓存。
# set Rack::Cache verbose to false to prevent logging to rspec output
config.action_controller.perform_caching = true
config.action_dispatch.rack_cache = {:metastore => "rails:/", :entitystore => "rails:/", :verbose => false}
我无法让上述任何一个解决方案为我工作,但将其添加到我的'config/initializers/dragonfly。rb的:
if Rails.env.test?
Rails.application.middleware.delete Rack::Cache
Rails.application.middleware.insert 0, Rack::Cache, {
:verbose => false,
:metastore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/meta"), # URI encoded in case of spaces
:entitystore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/body")
}
end