3

カスタム スプロケット エンジンとそれに対応するテスト (rspec) があります。この仕様では、/assets/application.js にアクセスして、コンテンツをチェックします。テスト時にアセットをコンパイル (またはレンダリング) するように spockets に強制し、tmp/cache または既にコンパイルされている可能性のある他の場所からアセットをプルしないようにします。

どうすればいいですか?「キャッシュを無視する」というスプロケットのコードには、明らかなものは何もありません。

前もってありがとう、ペリー

4

2 に答える 2

2

毎回フォルダーnull_storeをクリアするよりも、キャッシュ バックエンドとしてa を設定する方がよい場合があります。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 に答える