运行请求rspec规范时,我开始看到以下输出:
cache: [GET /login] miss
cache: [GET /javascripts/jquery.min.js?1317513028] miss
Normaly我会得到绿点用于传递测试和红色Fs以及错误消息的一些信息。
有没有办法从输出中禁用缓存未命中消息?
答案 0 :(得分:4)
我认为这与rspec无关,而且rspec只是打印出rails log中的内容。我认为Phusion Passenger讨论组的这个post by Brian Weaver可能会回答你的问题:
您是否安装了机架缓存?我度过了美好的一天+通过Passenger / Rails / Rack和许多其他宝石进行追踪,以找出与此类似的线条出现的原因。 将以下内容添加到您的production.rb或development.rb文件中以摆脱'cache:....'行
config.action_dispatch.rack_cache = {:metastore => “rails:/”,:entitystore => “rails:/”,:verbose =>假}
我从Rails的“中间件”配置中删除了该行,只是将'verbose'从true更改为false。
在您的情况下,我想您要将其添加到您的测试环境文件中。
答案 1 :(得分:3)
除了@RyanTM之外,您还需要为测试环境打开缓存,以便DragonFly不配置自己的Rack :: Cache(使用:verbose => true),而是使用Rails设置的一个。 / p>
# 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}
答案 2 :(得分:1)
我无法让上述任何一种解决方法适用于我,但是将其添加到我的'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