我有一个自定义链轮引擎和一个测试(rspec)。规范访问/assets/application.js然后检查内容。我想强制spockets在测试时编译(或渲染)资产,而不是从tmp / cache或它已经编译过的任何其他地方拉出来。
我该怎么做?我没有在链轮代码中看到任何明显的“忽略缓存”。
提前谢谢你, 佩里
答案 0 :(得分:2)
也许设置null_store
作为缓存后端比每次清除tmp
文件夹更好。在测试设置上尝试这样的事情(在应用程序初始化之后):
Rails.application.assets.cache = ActiveSupport::Cache.lookup_store(:null_store)
答案 1 :(得分:0)
我最终这样做了:
before(:each) do
(Rails.root + "tmp/cache").rmtree
end
根据建议,我的代码现在是:
before(:each) do
@original_cache = Rails.application.assets.cache
Rails.application.assets.cache = ActiveSupport::Cache.lookup_store(:null_store)
end
after(:each) do
Rails.application.assets.cache = @original_cache
end