2016-11-08 6 views
1

Rails(5)アプリケーションでテストを実行する場合、コントローラrspecsを例とすると、外部フロントエンドの依存関係をすべて利用可能にする必要があります。application.jsまたはapplication.cssこれらのテストを実行するには、コードが応答をレンダリングするときにSprockets::FileNotFound例外が発生します。Rails - テスト用にjs&css // = requireを無効にする

結果的にHTMLやそのようなものを評価していないし、JSを実行していないので、実際には必要ないのですが、テストはnpm/bowerに依存しています。

だから、私はスペックを実行するときに& CSSの依存関係JS必要はありません方法を見つけることを望んでいる - 基本的にそのスペックの実行のためにapplication.jsapplication.css空を作ります。 (他のテンプレートはrequireものもある可能性があるので動作しないことを除いて)

誰もこのようなことをしましたか?どうやって? :)

+0

'js 'を必要としないものを「記述する」、js:false do'があなたのために働くことができますか? – fabersky

+0

@faberskyは明らかにそうではありません。例えば ​​'image_path'にアクセスすると、Sprocketsがapplication.jsを読み込んで依存関係のリストを表示し、es6-shimが見つからない場合に失敗します(これは最初のものです)。 – himdel

答えて

1

これを回避するには、テスト環境に依存関係を含め、Sprocketsを有効にしてRailsのブートプロセスの一部として使用するだけで済みます。私は簡単な方法はないと思います。

+0

ありがとうございました。依存関係のリストは*比較的*静的なので、空のファイルとして作成し、それを使って完了するのは簡単かもしれません:)。 (これは、私はこれを受け入れられた答えとしてマークすることを嫌っています、申し訳ありませんが、まだ少し清潔なものがあることを望みます:)) – himdel

0

テスト環境で行うことでこれを解決しました。

class << ActionController::Base.helpers def image_path(path, options = {}) path end end

画像パス(およびおそらく他の関連するヘルパー、メーリングリストへ)を使用していないこと検索をトリガしない、判明しました。

関連する問題