0

//= require "XYZ"アプリの起動時の構成に基づいて、スプロケットステートメントで使用できる XYZ.js ファイルのバージョンを選択する必要がある宝石を作成しています。私の解決策は、Rails アプリでXYZ.variant.jsorXYZ.variant2.jsをコピーすることです。/tmp/cache/<gemname>/XYZ.js手動でテストすると、これは機能するようです。フォルダに移動してtest/dummy機能をテストすると、rackup適切XYZ.jsに検出されます。別の Rails アプリを介して gem をテストすると、( path:Gemfile を介して) 動作します。

しかし、この gem のテスト スイートを実行すると失敗します。これは、 への最初のコピー後のある時点で、/tmp/cache/<gemname>/XYZ.jstmp フォルダー全体がクリアされ、テストが実際に実行されるまでにその中にあるのは/tmp/cache/assets. これがどのようにテスト スイートと他の 2 つの作業方法で異なる動作をするのか理解できません。初期化の順序が違うかのようです。viarackupを実行すると、初期化順序が変更される特別なことがありますか?

このテスト スイートは、特に tmp コピーを実行するコードに追加される前は正常に機能していたことに注意してください。生成されるのは通常のenginexコードです。

4

1 に答える 1

0

これはイニシャライザーとは関係ありませんが、tmpフォルダーを壊していた別のテストケース(ジェネレーター用)です。

于 2013-02-27T03:43:23.357 に答える