3

我有一个自定义链轮引擎和一个测试(rspec)。规范访问 /assets/application.js 然后检查内容。我想强制 spocket 在测试时编译(或渲染)资产,而不是从 tmp/cache 或它可能已经编译的任何其他地方提取它。

我该怎么做?我在 sprockets 代码中没有看到任何明显的“忽略缓存”。

提前谢谢你,佩里

4

2 回答 2

2

也许将 a 设置null_store为缓存后端比tmp每次都清除文件夹要好。在您的测试设置上尝试这样的事情(在应用程序初始化之后):

Rails.application.assets.cache = ActiveSupport::Cache.lookup_store(:null_store)
于 2013-01-27T20:38:10.263 回答
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
于 2013-01-27T00:53:02.897 回答